diff --git a/CODEOWNERS b/CODEOWNERS index d54fffceb789..f09e0f69b015 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -10,40 +10,15 @@ /README.md @MinaProtocol/product-eng-reviewers /README-dev.md @MinaProtocol/protocol-eng-reviewers -/src/app/archive @MinaProtocol/protocol-eng-reviewers -/src/app/cli/src/mina.ml @MinaProtocol/protocol-eng-reviewers -/src/app/cli/src/init @MinaProtocol/protocol-eng-reviewers -/src/app/libp2p_helper @MinaProtocol/protocol-eng-reviewers /src/app/reformat/ @MinaProtocol/infra-eng-reviewers -/src/app/trace-tool/ @MinaProtocol/protocol-eng-reviewers -/src/app/runtime_genesis_ledger/ @MinaProtocol/protocol-eng-reviewers -/src/app/archive_blocks/ @MinaProtocol/protocol-eng-reviewers -/src/app/extract_blocks/ @MinaProtocol/protocol-eng-reviewers -/src/app/rosetta/ @MinaProtocol/protocol-eng-reviewers -/src/lib/rosetta_coding/ @MinaProtocol/protocol-eng-reviewers -/src/lib/rosetta_lib/ @MinaProtocol/protocol-eng-reviewers -/src/lib/rosetta_models/ @MinaProtocol/protocol-eng-reviewers +/src/app/ @MinaProtocol/protocol-eng-reviewers /src/lib/ @MinaProtocol/protocol-eng-reviewers -/src/lib/blake2/ @MinaProtocol/crypto-eng-reviewers /src/lib/mina_numbers/ @MinaProtocol/crypto-eng-reviewers -/src/lib/crypto_params/ @MinaProtocol/crypto-eng-reviewers /src/lib/crypto @MinaProtocol/crypto-eng-reviewers /src/lib/dummy_values/ @MinaProtocol/crypto-eng-reviewers /src/lib/hash_prefixes/ @MinaProtocol/crypto-eng-reviewers -/src/lib/non_zero_curve_point/ @MinaProtocol/crypto-eng-reviewers -/src/lib/outside_hash_image/ @MinaProtocol/crypto-eng-reviewers -/src/lib/pickles_base/ @MinaProtocol/crypto-eng-reviewers -/src/lib/pickles_types/ @MinaProtocol/crypto-eng-reviewers -/src/lib/pickles/ @MinaProtocol/crypto-eng-reviewers /src/lib/precomputed_values/ @MinaProtocol/crypto-eng-reviewers /src/lib/concurrency/promise @MinaProtocol/protocol-eng-reviewers @MinaProtocol/product-eng-reviewers -/src/lib/signature_lib/ @MinaProtocol/crypto-eng-reviewers -/src/lib/snarky @MinaProtocol/crypto-eng-reviewers -/src/lib/snarky_blake2/ @MinaProtocol/crypto-eng-reviewers -/src/lib/snarky_curves/ @MinaProtocol/crypto-eng-reviewers -/src/lib/snarky_field_extensions/ @MinaProtocol/crypto-eng-reviewers -/src/lib/snarky_group_map/ @MinaProtocol/crypto-eng-reviewers -/src/lib/snarky_log/ @MinaProtocol/crypto-eng-reviewers /src/lib/unsigned_extended/ @MinaProtocol/crypto-eng-reviewers diff --git a/Makefile b/Makefile index 41d8d58e2dad..7207ee7ac1c1 100755 --- a/Makefile +++ b/Makefile @@ -549,9 +549,9 @@ define build_debian_package && echo "✅ Build complete" endef -.PHONY: debian-build-archive-berkeley -debian-build-archive-berkeley: ## Build the Debian archive package - $(call build_debian_package,archive_berkeley) +.PHONY: debian-build-archive-testnet-generic +debian-build-archive-testnet-generic: ## Build the Debian archive package + $(call build_debian_package,archive_testnet_generic) .PHONY: debian-build-archive-devnet debian-build-archive-devnet: ## Build the Debian archive package for devnet @@ -561,9 +561,9 @@ debian-build-archive-devnet: ## Build the Debian archive package for devnet debian-build-archive-mainnet: ## Build the Debian archive package for mainnet $(call build_debian_package,archive_mainnet) -.PHONY: debian-build-daemon-berkeley -debian-build-daemon-berkeley: ## Build the Debian daemon package for berkeley - $(call build_debian_package,daemon_berkeley) +.PHONY: debian-build-daemon-testnet-generic +debian-build-daemon-testnet-generic: ## Build the Debian daemon package for testnet-generic + $(call build_debian_package,daemon_testnet_generic) .PHONY: debian-build-daemon-devnet debian-build-daemon-devnet: ## Build the Debian daemon package for devnet @@ -577,9 +577,9 @@ debian-build-daemon-mainnet: ## Build the Debian daemon package for mainnet debian-build-logproc: ## Build the Debian logproc package $(call build_debian_package,logproc) -.PHONY: debian-build-rosetta-berkeley -debian-build-rosetta-berkeley: ## Build the Debian Rosetta package - $(call build_debian_package,rosetta_berkeley) +.PHONY: debian-build-rosetta-testnet-generic +debian-build-rosetta-testnet-generic: ## Build the Debian Rosetta package + $(call build_debian_package,rosetta_testnet_generic) .PHONY: debian-build-rosetta-devnet debian-build-rosetta-devnet: ## Build the Debian Rosetta package for devnet @@ -593,10 +593,19 @@ debian-build-rosetta-mainnet: ## Build the Debian Rosetta package for mainnet debian-build-daemon-devnet-hardfork: ## Build the Debian daemon package for devnet hardfork $(call build_debian_package,daemon_devnet_hardfork) +.PHONY: debian-build-daemon-devnet-pre-hardfork +debian-build-daemon-devnet-pre-hardfork: ## Build the Debian daemon package for automote devnet pre hardfork + $(call build_debian_package,daemon_pre_hardfork_devnet) + +.PHONY: debian-build-daemon-mainnet-pre-hardfork +debian-build-daemon-mainnet-pre-hardfork: ## Build the Debian daemon package for automote mainnet pre hardfork + $(call build_debian_package,daemon_pre_hardfork_mainnet) + .PHONY: debian-download-create-legacy-hardfork debian-download-create-legacy-hardfork: ## Download and create legacy hardfork Debian packages $(info 📦 Downloading legacy hardfork Debian packages for debian $(CODENAME)) @./buildkite/scripts/release/manager.sh pull --artifacts mina-create-legacy-genesis --from-special-folder legacy/debians/$(CODENAME) --backend hetzner --target _build + ######################################## # Docker images @@ -648,10 +657,10 @@ docker-build-toolchain: ## Build the toolchain to be used in CI --service mina-toolchain \ --version mina-toolchain-$(CODENAME)-$(GITHASH) -.PHONY: docker-build-archive-berkeley -docker-build-archive-berkeley: SHELL := /bin/bash -docker-build-archive-berkeley: start-local-debian-repo ## Build the archive Docker image - $(call build_docker_image,mina-archive,berkeley) +.PHONY: docker-build-archive-testnet-generic +docker-build-archive-testnet-generic: SHELL := /bin/bash +docker-build-archive-testnet-generic: start-local-debian-repo ## Build the archive Docker image + $(call build_docker_image,mina-archive,testnet-generic) .PHONY: docker-build-archive-devnet docker-build-archive-devnet: SHELL := /bin/bash @@ -663,10 +672,10 @@ docker-build-archive-mainnet: SHELL := /bin/bash docker-build-archive-mainnet: start-local-debian-repo ## Build the archive Docker image for mainnet $(call build_docker_image,mina-archive,mainnet) -.PHONY: docker-build-daemon-berkeley -docker-build-daemon-berkeley: SHELL := /bin/bash -docker-build-daemon-berkeley: start-local-debian-repo ## Build the daemon Docker image - $(call build_docker_image,mina-daemon,berkeley) +.PHONY: docker-build-daemon-testnet-generic +docker-build-daemon-testnet-generic: SHELL := /bin/bash +docker-build-daemon-testnet-generic: start-local-debian-repo ## Build the daemon Docker image + $(call build_docker_image,mina-daemon,testnet-generic) .PHONY: docker-build-daemon-devnet docker-build-daemon-devnet: SHELL := /bin/bash @@ -679,9 +688,9 @@ docker-build-daemon-mainnet: start-local-debian-repo ## Build the daemon Docker $(call build_docker_image,mina-daemon,mainnet) .PHONY: docker-build-rosetta -docker-build-rosetta-berkeley: SHELL := /bin/bash -docker-build-rosetta-berkeley: start-local-debian-repo ## Build the Rosetta Docker image - $(call build_docker_image,mina-rosetta,berkeley) +docker-build-rosetta-testnet-generic: SHELL := /bin/bash +docker-build-rosetta-testnet-generic: start-local-debian-repo ## Build the Rosetta Docker image + $(call build_docker_image,mina-rosetta,testnet-generic) .PHONY: docker-build-rosetta-devnet docker-build-rosetta-devnet: SHELL := /bin/bash diff --git a/buildkite/Makefile b/buildkite/Makefile index 08d636174b1c..cbc70beae02e 100644 --- a/buildkite/Makefile +++ b/buildkite/Makefile @@ -1,47 +1,88 @@ -# Builds all dhall entrypoints -check_syntax: - # globstar doesn't work on macOS bash :facepalm:, so we can't glob - # xargs will short-circuit if a command fails with code 255 - find ./src/ -name "*.dhall" -print0 | xargs -I{} -0 -n1 bash -c 'echo "{}" && dhall --file {} > /dev/null || exit 255' +# Use gsed on macOS (gnu-sed is enforced) +ifeq ($(shell uname -s),Darwin) + SED := gsed +else + SED := sed +endif +.PHONY: help +help: ## Show this help + @echo "Available targets:" + @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | \ + awk 'BEGIN {FS = ":.*?## "}; \ + {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' + +.PHONY: check_syntax +check_syntax: ## Check dhall syntax for all files + @# globstar doesn't work on macOS bash :facepalm:, so we can't glob + @# xargs will short-circuit if a command fails with code 255 + @find ./src/ -name "*.dhall" -print0 | \ + xargs -I{} -0 -n1 bash -c \ + 'echo "{}" && dhall --file {} > /dev/null || exit 255' + +.PHONY: convert_backticks_to_ifs convert_backticks_to_ifs: - sed -i -E 's/`if` =/if =/g' src/Command/Base.dhall + @$(SED) -i 's/`if` =/if =/g' src/Command/Base.dhall +.PHONY: convert_ifs_to_backticks convert_ifs_to_backticks: - sed -i -E 's/if =/`if` =/g' src/Command/Base.dhall + @$(SED) -i 's/if =/`if` =/g' src/Command/Base.dhall -check_lint: convert_backticks_to_ifs - find ./src/ -name "*.dhall" -print0 | xargs -I{} -0 -n1 bash -c 'echo "{}" && dhall --ascii lint --check --inplace {} || exit 255' +.PHONY: check_lint +check_lint: convert_backticks_to_ifs ## Check dhall lint for all files + @find ./src/ -name "*.dhall" -print0 | \ + xargs -I{} -0 -n1 bash -c \ + 'echo "{}" && dhall --ascii lint --check --inplace {} || exit 255' -check_format: convert_backticks_to_ifs +.PHONY: check_format +check_format: convert_backticks_to_ifs ## Check dhall format for all files @echo "Dhall version: $$(dhall --version)" - find ./src/ -name "*.dhall" -print0 | xargs -I{} -0 -n1 bash -c 'echo "{} format" && dhall --ascii format --check --inplace {} || exit 255' + @find ./src/ -name "*.dhall" -print0 | \ + xargs -I{} -0 -n1 bash -c \ + 'echo "{} format" && dhall --ascii format --check --inplace {} \ + || exit 255' -lint: - find ./src/ -name "*.dhall" -print0 | xargs -I{} -0 -n1 bash -c 'echo "{}" && dhall --ascii lint --inplace {} || exit 255' - $(MAKE) convert_ifs_to_backticks +.PHONY: lint +lint: ## Lint all dhall files in place + @find ./src/ -name "*.dhall" -print0 | \ + xargs -I{} -0 -n1 bash -c \ + 'echo "{}" && dhall --ascii lint --inplace {} || exit 255' + @$(MAKE) convert_ifs_to_backticks -format: - find ./src/ -name "*.dhall" -print0 | xargs -I{} -0 -n1 bash -c 'echo "{}" && dhall --ascii format --inplace {} || exit 255' - $(MAKE) convert_ifs_to_backticks +.PHONY: format +format: ## Format all dhall files in place + @find ./src/ -name "*.dhall" -print0 | \ + xargs -I{} -0 -n1 bash -c \ + 'echo "{}" && dhall --ascii format --inplace {} || exit 255' + @$(MAKE) convert_ifs_to_backticks -dump_pipelines: +.PHONY: dump_pipelines +dump_pipelines: ## Dump dhall pipelines to temporary directory $(eval TMP := $(shell mktemp -d)) - ./scripts/dhall/dump_dhall_to_pipelines.sh ./src "$(TMP)" + @./scripts/dhall/dump_dhall_to_pipelines.sh ./src "$(TMP)" -check_deps: dump_pipelines - python3 scripts/dhall/checker.py --root "$(TMP)" deps +.PHONY: check_deps +check_deps: dump_pipelines ## Check pipeline dependencies + @python3 scripts/dhall/checker.py --root "$(TMP)" deps -check_dirty: dump_pipelines - python3 scripts/dhall/checker.py --root "$(TMP)" dirty-when --repo "$(PWD)/../" +.PHONY: check_dirty +check_dirty: dump_pipelines ## Check dirty-when configurations + @python3 scripts/dhall/checker.py --root "$(TMP)" dirty-when \ + --repo "$(PWD)/../" -check_dups: dump_pipelines - python3 scripts/dhall/checker.py --root "$(TMP)" dups +.PHONY: check_dups +check_dups: dump_pipelines ## Check for duplicate pipelines + @python3 scripts/dhall/checker.py --root "$(TMP)" dups -check_names: dump_pipelines - python3 scripts/dhall/checker.py --root "$(TMP)" names +.PHONY: check_names +check_names: dump_pipelines ## Check pipeline names + @python3 scripts/dhall/checker.py --root "$(TMP)" names -test_monorepo: - ./scripts/test_monorepo.sh +.PHONY: test_monorepo +test_monorepo: ## Run monorepo tests + @./scripts/test_monorepo.sh -all: check_syntax lint format check_deps check_dirty check_dups check_names test_monorepo +.PHONY: all +all: ## Run all checks +all: check_syntax lint format check_deps check_dirty check_dups check_names +all: test_monorepo diff --git a/buildkite/scripts/apps/write_to_cache.sh b/buildkite/scripts/apps/write_to_cache.sh index 9817dcd6db86..d81c46d0c1e6 100755 --- a/buildkite/scripts/apps/write_to_cache.sh +++ b/buildkite/scripts/apps/write_to_cache.sh @@ -8,5 +8,5 @@ find _build -type f -name "*.exe" | while read -r entry; do continue fi - ./buildkite/scripts/cache/manager.sh write "$entry" "apps/${CODENAME}/" + ./buildkite/scripts/cache/manager.sh write-to-dir "$entry" "apps/${CODENAME}" done diff --git a/buildkite/scripts/archive/upgrade-script-check.sh b/buildkite/scripts/archive/upgrade-script-check.sh index ef62aeb58352..e3f982f9b5df 100755 --- a/buildkite/scripts/archive/upgrade-script-check.sh +++ b/buildkite/scripts/archive/upgrade-script-check.sh @@ -29,7 +29,8 @@ set -euo pipefail MODE="default" COMPARISION_BRANCH="develop" -REPO_ROOT="$(git rev-parse --show-toplevel)" + +source "$(dirname "$0")/../export-git-env-vars.sh" # Parse command line arguments parse_args() { diff --git a/buildkite/scripts/bench/install.sh b/buildkite/scripts/bench/install.sh index ebb88d481c88..a086d1790b34 100644 --- a/buildkite/scripts/bench/install.sh +++ b/buildkite/scripts/bench/install.sh @@ -2,16 +2,11 @@ set -eo pipefail -# Don't prompt for answers during apt-get install -export DEBIAN_FRONTEND=noninteractive - -TESTNET_NAME="berkeley" +TESTNET_NAME="testnet-generic" git config --global --add safe.directory /workdir source buildkite/scripts/export-git-env-vars.sh -source buildkite/scripts/debian/update.sh --verbose - source buildkite/scripts/debian/install.sh "mina-test-suite,mina-$TESTNET_NAME" 1 pip3 install -r scripts/benchmarks/requirements.txt \ No newline at end of file diff --git a/buildkite/scripts/bench/run.sh b/buildkite/scripts/bench/run.sh index be12f79f24c5..8cbfb6fec353 100755 --- a/buildkite/scripts/bench/run.sh +++ b/buildkite/scripts/bench/run.sh @@ -2,8 +2,6 @@ set -eox pipefail -# Don't prompt for answers during apt-get install - YELLOW_THRESHOLD="0.1" RED_THRESHOLD="0.3" EXTRA_ARGS="${EXTRA_ARGS:-}" diff --git a/buildkite/scripts/cache/manager.sh b/buildkite/scripts/cache/manager.sh index 2a461428df40..96ea617470ea 100755 --- a/buildkite/scripts/cache/manager.sh +++ b/buildkite/scripts/cache/manager.sh @@ -49,9 +49,10 @@ function main_help(){ echo "" echo "Sub-commands:" echo "" - echo " read - read file/files from cache"; - echo " write - write file/files to cache"; - echo " help - show this help message"; + echo " read - read file/files from cache"; + echo " write - write file/files to cache (destination is a file path)"; + echo " write-to-dir - write file/files to cache (destination is a directory)"; + echo " help - show this help message"; echo "" exit "${1:-0}"; } @@ -68,10 +69,10 @@ function version(){ # Display the help message for the read command function read_help(){ - echo "Read file or files from CI cache" + echo "Read multiple files from CI cache into a local directory." echo "Script requires to be executed in buildkite context. e.g (BUILDKITE_BUILD_ID env var to be defined)" echo "" - echo " $CLI_NAME read [-options] INPUT_CACHE_LOCATION OUTPUT_LOCAL_LOCATION" + echo " $CLI_NAME read [-options] INPUT_CACHE_LOCATION_1 [INPUT_CACHE_LOCATION_2 ...] OUTPUT_LOCAL_LOCATION" echo "" echo "Parameters:" echo "" @@ -82,20 +83,19 @@ function read_help(){ echo "" echo "Values:" echo "" - echo " INPUT_CACHE_LOCATION - path from which we will read (copy) cached artifact(s) (supports wildcard)" - echo " OUTPUT_LOCAL_LOCATION - local destination" + echo " INPUT_CACHE_LOCATION_X - path(s) from which to read (copy) cached artifact(s) (supports wildcard)" + echo " OUTPUT_LOCAL_LOCATION - local destination directory" echo "" echo "Example:" echo "" - echo " " "$CLI_NAME" read debians/mina-devnet*.deb /workdir - echo "" - echo " Above command will copy 'debians/mina-devnet*.deb' files from CACHE_MOUNTPOINT/BUILDKITE_BUILD_ID/debians to /workdir" + echo " $CLI_NAME read debians/mina-devnet*.deb debians/mina-archive*.deb /workdir" echo "" + echo " Above command will copy all matching files from CACHE_MOUNTPOINT/BUILDKITE_BUILD_ID/debians to /workdir" echo "" exit 0 } -# Read files from the cache +# Read multiple files from the cache function read(){ if [[ "$#" == 0 ]]; then read_help; @@ -104,11 +104,13 @@ function read(){ local __override=0 local __root="$BUILDKITE_BUILD_ID" local __skip_dirs_creation=0 - + local __inputs=() + local __to="" + while [ "$#" -gt 0 ]; do error_message="Error: a value is needed for '$1'"; case $1 in - -h | --help ) + -h | --help ) read_help; ;; -o | --override ) @@ -124,28 +126,26 @@ function read(){ shift 1; ;; * ) - if [[ -z ${__from+x} ]]; then - __from="$CACHE_BASE_URL/$__root/$1" - shift 1; - continue - fi - - if [[ -z ${__to+x} ]]; then - __to="$1" - shift 1; - continue + # Collect all but last argument as inputs + if [[ "$#" -eq 1 ]]; then + __to="$1" + shift 1; + continue fi - echo -e "${RED} !! Unknown option or missing argument: $1${CLEAR}\n"; - echo ""; - read_help; + __inputs+=("$CACHE_BASE_URL/$__root/$1") + shift 1; ;; esac done - + + if [[ -z "$__to" ]]; then + echo -e "${RED} !! Missing destination directory ('to')${CLEAR}\n"; + read_help; + fi if [[ $__skip_dirs_creation == 1 ]]; then echo "..Skipping dirs creation" - else + else mkdir -p "$__to" fi @@ -155,34 +155,32 @@ function read(){ exit 1 fi - echo "..Copying $__from -> $__to" - - if [[ $__override == 1 ]]; then + if [[ $__override == 1 ]]; then EXTRA_FLAGS="" - else + else EXTRA_FLAGS="-f" fi - mkdir -p "$__to" - - if ! cp -R "${EXTRA_FLAGS}" $__from "$__to"; then - echo -e "${RED} !! There are some errors while copying files to cache. Exiting... ${CLEAR}\n"; - exit 2 - fi + for input_path in "${__inputs[@]}"; do + echo "..Copying $input_path -> $__to" + if ! cp -R ${EXTRA_FLAGS} $input_path "$__to"; then + echo -e "${RED} !! There are some errors while copying files to cache. Exiting... ${CLEAR}\n"; + exit 2 + fi + done } - #============== # write #============== # Display the help message for the write command function write_help(){ - echo Writes file or files to CI cache + echo "Write a file to CI cache (destination is treated as a file path)." echo "Script requires to be executed in buildkite context. e.g (BUILDKITE_BUILD_ID env var to be defined)" + echo "For writing multiple files to a directory, use 'write-to-dir' instead." echo "" - echo " $CLI_NAME write [-options] INPUT_LOCAL_LOCATION OUTPUT_CACHE_LOCATION" - echo "" + echo " $CLI_NAME write [-options] INPUT_LOCAL_FILE OUTPUT_CACHE_FILE_PATH" echo "" echo "Parameters:" echo "" @@ -192,38 +190,37 @@ function write_help(){ echo "" echo "Values:" echo "" - echo " INPUT_LOCAL_LOCATION - single or multiple files to write (supports wildcard)" - echo " OUTPUT_CACHE_LOCATION - destination at cache mount" + echo " INPUT_LOCAL_FILE - local file to write to cache" + echo " OUTPUT_CACHE_FILE_PATH - destination file path at cache mount" echo "" echo "Example:" echo "" - echo " " $CLI_NAME write mina-devnet*.deb debians/ - echo "" - echo " Above command will write mina-devnet*.deb files to CACHE_MOUNTPOINT/BUILDKITE_BUILD_ID/debians" + echo " $CLI_NAME write mina-devnet.deb debians/mina-devnet.deb" echo "" + echo " Above command will write file to CACHE_MOUNTPOINT/BUILDKITE_BUILD_ID/debians/mina-devnet.deb" echo "" exit 0 } -# Writes files to the cache +# Write file to the cache (destination is treated as a file path) function write(){ - if [[ "$#" == 0 ]]; then write_help; fi - local __override=0 local __root="$BUILDKITE_BUILD_ID" - - while [ ${#} -gt 0 ]; do + local __input="" + local __to="" + + while [ "$#" -gt 0 ]; do error_message="Error: a value is needed for '$1'"; case $1 in - -h | --help ) + -h | --help ) write_help; ;; -o | --override ) - __override=1 + __override=1 shift 1; ;; -r | --root ) @@ -231,40 +228,131 @@ function write(){ shift 2; ;; * ) - if [[ ! -v __from ]]; then - __from="$1" - shift 1; - continue + if [[ -z "$__input" ]]; then + __input="$1" + elif [[ -z "$__to" ]]; then + __to=$CACHE_BASE_URL/$__root/"$1" + else + echo -e "${RED} !! Only one input and one output (from and to) are allowed${CLEAR}\n"; + write_help; fi - - if [[ ! -v __to ]]; then - __to=$CACHE_BASE_URL/$__root/"$1" - shift 1; - continue - fi - echo -e "${RED} !! Unknown option or missing argument: $1${CLEAR}\n"; - echo ""; - write_help; + shift 1; ;; esac done - - echo "..Copying $__from -> $__to" - - if [[ $__override == 1 ]]; then + + if [[ -z "$__input" || -z "$__to" ]]; then + echo -e "${RED} !! Missing input or destination file path ('from' and 'to')${CLEAR}\n"; + write_help; + fi + + if [[ $__override == 1 ]]; then EXTRA_FLAGS="" - else + else EXTRA_FLAGS="-f" fi - mkdir -p "$__to" - - if ! cp -R "${EXTRA_FLAGS}" "$__from" "$__to"; then + # Destination is treated as a file path - create parent directory only + mkdir -p "$(dirname "$__to")" + + echo "..Copying $__input -> $__to" + if ! cp -R ${EXTRA_FLAGS} "$__input" "$__to"; then echo -e "${RED} !! There are some errors while copying files to cache. Exiting... ${CLEAR}\n"; exit 2 fi } +#================== +# write-to-dir +#================== + +# Display the help message for the write-to-dir command +function write-to-dir_help(){ + echo "Write multiple files to CI cache into a cache directory." + echo "Script requires to be executed in buildkite context. e.g (BUILDKITE_BUILD_ID env var to be defined)" + echo "" + echo " $CLI_NAME write-to-dir [-options] INPUT_LOCAL_LOCATION_1 [INPUT_LOCAL_LOCATION_2 ...] OUTPUT_CACHE_DIRECTORY" + echo "" + echo "Parameters:" + echo "" + printf " %-25s %s\n" "-h | --help" "show help"; + printf " %-25s %s\n" "-o | --override" "[bool] override existing files"; + printf " %-25s %s\n" "-r | --root" "[path] override cache root folder. WARNING it does not override cache mount point. Do not add leading slash at the beginning or end."; + echo "" + echo "Values:" + echo "" + echo " INPUT_LOCAL_LOCATION_X - path(s) of files to write (supports wildcard)" + echo " OUTPUT_CACHE_DIRECTORY - destination directory at cache mount (will be created if not exists)" + echo "" + echo "Example:" + echo "" + echo " $CLI_NAME write-to-dir mina-devnet*.deb mina-archive*.deb debians" + echo "" + echo " Above command will write all matching files to CACHE_MOUNTPOINT/BUILDKITE_BUILD_ID/debians/" + echo "" + exit 0 +} + +# Write multiple files to a cache directory +function write-to-dir(){ + if [[ "$#" == 0 ]]; then + write-to-dir_help; + fi + + local __override=0 + local __root="$BUILDKITE_BUILD_ID" + local __inputs=() + local __to="" + + while [ "$#" -gt 0 ]; do + error_message="Error: a value is needed for '$1'"; + case $1 in + -h | --help ) + write-to-dir_help; + ;; + -o | --override ) + __override=1 + shift 1; + ;; + -r | --root ) + __root=${2:?$error_message} + shift 2; + ;; + * ) + # Collect all but last argument as inputs + if [[ "$#" -eq 1 ]]; then + __to=$CACHE_BASE_URL/$__root/"$1" + shift 1; + continue + fi + __inputs+=("$1") + shift 1; + ;; + esac + done + + if [[ -z "$__to" ]]; then + echo -e "${RED} !! Missing destination directory ('to')${CLEAR}\n"; + write-to-dir_help; + fi + + if [[ $__override == 1 ]]; then + EXTRA_FLAGS="" + else + EXTRA_FLAGS="-f" + fi + + # Destination is treated as a directory - create it + mkdir -p "$__to" + + for input_path in "${__inputs[@]}"; do + echo "..Copying $input_path -> $__to" + if ! cp -R ${EXTRA_FLAGS} $input_path "$__to"; then + echo -e "${RED} !! There are some errors while copying files to cache. Exiting... ${CLEAR}\n"; + exit 2 + fi + done +} # Main function to handle the CLI function main(){ if (( "$#" == 0 )); then @@ -275,7 +363,7 @@ function main(){ help ) main_help 0; ;; - read | write ) + read | write | write-to-dir ) $1 "${@:2}"; ;; *) diff --git a/buildkite/scripts/debian/install.sh b/buildkite/scripts/debian/install.sh index 51754a7dc372..47421fbc0d97 100755 --- a/buildkite/scripts/debian/install.sh +++ b/buildkite/scripts/debian/install.sh @@ -14,10 +14,16 @@ fi DEBS=$1 USE_SUDO=${2:-0} +ROOT="${ROOT:-${BUILDKITE_BUILD_ID}}" + +# Don't prompt for answers during apt-get install +export DEBIAN_FRONTEND=noninteractive # Source git environment variables first to get MINA_DEB_CODENAME source ./buildkite/scripts/export-git-env-vars.sh +VERSION="${FORCE_VERSION:-"${MINA_DEB_VERSION}"}" + if [ "$USE_SUDO" == "1" ]; then SUDO="sudo" else @@ -25,19 +31,20 @@ else fi + LOCAL_DEB_FOLDER=debs mkdir -p $LOCAL_DEB_FOLDER # Download required debians from bucket locally if [ -z "$DEBS" ]; then - echo "DEBS env var is empty. It should contains comma delimitered names of debians to install" + echo "DEBS env var is empty. It should contains comma separated names of debians to install" exit 1 else # shellcheck disable=SC2206 debs=(${DEBS//,/ }) for i in "${debs[@]}"; do case $i in - mina-berkeley*|mina-devnet|mina-mainnet|mina-mesa*) + mina-testnet-generic*|mina-mesa*|mina-devnet|mina-mainnet) # Downaload mina-logproc too ./buildkite/scripts/cache/manager.sh read "debians/$MINA_DEB_CODENAME/mina-logproc*" $LOCAL_DEB_FOLDER ;; @@ -45,13 +52,13 @@ else # Download mina-logproc legacy too ./buildkite/scripts/cache/manager.sh read --root "legacy" "debians/$MINA_DEB_CODENAME/${i}*" $LOCAL_DEB_FOLDER esac - ./buildkite/scripts/cache/manager.sh read "debians/$MINA_DEB_CODENAME/${i}_*" $LOCAL_DEB_FOLDER + ./buildkite/scripts/cache/manager.sh read --root "$ROOT" "debians/$MINA_DEB_CODENAME/${i}_${VERSION}_*" $LOCAL_DEB_FOLDER done fi debs_with_version=() for i in "${debs[@]}"; do - debs_with_version+=("${i}=${MINA_DEB_VERSION}") + debs_with_version+=("${i}=${VERSION}") done # Start aptly diff --git a/buildkite/scripts/debian/start_local_repo.sh b/buildkite/scripts/debian/start_local_repo.sh index dfe6ab404142..4733e5a13e9c 100755 --- a/buildkite/scripts/debian/start_local_repo.sh +++ b/buildkite/scripts/debian/start_local_repo.sh @@ -7,6 +7,7 @@ fi # Parse command line arguments ARCH="amd64" # default architecture +ROOT=${BUILDKITE_BUILD_ID} while [[ $# -gt 0 ]]; do case $1 in @@ -14,6 +15,10 @@ while [[ $# -gt 0 ]]; do ARCH="$2" shift 2 ;; + --root) + ROOT="$2" + shift 2 + ;; *) echo "Unknown option: $1" exit 1 @@ -31,5 +36,5 @@ set -x mkdir -p $LOCAL_DEB_FOLDER source ./buildkite/scripts/export-git-env-vars.sh ./buildkite/scripts/cache/manager.sh read --root legacy/debians "$MINA_DEB_CODENAME/*" _build -./buildkite/scripts/cache/manager.sh read "debians/$MINA_DEB_CODENAME/*" _build +./buildkite/scripts/cache/manager.sh read --root "${ROOT}" "debians/$MINA_DEB_CODENAME/*" _build ./scripts/debian/aptly.sh start --codename $MINA_DEB_CODENAME --debians $LOCAL_DEB_FOLDER --component unstable --clean --background --wait --archs $ARCH \ No newline at end of file diff --git a/buildkite/scripts/debian/update.sh b/buildkite/scripts/debian/update.sh index 240ae91b0e63..86842f693ced 100755 --- a/buildkite/scripts/debian/update.sh +++ b/buildkite/scripts/debian/update.sh @@ -29,7 +29,13 @@ APT_SOURCES_DIR="/etc/apt/sources.list.d" export DEBIAN_FRONTEND=noninteractive # Configuration -BLACKLISTED_REPOS=() # Uncomment to start with no blacklisted repos + +# Set BLACKLISTED_REPOS=() to start with no blacklisted repos +# Usage: Specify name of repo files (not full paths) to blacklist by default + +# 31-01-2025 yarn is giving us issues frequently on invalid signatures +# because their key rotation is not well managed. So we blacklist it by default. +BLACKLISTED_REPOS=("yarn.list") VERBOSE=false DRY_RUN=false SUDO_CMD="" diff --git a/buildkite/scripts/debian/write_to_cache.sh b/buildkite/scripts/debian/write_to_cache.sh index a5fdb401e854..20bafb67dc67 100755 --- a/buildkite/scripts/debian/write_to_cache.sh +++ b/buildkite/scripts/debian/write_to_cache.sh @@ -3,5 +3,5 @@ CODENAME=$1 for entry in _build/*.deb; do - ./buildkite/scripts/cache/manager.sh write "$entry" debians/${CODENAME}/ + ./buildkite/scripts/cache/manager.sh write-to-dir "$entry" debians/${CODENAME}/ done diff --git a/buildkite/scripts/dhall/update_external_deps.sh b/buildkite/scripts/dhall/update_external_deps.sh new file mode 100755 index 000000000000..79fcbdc0af4f --- /dev/null +++ b/buildkite/scripts/dhall/update_external_deps.sh @@ -0,0 +1,198 @@ +#!/usr/bin/env bash + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_ROOT="$(cd "${SCRIPT_DIR}/../../.." && pwd)" +EXTERNAL_DIR="${REPO_ROOT}/buildkite/src/External" + +PRELUDE_VERSION="${PRELUDE_VERSION:-v15.0.0}" +PRELUDE_REPO_URL="${PRELUDE_REPO_URL:-https://github.com/dhall-lang/dhall-lang.git}" + +BUILDKITE_RELEASE="${BUILDKITE_RELEASE:-0.0.1}" +BUILDKITE_S3_PATH="s3://dhall.packages.minaprotocol.com/buildkite/releases/${BUILDKITE_RELEASE}" + +TMP_ROOT="${TMPDIR:-/tmp}" +AWS_REGION="us-west-2" + +ONLY="all" +KEEP_TMP=0 + +usage() { + cat <<'USAGE' +Usage: update_external_deps.sh [options] + +Updates buildkite/src/External/{prelude,buildkite} and refreshes dhall hashes. + +Options: + --only Update a single dependency (default: all) + --prelude-version dhall-lang tag/branch (default: v15.0.0) + --prelude-repo dhall-lang repo (default: ${PRELUDE_REPO_URL}) + --buildkite-release S3 release version (default: 0.0.1) + --buildkite-s3-path S3 path to Buildkite bindings ( default: ${BUILDKITE_S3_PATH} ) + --tmp-root Temp directory root (default: /tmp) + --keep-tmp Do not delete temp directories + -h, --help Show this help + +USAGE +} + +while [[ $# -gt 0 ]]; do + case "$1" in + --only) + ONLY="$2" + shift 2 + ;; + --prelude-version) + PRELUDE_VERSION="$2" + shift 2 + ;; + --prelude-repo) + PRELUDE_REPO_URL="$2" + shift 2 + ;; + --buildkite-release) + BUILDKITE_RELEASE="$2" + shift 2 + ;; + --tmp-root) + TMP_ROOT="$2" + shift 2 + ;; + --keep-tmp) + KEEP_TMP=1 + shift + ;; + -h|--help) + usage + exit 0 + ;; + *) + echo "Unknown argument: $1" >&2 + usage + exit 1 + ;; + esac +done + +TMP_DIRS=() + +make_tmp_dir() { + local dir + dir="$(mktemp -d "${TMP_ROOT%/}/external-deps.XXXXXX")" + TMP_DIRS+=("$dir") + echo "$dir" +} + +normalize_repo_url() { + local repo="$1" + if [[ "${repo}" != *"://"* ]]; then + repo="https://github.com/${repo}" + fi + echo "${repo}" +} + +cleanup() { + if [[ "${KEEP_TMP}" -eq 1 ]]; then + return + fi + for dir in "${TMP_DIRS[@]}"; do + rm -rf "$dir" + done +} +trap cleanup EXIT + +update_prelude() { + echo "Updating Prelude (dhall-lang ${PRELUDE_VERSION})" + local tmp + tmp="$(make_tmp_dir)" + local repo_dir="${tmp}/dhall-lang" + local repo_url + repo_url="$(normalize_repo_url "${PRELUDE_REPO_URL}")" + echo "Cloning ${repo_url} into ${repo_dir}" + git clone --branch "${PRELUDE_VERSION}" --depth 1 \ + "${repo_url}" "${repo_dir}" + + if [[ ! -d "${repo_dir}/Prelude" ]]; then + echo "Prelude directory not found in ${repo_dir}" >&2 + exit 1 + fi + + echo "Refreshing ${EXTERNAL_DIR}/prelude" + rm -rf "${EXTERNAL_DIR}/prelude" + mkdir -p "${EXTERNAL_DIR}/prelude" + cp -R "${repo_dir}/Prelude/." "${EXTERNAL_DIR}/prelude" + echo "Freezing ${EXTERNAL_DIR}/Prelude.dhall" + dhall freeze --inplace "${EXTERNAL_DIR}/Prelude.dhall" +} + +resolve_buildkite_src_dir() { + local out_dir="$1" + if [[ -d "${out_dir}/top_level" ]]; then + echo "${out_dir}" + return 0 + fi + if [[ -d "${out_dir}/buildkite/top_level" ]]; then + echo "${out_dir}/buildkite" + return 0 + fi + return 1 +} + +update_buildkite() { + echo "Updating Buildkite bindings" + if ! command -v aws >/dev/null 2>&1; then + echo "aws-cli not available; cannot sync Buildkite bindings from S3." >&2 + exit 1 + fi + local tmp + tmp="$(make_tmp_dir)" + local out_dir="${tmp}/out" + echo "Syncing Buildkite bindings from S3 (release ${BUILDKITE_RELEASE})" + aws s3 sync \ + "${BUILDKITE_S3_PATH}" \ + "${out_dir}" \ + --region "${AWS_REGION}" \ + --quiet + + local src_dir + if ! src_dir="$(resolve_buildkite_src_dir "${out_dir}")"; then + echo "Unable to find Buildkite bindings in ${out_dir}" >&2 + echo "Expected to find 'top_level' directory." >&2 + exit 1 + fi + + echo "Refreshing ${EXTERNAL_DIR}/buildkite" + rm -rf "${EXTERNAL_DIR}/buildkite" + mkdir -p "${EXTERNAL_DIR}/buildkite" + cp -R "${src_dir}/." "${EXTERNAL_DIR}/buildkite" + echo "Freezing ${EXTERNAL_DIR}/Buildkite.dhall" + dhall freeze --inplace "${EXTERNAL_DIR}/Buildkite.dhall" +} + +format_and_validate() { + echo "Running 'make all' in ${REPO_ROOT}/buildkite" + # The subshell (parentheses) ensures the local working directory (pwd) + # is NOT changed + (cd "${REPO_ROOT}/buildkite" && make all) +} + +case "${ONLY}" in + all) + update_prelude + update_buildkite + ;; + prelude) + update_prelude + ;; + buildkite) + update_buildkite + ;; + *) + echo "Unknown --only value: ${ONLY}" >&2 + usage + exit 1 + ;; +esac + +format_and_validate diff --git a/buildkite/scripts/dump-mina-type-shapes.sh b/buildkite/scripts/dump-mina-type-shapes.sh index 1f7628e48d74..fe4c08f52b59 100755 --- a/buildkite/scripts/dump-mina-type-shapes.sh +++ b/buildkite/scripts/dump-mina-type-shapes.sh @@ -4,7 +4,7 @@ set -eo pipefail buildkite/scripts/debian/update.sh --verbose -TESTNET_NAME="berkeley" +TESTNET_NAME="testnet-generic" git config --global --add safe.directory /workdir source buildkite/scripts/export-git-env-vars.sh diff --git a/buildkite/scripts/monorepo.sh b/buildkite/scripts/monorepo.sh index f88f882adfbc..ae459cc33571 100755 --- a/buildkite/scripts/monorepo.sh +++ b/buildkite/scripts/monorepo.sh @@ -108,27 +108,26 @@ if [[ ${#MAINLINE_BRANCHES[@]} -eq 0 ]]; then fi # Debug output -if [[ "$DEBUG" == true ]]; then +if [[ "${DEBUG:-false}" == true ]]; then echo "Debug: SELECTION_MODE=$SELECTION_MODE" echo "Debug: TAGS=$TAGS" echo "Debug: SCOPES=$SCOPES" echo "Debug: FILTER_MODE=$FILTER_MODE" echo "Debug: JOBS=$JOBS" echo "Debug: GIT_DIFF_FILE=$GIT_DIFF_FILE" + if [[ -n "$GIT_DIFF_FILE" && -f "$GIT_DIFF_FILE" ]]; then + echo "Debug: Contents of GIT_DIFF_FILE ($GIT_DIFF_FILE):" + cat "$GIT_DIFF_FILE" + fi echo "Debug: MAINLINE_BRANCHES=${MAINLINE_BRANCHES[*]}" + echo "Debug: DRY_RUN=$DRY_RUN" + fi # Check if yq is installed, if not install it if ! command -v yq &> /dev/null; then - echo "yq not found, installing..." - if command -v apt-get &> /dev/null; then - sudo apt-get update && sudo apt-get install -y wget - sudo wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq - sudo chmod +x /usr/local/bin/yq - else - echo "Error: yq is not installed and automatic installation is not supported on this system. Please install yq manually." - exit 1 - fi + echo "Error: yq is not installed and automatic installation is not supported on this system. Please install yq manually." + exit 1 fi IFS=',' read -r -a DESIRED_TAGS <<< "$TAGS" @@ -160,9 +159,13 @@ else exit 1 fi -# Find the closest ancestor branch -# which will be used for excludeIf evaluations -closest_ancestor=$(find_closest_ancestor) +# Check for forced closest ancestor via environment variable +# Used only in testing or if git is on fire +if [[ -n "${FORCE_CLOSEST_ANCESTOR:-}" ]]; then + closest_ancestor="$FORCE_CLOSEST_ANCESTOR" +else + closest_ancestor=$(find_closest_ancestor) +fi find "$JOBS" -type f -name "*.yml" | while read -r file; do tags=$(yq .spec.tags "$file") @@ -216,9 +219,8 @@ find "$JOBS" -type f -name "*.yml" | while read -r file; do else job_path=$(yq -r .spec.path "$file") - dhall-to-yaml --quoted <<< "(./buildkite/src/Jobs/$job_path/$job_name.dhall).pipeline" | buildkite-agent pipeline upload + ./buildkite/scripts/pipeline/upload.sh "(./buildkite/src/Jobs/$job_path/$job_name.dhall).pipeline" printf " -> ✅ Uploaded job: %s\n" "$job_name" fi done - diff --git a/buildkite/scripts/pipeline/Makefile b/buildkite/scripts/pipeline/Makefile new file mode 100644 index 000000000000..4872de7ae198 --- /dev/null +++ b/buildkite/scripts/pipeline/Makefile @@ -0,0 +1,58 @@ +.PHONY: build install clean test fmt lint vet check + +BINARY_NAME=hardfork-runner +BUILD_DIR=./bin + +build: + @echo "Building $(BINARY_NAME)..." + @mkdir -p $(BUILD_DIR) + @go build -o $(BUILD_DIR)/$(BINARY_NAME) run-hardfork-pipeline.go + @echo "Build complete: $(BUILD_DIR)/$(BINARY_NAME)" + +install: build + @echo "Installing $(BINARY_NAME) to /usr/local/bin..." + @sudo cp $(BUILD_DIR)/$(BINARY_NAME) /usr/local/bin/ + @echo "Installed successfully" + +clean: + @echo "Cleaning..." + @rm -rf $(BUILD_DIR) + @echo "Clean complete" + +test: + @go test -v ./... + +# Format code +fmt: + @echo "Formatting Go code..." + @go fmt ./... + @echo "Format complete" + +# Run go vet +vet: + @echo "Running go vet..." + @go vet ./... + @echo "Vet complete" + +# Run linter (requires golangci-lint) +lint: + @echo "Running linter..." + @if command -v golangci-lint >/dev/null 2>&1; then \ + golangci-lint run; \ + else \ + echo "golangci-lint not found, skipping. Install with: go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest"; \ + fi + +# Run all checks (format, vet, lint) +check: fmt vet lint + @echo "All checks complete" + +# Build for multiple platforms +build-all: + @echo "Building for multiple platforms..." + @mkdir -p $(BUILD_DIR) + GOOS=linux GOARCH=amd64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-linux-amd64 run-hardfork-pipeline.go + GOOS=linux GOARCH=arm64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-linux-arm64 run-hardfork-pipeline.go + GOOS=darwin GOARCH=amd64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-darwin-amd64 run-hardfork-pipeline.go + GOOS=darwin GOARCH=arm64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-darwin-arm64 run-hardfork-pipeline.go + @echo "Build complete for all platforms" diff --git a/buildkite/scripts/pipeline/README.md b/buildkite/scripts/pipeline/README.md new file mode 100644 index 000000000000..84dbab983135 --- /dev/null +++ b/buildkite/scripts/pipeline/README.md @@ -0,0 +1,192 @@ +# Hardfork Pipeline Runner + +A robust Go-based tool for running and monitoring the hardfork package generation pipeline on Buildkite with custom environment variables. + +## Features + +- ✅ **Single binary** - No dependencies, just compile and run +- ✅ **Real-time monitoring** - Watch build progress with live updates +- ✅ **Color-coded output** - Easy to see job states at a glance +- ✅ **Duration tracking** - See how long each job runs +- ✅ **Signal handling** - Graceful shutdown with Ctrl+C +- ✅ **Exit codes** - Proper exit codes for CI/CD integration +- ✅ **Hardfork-specific** - Tailored for hardfork package generation with all required parameters + +## Building + +### Quick build: +```bash +cd buildkite/scripts/pipeline +make build +``` + +The binary will be created at `./bin/hardfork-runner` + +### Install system-wide: +```bash +make install +``` + +### Build for all platforms: +```bash +make build-all +``` + +## Usage + +### Set up API token: +```bash +export BUILDKITE_API_TOKEN="your_token_here" +``` + +### Basic usage (create build without monitoring): +```bash +./bin/hardfork-runner \ + --version "3.3.0-beta1-dkijania-do-not-rebuild-on-hf-pipeline-d62d701" \ + --codename "Noble" \ + --branch develop +``` + +### Create and monitor build: +```bash +./bin/hardfork-runner \ + --version "3.3.0-beta1-dkijania-do-not-rebuild-on-hf-pipeline-d62d701" \ + --codename "Noble" \ + --config-url "https://storage.googleapis.com/o1labs-gitops-infrastructure/pre-mesa/pre-mesa-1-hardfork-3NLwn2BxDnq6QZsj2XDaQ5joofJhvvCijk6brHYpuJfnh4yszsNz.gz" \ + --genesis-timestamp "2025-12-02T16:00:00Z" \ + --precomputed-prefix "gs://mesa-hf-precomputed-blocks/hetzner-pre-mesa-1" \ + --use-artifacts-from "019b038f-b7c9-4669-ae8e-97a120b23126" \ + --branch develop \ + --monitor \ + --poll-interval 10 +``` + +## Command-line Options + +| Flag | Description | Default | +|------|-------------|---------| +| `--version` | VERSION environment variable (required) | - | +| `--codename` | CODENAMES environment variable | Noble | +| `--config-url` | CONFIG_JSON_GZ_URL environment variable | - | +| `--genesis-timestamp` | GENESIS_TIMESTAMP environment variable | - | +| `--network` | NETWORK environment variable | Devnet | +| `--repo` | REPO environment variable | Nightly | +| `--precomputed-prefix` | PRECOMPUTED_FORK_BLOCK_PREFIX environment variable | - | +| `--use-artifacts-from` | USE_ARTIFACTS_FROM_BUILDKITE_BUILD environment variable | - | +| `--ledger-bucket` | MINA_LEDGER_S3_BUCKET environment variable | https://s3-us-west-2.amazonaws.com/snark-keys.o1test.net | +| `--branch` | Git branch to build | develop | +| `--pipeline` | Pipeline in format org/pipeline | minaprotocol/mina | +| `--message` | Build message | Custom pipeline run | +| `--monitor` | Monitor build progress in real-time | false | +| `--poll-interval` | Polling interval in seconds | 10 | +| `--show-all-updates` | Show all job states, not just changes | false | +| `--api-token` | Buildkite API token | $BUILDKITE_API_TOKEN | + +## Exit Codes + +- `0` - Build passed +- `1` - Build failed +- `2` - Build was canceled +- `3` - Build in unknown state +- `130` - Interrupted by user (Ctrl+C) + +## Sample Output + +``` +Creating build on branch 'develop'... +Environment variables: + CODENAMES: Noble + VERSION: 3.3.0-beta1-dkijania-do-not-rebuild-on-hf-pipeline-d62d701 + NETWORK: Devnet + REPO: Nightly + ... + +Build created successfully! +Build ID: abc-123-def-456 +Build Number: 12345 +URL: https://buildkite.com/minaprotocol/mina/builds/12345 + +================================================================================ +Monitoring build #12345 +================================================================================ + +14:23:45 [SCHEDULED] promote packages (not started) +14:23:50 [RUNNING] promote packages (5s) +14:25:30 [RUNNING] promote packages (1m 45s) +14:28:15 [PASSED] promote packages (4m 30s) + +================================================================================ +Build #12345 finished +================================================================================ +State: PASSED +Duration: 4m 30s +URL: https://buildkite.com/minaprotocol/mina/builds/12345 + +Job Summary: + [PASSED] promote packages (4m 30s) +================================================================================ +``` + +## Integration Examples + +### Use in CI/CD: +```bash +#!/bin/bash +set -e + +# Trigger build and monitor +./bin/hardfork-runner \ + --version "$VERSION" \ + --codename "Noble" \ + --monitor + +# Exit code will indicate success/failure +if [ $? -eq 0 ]; then + echo "Pipeline passed!" +else + echo "Pipeline failed!" + exit 1 +fi +``` + +### Use in scripts: +```bash +#!/bin/bash + +# Trigger without monitoring to get build number +BUILD_OUTPUT=$(./bin/hardfork-runner --version "1.0.0") +BUILD_NUMBER=$(echo "$BUILD_OUTPUT" | grep "Build Number:" | cut -d: -f2 | tr -d ' ') + +echo "Build #$BUILD_NUMBER started" + +# Do other work... + +# Monitor later +./bin/hardfork-runner --monitor --build-number $BUILD_NUMBER +``` + +## Advantages over Bash/Python + +1. **Single binary** - No Python/pip/venv needed, no bash version issues +2. **Fast** - Compiled Go is much faster than interpreted languages +3. **Type-safe** - Catch errors at compile time +4. **Concurrent** - Better concurrency support for future enhancements +5. **Cross-platform** - Easy to build for Linux, macOS, Windows +6. **No dependencies** - Only uses Go standard library + +## Development + +### Run without building: +```bash +go run run-hardfork-pipeline.go --version "1.0.0" --monitor +``` + +### Format code: +```bash +go fmt run-hardfork-pipeline.go +``` + +### Run tests: +```bash +make test +``` diff --git a/buildkite/scripts/pipeline/go.mod b/buildkite/scripts/pipeline/go.mod new file mode 100644 index 000000000000..27db9756eeb8 --- /dev/null +++ b/buildkite/scripts/pipeline/go.mod @@ -0,0 +1,38 @@ +module github.com/minaprotocol/mina/buildkite/scripts/pipeline + +go 1.19 + +require ( + cloud.google.com/go/storage v1.30.1 + github.com/buildkite/go-buildkite/v3 v3.11.0 + google.golang.org/api v0.126.0 +) + +require ( + cloud.google.com/go v0.110.0 // indirect + cloud.google.com/go/compute v1.19.3 // indirect + cloud.google.com/go/compute/metadata v0.2.3 // indirect + cloud.google.com/go/iam v0.13.0 // indirect + github.com/cenkalti/backoff v1.1.1-0.20171020064038-309aa717adbf // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-querystring v1.0.0 // indirect + github.com/google/s2a-go v0.1.4 // indirect + github.com/google/uuid v1.3.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect + github.com/googleapis/gax-go/v2 v2.10.0 // indirect + go.opencensus.io v0.24.0 // indirect + golang.org/x/crypto v0.14.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/oauth2 v0.8.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/text v0.13.0 // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect + google.golang.org/grpc v1.55.0 // indirect + google.golang.org/protobuf v1.30.0 // indirect +) diff --git a/buildkite/scripts/pipeline/go.sum b/buildkite/scripts/pipeline/go.sum new file mode 100644 index 000000000000..2333c3398b16 --- /dev/null +++ b/buildkite/scripts/pipeline/go.sum @@ -0,0 +1,210 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go/compute v1.19.3 h1:DcTwsFgGev/wV5+q8o2fzgcHOaac+DKGC91ZlvpsQds= +cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= +cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/buildkite/go-buildkite/v3 v3.11.0 h1:A43KDOuNczqrY8wqlsHNtPoYbgWXYC/slkB/2JYXr5E= +github.com/buildkite/go-buildkite/v3 v3.11.0/go.mod h1:TmZggyr5HqkOhNbTrcdOdmwuYbQqcfwr9MSyKyMQWAA= +github.com/cenkalti/backoff v1.1.1-0.20171020064038-309aa717adbf h1:yxlp0s+Sge9UsKEK0Bsvjiopb9XRk+vxylmZ9eGBfm8= +github.com/cenkalti/backoff v1.1.1-0.20171020064038-309aa717adbf/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= +github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/gax-go/v2 v2.10.0 h1:ebSgKfMxynOdxw8QQuFOKMgomqeLGPqNLQox2bo42zg= +github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc h1:8DyZCyvI8mE1IdLy/60bS+52xfymkE72wv1asokgtao= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc h1:kVKPf/IiYSBWEWtkIn6wZXwWGCnLKcC8oWfZvXjsGnM= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc h1:XSJ8Vk1SWuNr8S18z1NZSziL0CPIXLCCMDOEFtHBOFc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/buildkite/scripts/pipeline/run-hardfork-pipeline.go b/buildkite/scripts/pipeline/run-hardfork-pipeline.go new file mode 100644 index 000000000000..3b85432d6b82 --- /dev/null +++ b/buildkite/scripts/pipeline/run-hardfork-pipeline.go @@ -0,0 +1,468 @@ +// Hardfork Pipeline Runner +// +// A tool for running and monitoring the hardfork package generation pipeline +// on Buildkite with custom environment variables and real-time monitoring. +package main + +import ( + "context" + "flag" + "fmt" + "os" + "os/signal" + "sort" + "strings" + "syscall" + "time" + + "github.com/buildkite/go-buildkite/v3/buildkite" + + "cloud.google.com/go/storage" + "google.golang.org/api/iterator" + "google.golang.org/api/option" +) + +const ( + colorReset = "\033[0m" + colorRed = "\033[91m" + colorGreen = "\033[92m" + colorYellow = "\033[93m" + colorBlue = "\033[94m" + colorGray = "\033[90m" + + gcsPrefixGS = "gs://" + gcsPrefixHTTPS = "https://storage.googleapis.com/" +) + +// BuildkiteClient wraps the Buildkite SDK client with org/pipeline context +type BuildkiteClient struct { + client *buildkite.Client + org string + pipeline string +} + +// NewBuildkiteClient creates a new Buildkite API client using the SDK +func NewBuildkiteClient(apiToken, org, pipeline string) *BuildkiteClient { + config, _ := buildkite.NewTokenConfig(apiToken, false) + client := buildkite.NewClient(config.Client()) + + return &BuildkiteClient{ + client: client, + org: org, + pipeline: pipeline, + } +} + +// CreateBuild creates a new build using the SDK +func (c *BuildkiteClient) CreateBuild(branch string, env map[string]string, message string) (*buildkite.Build, error) { + create := &buildkite.CreateBuild{ + Commit: "HEAD", + Branch: branch, + Message: message, + Env: env, + } + + build, _, err := c.client.Builds.Create(c.org, c.pipeline, create) + if err != nil { + return nil, fmt.Errorf("failed to create build: %w", err) + } + + return build, nil +} + +// GetBuild retrieves build details using the SDK +func (c *BuildkiteClient) GetBuild(buildNumber int) (*buildkite.Build, error) { + build, _, err := c.client.Builds.Get(c.org, c.pipeline, fmt.Sprintf("%d", buildNumber), nil) + if err != nil { + return nil, fmt.Errorf("failed to get build: %w", err) + } + + return build, nil +} + +// BuildMonitor monitors build progress +type BuildMonitor struct { + client *BuildkiteClient + buildNumber int + previousStates map[string]string + showAllUpdates bool +} + +// NewBuildMonitor creates a new build monitor +func NewBuildMonitor(client *BuildkiteClient, buildNumber int, showAllUpdates bool) *BuildMonitor { + return &BuildMonitor{ + client: client, + buildNumber: buildNumber, + previousStates: make(map[string]string), + showAllUpdates: showAllUpdates, + } +} + +// colorize adds color to text based on state +func colorize(text, state string) string { + color := colorReset + switch state { + case "passed": + color = colorGreen + case "failed": + color = colorRed + case "running": + color = colorYellow + case "scheduled", "assigned": + color = colorBlue + case "canceled", "cancelled", "skipped": + color = colorGray + } + return color + text + colorReset +} + +// formatDuration formats a duration nicely +func formatDuration(started, finished *buildkite.Timestamp) string { + if started == nil { + return "not started" + } + + end := time.Now() + if finished != nil { + end = finished.Time + } + + duration := end.Sub(started.Time) + seconds := int(duration.Seconds()) + + if seconds < 60 { + return fmt.Sprintf("%ds", seconds) + } else if seconds < 3600 { + return fmt.Sprintf("%dm %ds", seconds/60, seconds%60) + } + hours := seconds / 3600 + minutes := (seconds % 3600) / 60 + return fmt.Sprintf("%dh %dm", hours, minutes) +} + +// getJobName returns the job name +func getJobName(job *buildkite.Job) string { + if job.Name != nil { + return *job.Name + } + return "Unknown" +} + +// printJobStatus prints the status of a job +func (m *BuildMonitor) printJobStatus(job *buildkite.Job) { + // Skip waiter jobs + if job.Type != nil && *job.Type == "waiter" { + return + } + + jobID := *job.ID + state := *job.State + previousState, exists := m.previousStates[jobID] + + // Only print if state changed or if showing all updates + if !m.showAllUpdates && exists && previousState == state { + return + } + + m.previousStates[jobID] = state + + name := getJobName(job) + duration := formatDuration(job.StartedAt, job.FinishedAt) + stateText := colorize(fmt.Sprintf("[%s]", strings.ToUpper(state)), state) + timestamp := time.Now().Format("15:04:05") + + fmt.Printf("%s %s %s (%s)\n", timestamp, stateText, name, duration) +} + +// Monitor monitors the build until completion +func (m *BuildMonitor) Monitor(pollInterval time.Duration) (string, error) { + fmt.Printf("\n%s\n", strings.Repeat("=", 80)) + fmt.Printf("Monitoring build #%d\n", m.buildNumber) + fmt.Printf("%s\n\n", strings.Repeat("=", 80)) + + // Set up signal handling for graceful shutdown + sigChan := make(chan os.Signal, 1) + signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM) + + ticker := time.NewTicker(pollInterval) + defer ticker.Stop() + + var build *buildkite.Build + var err error + + // Initial fetch + build, err = m.client.GetBuild(m.buildNumber) + if err != nil { + return "", fmt.Errorf("failed to fetch build: %w", err) + } + + for !isFinalState(*build.State) { + select { + case <-sigChan: + fmt.Println("\n\nMonitoring interrupted by user") + return *build.State, nil + case <-ticker.C: + build, err = m.client.GetBuild(m.buildNumber) + if err != nil { + fmt.Fprintf(os.Stderr, "Error fetching build: %v\n", err) + continue + } + + // Print job statuses + for _, job := range build.Jobs { + m.printJobStatus(job) + } + } + } + + // Final fetch to ensure we have the latest state + build, err = m.client.GetBuild(m.buildNumber) + if err != nil { + return "", fmt.Errorf("failed to fetch final build state: %w", err) + } + + // Print all jobs one final time + for _, job := range build.Jobs { + m.printJobStatus(job) + } + + m.printSummary(build) + return *build.State, nil +} + +// isFinalState checks if the build state is final +func isFinalState(state string) bool { + return state == "passed" || state == "failed" || state == "canceled" || state == "cancelled" +} + +// printSummary prints the final build summary +func (m *BuildMonitor) printSummary(build *buildkite.Build) { + fmt.Printf("\n%s\n", strings.Repeat("=", 80)) + fmt.Printf("Build #%d finished\n", m.buildNumber) + fmt.Printf("%s\n", strings.Repeat("=", 80)) + fmt.Printf("State: %s\n", colorize(strings.ToUpper(*build.State), *build.State)) + fmt.Printf("Duration: %s\n", formatDuration(build.CreatedAt, build.FinishedAt)) + fmt.Printf("URL: %s\n", *build.WebURL) + + // Job summary + nonWaiterJobs := make([]*buildkite.Job, 0) + for _, job := range build.Jobs { + if job.Type != nil && *job.Type != "waiter" { + nonWaiterJobs = append(nonWaiterJobs, job) + } + } + + if len(nonWaiterJobs) > 0 { + fmt.Println("\nJob Summary:") + for _, job := range nonWaiterJobs { + name := getJobName(job) + duration := formatDuration(job.StartedAt, job.FinishedAt) + stateText := colorize(fmt.Sprintf("[%s]", strings.ToUpper(*job.State)), *job.State) + fmt.Printf(" %s %s (%s)\n", stateText, name, duration) + } + } + + fmt.Printf("%s\n\n", strings.Repeat("=", 80)) +} + +func main() { + // Command-line flags + var ( + branch = flag.String("branch", getEnvOrDefault("BUILDKITE_BRANCH", "develop"), "Git branch to build") + org = flag.String("org", "o-1-labs-2", "Buildkite organization") + pipeline = flag.String("pipeline", "hardfork-package-generation-new", "Buildkite pipeline name") + message = flag.String("message", "Custom pipeline run", "Build message") + version = flag.String("version", "", "VERSION environment variable") + codename = flag.String("codename", "Noble", "CODENAMES environment variable") + configURL = flag.String("config-url", "", "CONFIG_JSON_GZ_URL environment variable (full path)") + configURLPrefix = flag.String("latest-config-from-prefix", "", "GCS URL prefix to find latest config .gz file (alternative to --config-url)") + genesisTimestamp = flag.String("genesis-timestamp", "", "GENESIS_TIMESTAMP environment variable") + network = flag.String("network", "Devnet", "NETWORK environment variable") + repo = flag.String("repo", "Nightly", "REPO environment variable") + precomputedPrefix = flag.String("precomputed-prefix", "", "PRECOMPUTED_FORK_BLOCK_PREFIX environment variable") + useArtifactsFrom = flag.String("use-artifacts-from", "", "USE_ARTIFACTS_FROM_BUILDKITE_BUILD environment variable") + ledgerBucket = flag.String("ledger-bucket", "https://s3-us-west-2.amazonaws.com/snark-keys.o1test.net", "MINA_LEDGER_S3_BUCKET environment variable") + monitor = flag.Bool("monitor", false, "Monitor build progress in real-time") + pollInterval = flag.Int("poll-interval", 10, "Polling interval in seconds") + showAllUpdates = flag.Bool("show-all-updates", false, "Show all job states, not just changes") + apiToken = flag.String("api-token", os.Getenv("BUILDKITE_API_TOKEN"), "Buildkite API token") + ) + + flag.Parse() + + // Validate required flags + if *apiToken == "" { + fmt.Fprintln(os.Stderr, "Error: BUILDKITE_API_TOKEN is required") + fmt.Fprintln(os.Stderr, "Set it with: export BUILDKITE_API_TOKEN=your_token") + os.Exit(1) + } + + // Create client + client := NewBuildkiteClient(*apiToken, *org, *pipeline) + fmt.Printf("Using Buildkite: %s/%s\n", *org, *pipeline) + fmt.Printf("API URL: https://api.buildkite.com/v2/organizations/%s/pipelines/%s/builds\n\n", *org, *pipeline) + + // Resolve config URL - either use explicit URL or find latest from prefix + resolvedConfigURL := *configURL + if *configURLPrefix != "" { + if *configURL != "" { + fmt.Fprintln(os.Stderr, "Warning: Both --config-url and --latest-config-from-prefix provided, using --latest-config-from-prefix") + } + + ctx := context.Background() + latestURL, err := findLatestConfigFromGCS(ctx, *configURLPrefix) + if err != nil { + fmt.Fprintf(os.Stderr, "Error finding latest config: %v\n", err) + os.Exit(1) + } + resolvedConfigURL = latestURL + fmt.Printf("Using config URL: %s\n\n", resolvedConfigURL) + } + + // Prepare environment variables + env := map[string]string{ + "CODENAMES": *codename, + "NETWORK": *network, + "REPO": *repo, + "GIT_LFS_SKIP_SMUDGE": "1", + "MINA_LEDGER_S3_BUCKET": *ledgerBucket, + } + + if *version != "" { + env["VERSION"] = *version + } + if resolvedConfigURL != "" { + env["CONFIG_JSON_GZ_URL"] = resolvedConfigURL + } + if *genesisTimestamp != "" { + env["GENESIS_TIMESTAMP"] = *genesisTimestamp + } + if *precomputedPrefix != "" { + env["PRECOMPUTED_FORK_BLOCK_PREFIX"] = *precomputedPrefix + } + if *useArtifactsFrom != "" { + env["USE_ARTIFACTS_FROM_BUILDKITE_BUILD"] = *useArtifactsFrom + } + + // Print configuration + fmt.Printf("Creating build on branch '%s'...\n", *branch) + fmt.Println("Environment variables:") + for key, value := range env { + fmt.Printf(" %s: %s\n", key, value) + } + fmt.Println() + + // Create build + build, err := client.CreateBuild(*branch, env, *message) + if err != nil { + fmt.Fprintf(os.Stderr, "Error creating build: %v\n", err) + os.Exit(1) + } + + fmt.Println("Build created successfully!") + fmt.Printf("Build ID: %s\n", *build.ID) + fmt.Printf("Build Number: %d\n", *build.Number) + fmt.Printf("URL: %s\n", *build.WebURL) + + // Monitor if requested + if *monitor { + buildMonitor := NewBuildMonitor(client, *build.Number, *showAllUpdates) + finalState, err := buildMonitor.Monitor(time.Duration(*pollInterval) * time.Second) + if err != nil { + fmt.Fprintf(os.Stderr, "Error monitoring build: %v\n", err) + os.Exit(1) + } + + // Exit with appropriate code + switch finalState { + case "passed": + os.Exit(0) + case "failed": + os.Exit(1) + case "canceled", "cancelled": + os.Exit(2) + default: + os.Exit(3) + } + } +} + +// getEnvOrDefault returns environment variable value or default +func getEnvOrDefault(key, defaultValue string) string { + if value := os.Getenv(key); value != "" { + return value + } + return defaultValue +} + +// findLatestConfigFromGCS finds the latest .gz file with the given GCS URL prefix +// Expected format: gs://bucket/path/prefix or https://storage.googleapis.com/bucket/path/prefix +func findLatestConfigFromGCS(ctx context.Context, urlPrefix string) (string, error) { + // Parse the URL to extract bucket and prefix + var bucketName, objectPrefix string + + if strings.HasPrefix(urlPrefix, gcsPrefixGS) { + // Handle gs:// URLs + parts := strings.SplitN(strings.TrimPrefix(urlPrefix, gcsPrefixGS), "/", 2) + bucketName = parts[0] + if len(parts) > 1 { + objectPrefix = parts[1] + } + } else if strings.HasPrefix(urlPrefix, gcsPrefixHTTPS) { + // Handle https://storage.googleapis.com URLs + parts := strings.SplitN(strings.TrimPrefix(urlPrefix, gcsPrefixHTTPS), "/", 2) + bucketName = parts[0] + if len(parts) > 1 { + objectPrefix = parts[1] + } + } else { + return "", fmt.Errorf("invalid GCS URL format, expected %s or %s", gcsPrefixGS, gcsPrefixHTTPS) + } + + fmt.Printf("Searching for latest config in bucket '%s' with prefix '%s'...\n", bucketName, objectPrefix) + + // Create GCS client - try unauthenticated first for public buckets + client, err := storage.NewClient(ctx, option.WithoutAuthentication()) + if err != nil { + return "", fmt.Errorf("failed to create GCS client: %w", err) + } + defer client.Close() + + // List objects with the prefix + bucket := client.Bucket(bucketName) + query := &storage.Query{ + Prefix: objectPrefix, + } + + var objects []*storage.ObjectAttrs + it := bucket.Objects(ctx, query) + for { + attrs, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + return "", fmt.Errorf("failed to list objects: %w", err) + } + + // Only include .gz files + if strings.HasSuffix(attrs.Name, ".gz") { + objects = append(objects, attrs) + } + } + + if len(objects) == 0 { + return "", fmt.Errorf("no .gz files found with prefix '%s'", objectPrefix) + } + + // Sort by name (descending) - assumes lexicographic ordering gives us latest + sort.Slice(objects, func(i, j int) bool { + return objects[i].Name > objects[j].Name + }) + + latestObject := objects[0] + latestURL := fmt.Sprintf("https://storage.googleapis.com/%s/%s", bucketName, latestObject.Name) + + fmt.Printf("Found latest config: %s (updated: %s)\n", latestObject.Name, latestObject.Updated.Format(time.RFC3339)) + return latestURL, nil +} diff --git a/buildkite/scripts/pipeline/run_for_newest_devnet.sh b/buildkite/scripts/pipeline/run_for_newest_devnet.sh new file mode 100755 index 000000000000..d1da0248cea9 --- /dev/null +++ b/buildkite/scripts/pipeline/run_for_newest_devnet.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +if [[ -z "$BUILDKITE_AGENT_WRITE_TOKEN" ]]; then + echo "BUILDKITE_AGENT_WRITE_TOKEN is not set" + exit 1 +fi + +FORKING_BRANCH=$BUILDKITE_BRANCH +PREFIX="https://storage.googleapis.com/o1labs-gitops-infrastructure/devnet/devnet" + +export BUILDKITE_API_TOKEN=$BUILDKITE_AGENT_WRITE_TOKEN + +cd ./buildkite/scripts/pipeline || exit + +make build + +./bin/hardfork-runner \ + -latest-config-from-prefix ${PREFIX} \ + -monitor \ + -branch ${FORKING_BRANCH} diff --git a/buildkite/scripts/pipeline/upload.sh b/buildkite/scripts/pipeline/upload.sh new file mode 100755 index 000000000000..2799fbdfd58e --- /dev/null +++ b/buildkite/scripts/pipeline/upload.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +set -euo pipefail + +input="" +if [[ $# -gt 0 ]]; then + input="$1" +elif [[ ! -t 0 ]]; then + input="$(cat)" +else + echo "Error: expected Dhall input via arg or stdin." >&2 + exit 2 +fi + +# Generate YAML from Dhall +if output=$(dhall-to-yaml --quoted <<< "$input"); then + : +else + dhall_status=$? + echo "Error: dhall-to-yaml failed with exit code $dhall_status" >&2 + exit "$dhall_status" +fi + +if [[ -z "$output" ]]; then + echo "Error: dhall-to-yaml produced no output." >&2 + exit 1 +fi + +# Check for errors in output +if echo "$output" | grep -q "NoResponseDataReceived"; then + echo "Error: NoResponseDataReceived detected in dhall-to-yaml output." >&2 + exit 1 +fi + + +# Upload to buildkite-agent if no error +buildkite-agent pipeline upload <<< "$output" diff --git a/buildkite/scripts/profile-dependent-tests.sh b/buildkite/scripts/profile-dependent-tests.sh new file mode 100755 index 000000000000..04ea6c13d89e --- /dev/null +++ b/buildkite/scripts/profile-dependent-tests.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -eo pipefail + +if [[ $# -ne 1 ]]; then + echo "Usage: $0 " + exit 1 +fi + +export DUNE_PROFILE=$1 + +# shellcheck disable=SC1090 +source ~/.profile + +echo "--- Rebuild node_config with profile ${DUNE_PROFILE}" +# Force rebuild of node_config to ensure correct profile is used. +# This avoids full recompilation - only node_config and its dependents +# are rebuilt. +time dune build --force src/lib/node_config + +echo "--- Run profile-dependent tests" +# Tests that have expected values varying by profile (dev, devnet, lightnet, mainnet). +# NOTE: Only running specific test directories because some tests in src/lib +# still need to be updated for profile-based expected values. +# Tests are ordered alphabetically. +time dune runtest \ + src/lib/blockchain_snark/tests \ + src/lib/transaction_snark/test/constraint_count \ + src/lib/transaction_snark/test/print_transaction_snark_vk diff --git a/buildkite/scripts/release/manager.sh b/buildkite/scripts/release/manager.sh index 30f6eb5a3816..65ffd0422844 100755 --- a/buildkite/scripts/release/manager.sh +++ b/buildkite/scripts/release/manager.sh @@ -53,6 +53,8 @@ DEFAULT_PROFILE=devnet DEBIAN_CACHE_FOLDER=${DEBIAN_CACHE_FOLDER:-~/.release/debian/cache} DEFAULT_DOCKER_REPO="gcr.io/o1labs-192920" +GCR_REPO=$DEFAULT_DOCKER_REPO +DOCKER_IO_REPO="minaprotocol" DEBIAN_REPO=packages.o1test.net SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" @@ -72,6 +74,14 @@ function check_docker() { check_app "docker" } +function check_aws() { + check_app "aws" +} + +function check_debs3() { + check_app "deb-s3" +} + function check_app() { if ! command -v $1 &> /dev/null; then echo -e "❌ ${RED} !! $1 program not found. Please install program to proceed. ${CLEAR}\n"; @@ -99,6 +109,15 @@ function prefix_cmd { "${CMD[@]}" 1> >(sed "s/^/${PREF}/") 2> >(sed "s/^/${PREF}/" 1>&2) } +# Extract bucket name from potentially full S3 URL +# Input: s3.us-west-2.amazonaws.com/bucket-name or just bucket-name +# Output: bucket-name +function extract_bucket_name() { + local __repo=$1 + # Strip s3 prefix patterns like "s3.us-west-2.amazonaws.com/" or "s3.amazonaws.com/" + echo "$__repo" | sed -E 's|^s3(\.[^/]+)?\.amazonaws\.com/||' +} + function main_help(){ echo Publish/Promote mina build artifact. echo Script can publish build based on buildkite build id to debian repository and docker registry. @@ -326,10 +345,10 @@ function storage_upload() { case $backend in local) - cp "$local_path" "$remote_path" + cp $local_path "$remote_path" ;; gs) - gsutil cp "$local_path" "$remote_path" + gsutil cp $local_path "$remote_path" ;; hetzner) rsync -avz -e "ssh -p 23 -i $HETZNER_KEY" $local_path "$HETZNER_USER@$HETZNER_HOST:$remote_path" @@ -415,6 +434,7 @@ function publish_debian() { local __force_upload_debians=${13:-0} local __debian_sign_key=${14} local __new_artifact_name=${15:-""} + local __skip_cache_invalidation=${SKIP_CACHE_INVALIDATION:-0} get_cached_debian_or_download $__backend $__artifact $__codename "$__network" "$__arch" "$__profile" local __artifact_full_name @@ -456,6 +476,7 @@ function publish_debian() { --bucket $__debian_repo \ $(if [[ $__force_upload_debians == 1 ]]; then echo "--force"; fi) \ -c $__codename \ + $(if [[ $__skip_cache_invalidation == 1 ]]; then echo "--skip-cache-invalidation"; fi) \ -r $__channel \ --arch $__arch \ ${__sign_arg[@]} @@ -541,6 +562,7 @@ function promote_debian() { local __debian_repo=${10} local __arch=${11} local __debian_sign_key=${12} + local __skip_cache_invalidation=${SKIP_CACHE_INVALIDATION:-0} if [[ $__debian_sign_key != "" ]]; then local __sign_arg=("--sign" "$__debian_sign_key") @@ -556,18 +578,31 @@ function promote_debian() { local __artifact_full_name __artifact_full_name=$(get_artifact_with_suffix $__artifact $__network) + local __new_artifact_name=$__artifact_full_name + local __deb=$DEBIAN_CACHE_FOLDER/$__codename/"${__artifact_full_name}" if [[ $__dry_run == 0 ]]; then echo " 🗃️ Promoting $__artifact debian from $__codename/$__source_version to $__codename/$__target_version" + local __debian_bucket + __debian_bucket=$(extract_bucket_name "$__debian_repo") + + + + # shellcheck disable=SC2068,SC2046 prefix_cmd "$SUBCOMMAND_TAB" $SCRIPTPATH/../../../scripts/debian/reversion.sh \ --deb ${__artifact_full_name} \ --version ${__source_version} \ --new-version ${__target_version} \ --suite ${__source_channel} \ - --repo ${__debian_repo} \ + --repo ${__debian_bucket} \ + --arch ${__arch} \ + --codename ${__codename} \ --new-suite ${__target_channel} \ - --new-name ${__new_artifact_name} + --new-name ${__new_artifact_name} \ + $(if [[ $__skip_cache_invalidation == 1 ]]; then echo "--skip-cache-invalidation"; fi) \ + --codename ${__codename} + if [[ $__verify == 1 ]]; then echo " 📋 Verifying: $__artifact debian to $__target_channel channel with $__target_version version" @@ -737,6 +772,10 @@ function publish(){ __profile=${2:?$error_message} shift 2; ;; + --skip-cache-invalidation ) + export SKIP_CACHE_INVALIDATION=1 + shift 1; + ;; * ) echo -e "❌ ${RED} !! Unknown option: $1${CLEAR}\n"; echo ""; @@ -786,6 +825,7 @@ function publish(){ echo " - Architectures: $__archs" echo " - Profile: $__profile" echo " - Force upload debians: $__force_upload_debians" + echo " - Skip cache invalidation: ${SKIP_CACHE_INVALIDATION:-0}" echo "" if [[ $__backend != "gs" && $__backend != "hetzner" && $__backend != "local" ]]; then @@ -804,7 +844,11 @@ function publish(){ fi fi - + # Only require aws and deb-s3 if we are dealing with debians + if [[ $__only_dockers == 0 ]]; then + check_aws + check_debs3 + fi if [[ $__verify == 1 ]]; then check_docker @@ -840,6 +884,7 @@ function publish(){ "$__arch" \ "$__force_upload_debians" \ "$__debian_sign_key" + fi if [[ $__only_debians == 0 ]]; then @@ -985,6 +1030,7 @@ function promote(){ fi local __artifacts="$DEFAULT_ARTIFACTS" + local __backend="local" local __networks="$DEFAULT_NETWORKS" local __source_version local __target_version @@ -1002,7 +1048,7 @@ function promote(){ local __debian_sign_key="" local __arch="$DEFAULT_ARCHITECTURES" local __profile="$DEFAULT_PROFILE" - + local __force_upload_debians=0 while [ ${#} -gt 0 ]; do error_message="❌ Error: a value is needed for '$1'"; @@ -1014,6 +1060,10 @@ function promote(){ __artifacts=${2:?$error_message} shift 2; ;; + --backend ) + __backend=${2:?$error_message} + shift 2; + ;; --networks ) __networks=${2:?$error_message} shift 2; @@ -1078,10 +1128,18 @@ function promote(){ __arch=${2:?$error_message} shift 2; ;; + --force-upload-debians ) + __force_upload_debians=1 + shift 1; + ;; --profile ) __profile=${2:?$error_message} shift 2; ;; + --skip-cache-invalidation ) + export SKIP_CACHE_INVALIDATION=1 + shift 1; + ;; * ) echo -e "${RED} !! Unknown option: $1${CLEAR}\n"; echo ""; @@ -1134,20 +1192,43 @@ function promote(){ echo " - Only dockers: $__only_dockers" echo " - Only debians: $__only_debians" echo " - Verify: $__verify" - echo " - Architecture: $__arch" echo " - Dry run: $__dry_run" + echo " - Backend: $__backend" + echo " - Debian repo: $__debian_repo" + echo " - Debian sign key: $__debian_sign_key" echo " - Strip network from archive: $__strip_network_from_archive" + echo " - Architectures: $__arch" + echo " - Profile: $__profile" + echo " - Force upload debians: $__force_upload_debians" + echo " - Skip cache invalidation: ${SKIP_CACHE_INVALIDATION:-0}" echo "" - #check environment setup - if [[ $__verify == 1 ]]; then - check_docker + + + if [[ $__backend != "gs" && $__backend != "hetzner" && $__backend != "local" ]]; then + echo -e "❌ ${RED} !! Backend (--backend) can be only gs, hetzner or local ${CLEAR}\n"; + promote_help; exit 1; fi - if [[ $__source_version == "$__target_version" ]]; then - echo " ⚠️ Warning: Source version and target version are the same. - Script will do promotion but it won't have an effect at the end unless you are publishing dockers..." - echo "" + if [[ $__backend == "gs" ]]; then + #check environment setup + check_gsutil + elif [[ $__backend == "local" ]]; then + #check root folder is writable + if [[ ! -r $(storage_root "$__backend") ]]; then + echo -e "❌ ${RED} !! Local backend root folder $(storage_root "$__backend") is not readable. Please check it exists and is accessible ${CLEAR}\n"; + exit 1 + fi + fi + + # Only require deb-s3 and aws if we are dealing with debians + if [[ $__only_dockers == 0 ]]; then + check_aws + check_debs3 + fi + + if [[ $__verify == 1 ]]; then + check_docker fi IFS=', ' @@ -1195,8 +1276,7 @@ function promote(){ $__dry_run \ $__debian_repo \ "$__arch" \ - $__debian_sign_key \ - $new_name + $__debian_sign_key fi if [[ $__only_debians == 0 ]]; then @@ -1219,7 +1299,6 @@ function promote(){ $__debian_repo \ "$__arch" \ $__debian_sign_key - fi if [[ $__only_debians == 0 ]]; then @@ -1241,7 +1320,7 @@ function promote(){ $__dry_run \ $__debian_repo \ "$__arch" \ - $__debian_sign_key + "$__debian_sign_key" fi if [[ $__only_debians == 0 ]]; then @@ -1424,6 +1503,12 @@ function verify(){ echo " - Build flag: $__build_flag" echo "" + # Only require deb-s3 and aws if we are dealing with debians + if [[ $__only_dockers == 0 ]]; then + check_aws + check_debs3 + fi + #check environment setup if [[ $__only_debians == 0 ]]; then check_docker @@ -1469,7 +1554,9 @@ function verify(){ __docker_suffix_combined=$(combine_docker_suffixes "$network" "$__profile" "$__build_flag") if [[ $__only_dockers == 0 ]]; then - echo " 📋 Verifying: $artifact debian on $__channel channel with $__version version for $__codename codename" + + echo " 📋 Verifying: $__artifact_full_name debian on $__channel channel with $__version version for $__codename codename" + echo "" prefix_cmd "$SUBCOMMAND_TAB" $SCRIPTPATH/../../../scripts/debian/verify.sh \ -p $__artifact_full_name \ @@ -1477,7 +1564,7 @@ function verify(){ -m $__codename \ -r $__debian_repo \ -c $__channel \ - -a $__arch \ + -a "$__arch" \ ${__signed_debian_repo:+--signed} echo "" @@ -1486,6 +1573,7 @@ function verify(){ if [[ $__only_debians == 0 ]]; then echo " 📋 Verifying: $artifact docker on $(calculate_docker_tag "$__docker_repo" $artifact $__version $__codename "$network" "$__arch")" + echo "" prefix_cmd "$SUBCOMMAND_TAB" $SCRIPTPATH/../../../scripts/docker/verify.sh \ -p "$artifact" \ @@ -1689,12 +1777,12 @@ function persist_help(){ printf " %-25s %s\n" "--arch" "[string] target architecture. Default: $DEFAULT_ARCHITECTURES"; printf " %-25s %s\n" "--backend" "[string] backend to persist artifacts. e.g gs,hetzner"; printf " %-25s %s\n" "--artifacts" "[comma separated list] list of artifacts to persist. e.g mina-logproc,mina-archive,mina-rosetta"; - printf " %-25s %s\n" "--build_id" "[string] buildkite build id to persist artifacts"; + printf " %-25s %s\n" "--buildkite-build-id" "[string] buildkite build id to persist artifacts"; printf " %-25s %s\n" "--target" "[string] target location to persist artifacts"; echo "" echo "Example:" echo "" - echo " " $CLI_NAME persist --backend gs --artifacts mina-logproc,mina-archive,mina-rosetta --build_id 123 --target /debians_legacy + echo " " $CLI_NAME persist --backend gs --artifacts mina-logproc,mina-archive,mina-rosetta --buildkite-build-id 123 --target /debians_legacy echo "" echo " Above command will persist mina-logproc,mina-archive,mina-rosetta artifacts to {backend root}/debians_legacy" echo "" diff --git a/buildkite/scripts/run-single-job-with-deps.sh b/buildkite/scripts/run-single-job-with-deps.sh new file mode 100755 index 000000000000..ed5258bdd644 --- /dev/null +++ b/buildkite/scripts/run-single-job-with-deps.sh @@ -0,0 +1,228 @@ +#!/usr/bin/env bash + +# Run a single Buildkite job plus its dependency chain. This script handles !ci-single-me {job} +# You can use it to run a specific job and all its prerequisites in the correct order. +# IMPORTANT: This script assumes that the job pipelines have already been generated +# (e.g. via dhall) and are available in the specified --jobs directory. +# In order to get job name visit dhall file in buildkite/src/Jobs and look for spec.name field. +# Flow: +# - Reads generated job pipeline YAMLs in --jobs. +# - Resolves the requested job by name (case-insensitive). +# - Walks step dependencies to find prerequisite jobs. +# - Orders jobs topologically and uploads each pipeline. + +set -euo pipefail + +show_help() { + cat << EOF +Usage: $(basename "$0") --job-name NAME --jobs DIR [--debug] [--dry-run] + +Options: + --job-name STRING Name of the job to run + --jobs PATH Path to generated job pipelines (e.g. buildkite/src/gen) + --debug Enable debug output + --dry-run Print jobs to run without uploading + -h, --help Show this help message +EOF +} + +JOB_NAME="" +JOBS_DIR="" +DEBUG=false +DRY_RUN=false + +# Parse CLI args. +while [[ $# -gt 0 ]]; do + case "$1" in + --job-name) + JOB_NAME="$2"; shift 2;; + --jobs) + JOBS_DIR="$2"; shift 2;; + --debug) + DEBUG=true; shift;; + --dry-run) + DRY_RUN=true; shift;; + -h|--help) + show_help; exit 0;; + *) + echo "Unknown option: $1" >&2 + show_help; exit 1;; + esac +done + +# Basic input validation. +if [[ -z "$JOB_NAME" || -z "$JOBS_DIR" ]]; then + echo "Error: --job-name and --jobs are required." >&2 + show_help + exit 1 +fi + +if [[ ! -d "$JOBS_DIR" ]]; then + echo "Error: jobs directory not found: $JOBS_DIR" >&2 + exit 1 +fi + +# Optional debug logging. +if [[ "$DEBUG" == true ]]; then + echo "Debug: JOB_NAME=$JOB_NAME" + echo "Debug: JOBS_DIR=$JOBS_DIR" + echo "Debug: DRY_RUN=$DRY_RUN" +fi + +# Lowercase helper for case-insensitive comparisons +to_lower() { + printf '%s' "$1" | tr '[:upper:]' '[:lower:]' +} + +# Ensure yq is available for YAML parsing. +# Check if yq is installed, if not install it +if ! command -v yq &> /dev/null; then + echo "yq not found, installing..." + if command -v apt-get &> /dev/null; then + sudo apt-get update && sudo apt-get install -y wget + sudo wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + else + echo "Error: yq is not installed and automatic installation is not supported on this system. Please install yq manually." + exit 1 + fi +fi + +# Index job files by name and map step keys to job names. +declare -A step_key_to_job +declare -A job_file_by_name +declare -A job_display_by_name + +mapfile -t job_files < <(find "$JOBS_DIR" -type f -name "*.yml" | sort) + +if [[ ${#job_files[@]} -eq 0 ]]; then + echo "Error: no job pipeline files found in $JOBS_DIR" >&2 + exit 1 +fi + +for file in "${job_files[@]}"; do + job_name=$(yq -r '.spec.name' "$file") + if [[ -z "$job_name" || "$job_name" == "null" ]]; then + job_name=$(basename "$file") + job_name="${job_name%.yml}" + fi + + job_name_key=$(to_lower "$job_name") + if [[ -n "${job_file_by_name[$job_name_key]-}" && "${job_display_by_name[$job_name_key]}" != "$job_name" ]]; then + echo "Error: job name collision (case-insensitive): '${job_display_by_name[$job_name_key]}' and '$job_name'." >&2 + exit 1 + fi + job_file_by_name["$job_name_key"]="$file" + job_display_by_name["$job_name_key"]="$job_name" + + while IFS= read -r step_key; do + [[ -z "$step_key" || "$step_key" == "null" ]] && continue + if [[ -n "${step_key_to_job[$step_key]-}" && "${step_key_to_job[$step_key]}" != "$job_name_key" ]]; then + echo "Warning: duplicate step key '$step_key' in $file (already mapped to ${job_display_by_name[${step_key_to_job[$step_key]}]})." >&2 + fi + step_key_to_job["$step_key"]="$job_name_key" + done < <(yq -r '.pipeline.steps[].key' "$file") +done + +# Resolve the requested job name. +job_name_key=$(to_lower "$JOB_NAME") +if [[ -z "${job_file_by_name[$job_name_key]-}" ]]; then + candidate="$JOBS_DIR/$JOB_NAME.yml" + if [[ -f "$candidate" ]]; then + resolved_name=$(yq -r '.spec.name' "$candidate") + if [[ -n "$resolved_name" && "$resolved_name" != "null" ]]; then + job_name_key=$(to_lower "$resolved_name") + JOB_NAME="$resolved_name" + else + base_name=$(basename "$candidate") + base_name="${base_name%.yml}" + job_name_key=$(to_lower "$base_name") + JOB_NAME="$base_name" + fi + fi +fi + +if [[ -z "${job_file_by_name[$job_name_key]-}" ]]; then + echo "Error: job '$JOB_NAME' not found in $JOBS_DIR" >&2 + exit 1 +fi + +# Extract dependency step keys from a pipeline file. +list_dep_steps() { + local file="$1" + yq -r '.pipeline.steps[].depends_on[]? | select(type == "object") | .step' "$file" + yq -r '.pipeline.steps[].depends_on[]? | select(type == "string")' "$file" +} + +# Map dependency step keys to job names and return unique deps. +get_job_deps() { + local job="$1" + local file="${job_file_by_name[$job]}" + declare -A seen=() + + while IFS= read -r dep_step; do + [[ -z "$dep_step" || "$dep_step" == "null" ]] && continue + dep_job="${step_key_to_job[$dep_step]-}" + if [[ -z "$dep_job" ]]; then + echo "Error: dependency step '$dep_step' referenced by job '${job_display_by_name[$job]}' not found in $JOBS_DIR." >&2 + exit 1 + fi + if [[ "$dep_job" == "$job" ]]; then + continue + fi + if [[ -z "${seen[$dep_job]-}" ]]; then + seen["$dep_job"]=1 + echo "$dep_job" + fi + done < <(list_dep_steps "$file") +} + +# Depth-first walk for topological ordering with cycle detection. +declare -A temp_mark +declare -A perm_mark +declare -a ordered_jobs + +visit_job() { + local job="$1" + if [[ -n "${perm_mark[$job]-}" ]]; then + return + fi + if [[ -n "${temp_mark[$job]-}" ]]; then + echo "Error: circular dependency detected at job '$job'." >&2 + exit 1 + fi + + temp_mark["$job"]=1 + + while IFS= read -r dep; do + [[ -z "$dep" ]] && continue + if [[ -z "${job_file_by_name[$dep]-}" ]]; then + echo "Error: dependency job '${job_display_by_name[$dep]-$dep}' not found in $JOBS_DIR" >&2 + exit 1 + fi + visit_job "$dep" + done < <(get_job_deps "$job") + + perm_mark["$job"]=1 + ordered_jobs+=("$job") +} + +visit_job "$job_name_key" + +if [[ "$DEBUG" == true ]]; then + echo "Debug: upload order: ${ordered_jobs[*]}" +fi + +# Upload pipelines in dependency order (or print in dry-run). +for job in "${ordered_jobs[@]}"; do + file="${job_file_by_name[$job]}" + display_name="${job_display_by_name[$job]}" + if [[ "$DRY_RUN" == true ]]; then + echo "Dry run: would upload job '$display_name' from $file" + continue + fi + if [[ "$DEBUG" == true ]]; then + echo "Uploading job '$display_name' from $file" + fi + yq '.pipeline' "$file" | buildkite-agent pipeline upload +done diff --git a/buildkite/scripts/run-test-executive-local.sh b/buildkite/scripts/run-test-executive-local.sh index 081524beb0a3..abc521ca3892 100755 --- a/buildkite/scripts/run-test-executive-local.sh +++ b/buildkite/scripts/run-test-executive-local.sh @@ -30,8 +30,8 @@ MINA_DOCKER_NAME="mina-daemon" MINA_ARCHIVE_DOCKER_NAME="mina-archive" -MINA_IMAGE="$DOCKER_REPO/$MINA_DOCKER_NAME:$MINA_DOCKER_TAG-berkeley" -ARCHIVE_IMAGE="$DOCKER_REPO/$MINA_ARCHIVE_DOCKER_NAME:$MINA_DOCKER_TAG-berkeley" +MINA_IMAGE="$DOCKER_REPO/$MINA_DOCKER_NAME:$MINA_DOCKER_TAG-testnet-generic" +ARCHIVE_IMAGE="$DOCKER_REPO/$MINA_ARCHIVE_DOCKER_NAME:$MINA_DOCKER_TAG-testnet-generic" if [[ "${TEST_NAME:0:15}" == "block-prod-prio" ]] && [[ "$RUN_OPT_TESTS" == "" ]]; then echo "Skipping $TEST_NAME" diff --git a/buildkite/scripts/single-node-tests.sh b/buildkite/scripts/single-node-tests.sh index 1244fce97e6c..84c9ff8e1358 100755 --- a/buildkite/scripts/single-node-tests.sh +++ b/buildkite/scripts/single-node-tests.sh @@ -2,16 +2,11 @@ set -eo pipefail -# Don't prompt for answers during apt-get install -export DEBIAN_FRONTEND=noninteractive - git config --global --add safe.directory /workdir source buildkite/scripts/export-git-env-vars.sh -source buildkite/scripts/debian/update.sh --verbose - -source buildkite/scripts/debian/install.sh "mina-test-suite,mina-berkeley-lightnet" 1 +source buildkite/scripts/debian/install.sh "mina-test-suite,mina-testnet-generic-lightnet" 1 export MINA_LIBP2P_PASS="naughty blue worm" export MINA_PRIVKEY_PASS="naughty blue worm" diff --git a/buildkite/scripts/test-chain-id.sh b/buildkite/scripts/test-chain-id.sh new file mode 100755 index 000000000000..2d6a5d64d56d --- /dev/null +++ b/buildkite/scripts/test-chain-id.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +set -eo pipefail + +MINA_DEBIAN_NETWORK=$1 +EXPECTED_CHAIN_ID=$2 + +echo "--- Testing chain_id command for ${MINA_DEBIAN_NETWORK}" + +git config --global --add safe.directory /workdir +source buildkite/scripts/debian/update.sh --verbose +source buildkite/scripts/export-git-env-vars.sh +source buildkite/scripts/debian/install.sh "mina-${MINA_DEBIAN_NETWORK}" 1 + +echo "--- Running mina chain-id command" + +MINA_CONFIG_FILE="${MINA_CONFIG_FILE:-/var/lib/coda/${MINA_DEBIAN_NETWORK}.json}" + +ACTUAL_CHAIN_ID=$(mina internal chain-id --config-file ${MINA_CONFIG_FILE} 2>/dev/null | tail -n1) + +echo "Expected Chain ID: ${EXPECTED_CHAIN_ID}" +echo "Actual Chain ID: ${ACTUAL_CHAIN_ID}" + +if [[ "$ACTUAL_CHAIN_ID" == "$EXPECTED_CHAIN_ID" ]]; then + echo "SUCCESS: Chain ID matches expected value" +else + echo "ERROR: Chain ID mismatch" + echo " Expected: ${EXPECTED_CHAIN_ID}" + echo " Actual: ${ACTUAL_CHAIN_ID}" + exit 1 +fi diff --git a/buildkite/scripts/test_monorepo.sh b/buildkite/scripts/test_monorepo.sh index 0fa5c3181174..64252bd348b4 100755 --- a/buildkite/scripts/test_monorepo.sh +++ b/buildkite/scripts/test_monorepo.sh @@ -23,6 +23,12 @@ MONOREPO_SCRIPT="$SCRIPT_DIR/monorepo.sh" # Test temp directory TEST_DIR="" +# Mainline branches for excludeIf/includeIf tests +MAINLINE_BRANCHES=(mesa compatible develop master) +MAINLINE_BRANCHES_COMMA_SEPARATED="$(IFS=,; echo "${MAINLINE_BRANCHES[*]}")" +TEST_CLOSEST_ANCESTOR="develop" +TEST_NONMATCH_ANCESTOR="nonmatchingbranch" +TEST_CLOSEST_ANCESTOR_UPPER=$(echo "$TEST_CLOSEST_ANCESTOR" | tr '[:lower:]' '[:upper:]') # Setup function setup() { TEST_DIR=$(mktemp -d) @@ -31,6 +37,8 @@ setup() { echo "test content" > "$TEST_DIR/git_diff.txt" } + + # Teardown function teardown() { if [[ -n "$TEST_DIR" && -d "$TEST_DIR" ]]; then @@ -213,7 +221,7 @@ spec: EOF local result - result=$(check_exclude_if "$TEST_DIR/NoExclude.yml" "NoExclude" "mesa" 2>/dev/null) + result=$(check_exclude_if "$TEST_DIR/NoExclude.yml" "NoExclude" "$TEST_CLOSEST_ANCESTOR" 2>/dev/null) assert_equals "0" "$result" "Should not exclude when no excludeIf present" } @@ -221,18 +229,18 @@ EOF test_check_exclude_if_matching() { echo -e "\n${YELLOW}Testing: check_exclude_if (matching ancestor)${NC}" - cat > "$TEST_DIR/ExcludeMatch.yml" << 'EOF' + cat > "$TEST_DIR/ExcludeMatch.yml" << EOF spec: name: ExcludeMatch tags: [Lint] scope: [PullRequest] excludeIf: - - ancestor: mesa + - ancestor: $TEST_CLOSEST_ANCESTOR reason: "Test exclusion" EOF local result output - output=$(check_exclude_if "$TEST_DIR/ExcludeMatch.yml" "ExcludeMatch" "mesa" 2>&1) + output=$(check_exclude_if "$TEST_DIR/ExcludeMatch.yml" "ExcludeMatch" "$TEST_CLOSEST_ANCESTOR" 2>&1) result=$(echo "$output" | tail -1) assert_equals "1" "$result" "Should exclude when ancestor matches" @@ -243,18 +251,18 @@ EOF test_check_exclude_if_not_matching() { echo -e "\n${YELLOW}Testing: check_exclude_if (non-matching ancestor)${NC}" - cat > "$TEST_DIR/ExcludeNoMatch.yml" << 'EOF' + cat > "$TEST_DIR/ExcludeNoMatch.yml" << EOF spec: name: ExcludeNoMatch tags: [Lint] scope: [PullRequest] excludeIf: - - ancestor: Develop + - ancestor: $TEST_NONMATCH_ANCESTOR reason: "Test exclusion" EOF local result - result=$(check_exclude_if "$TEST_DIR/ExcludeNoMatch.yml" "ExcludeNoMatch" "mesa" 2>/dev/null) + result=$(check_exclude_if "$TEST_DIR/ExcludeNoMatch.yml" "ExcludeNoMatch" "$TEST_CLOSEST_ANCESTOR" 2>/dev/null) assert_equals "0" "$result" "Should not exclude when ancestor doesn't match" } @@ -262,20 +270,20 @@ EOF test_check_exclude_if_skip_non_ancestor() { echo -e "\n${YELLOW}Testing: check_exclude_if (skip non-ancestor items)${NC}" - cat > "$TEST_DIR/ExcludeMixed.yml" << 'EOF' + cat > "$TEST_DIR/ExcludeMixed.yml" << EOF spec: name: ExcludeMixed tags: [Lint] scope: [PullRequest] excludeIf: - someOtherField: value - - ancestor: Compatible + - ancestor: $TEST_NONMATCH_ANCESTOR reason: "Test exclusion" - futureType: something EOF local result output - output=$(check_exclude_if "$TEST_DIR/ExcludeMixed.yml" "ExcludeMixed" "mesa" 2>&1) + output=$(check_exclude_if "$TEST_DIR/ExcludeMixed.yml" "ExcludeMixed" "$TEST_CLOSEST_ANCESTOR" 2>&1) result=$(echo "$output" | tail -1) assert_equals "0" "$result" "Should not exclude when no ancestor matches" @@ -288,26 +296,19 @@ EOF test_check_exclude_if_exact_case() { echo -e "\n${YELLOW}Testing: check_exclude_if (case-insensitive matching)${NC}" - cat > "$TEST_DIR/ExcludeCase.yml" << 'EOF' + cat > "$TEST_DIR/ExcludeCase.yml" << EOF spec: name: ExcludeCase tags: [Lint] scope: [PullRequest] excludeIf: - - ancestor: mesa - reason: "Test case-insensitive" + - ancestor: $TEST_CLOSEST_ANCESTOR_UPPER + reason: "Test case insensitive" EOF local result - result=$(check_exclude_if "$TEST_DIR/ExcludeCase.yml" "ExcludeCase" "mesa" 2>/dev/null) - assert_equals "1" "$result" "Should exclude with exact case matching" - - # Test that different case DOES match (case-insensitive) - result=$(check_exclude_if "$TEST_DIR/ExcludeCase.yml" "ExcludeCase" "MESA" 2>/dev/null) - assert_equals "1" "$result" "Should exclude even when case differs (case-insensitive)" - - result=$(check_exclude_if "$TEST_DIR/ExcludeCase.yml" "ExcludeCase" "Mesa" 2>/dev/null) - assert_equals "1" "$result" "Should exclude with mixed case (case-insensitive)" + result=$(check_exclude_if "$TEST_DIR/ExcludeCase.yml" "ExcludeCase" "$TEST_CLOSEST_ANCESTOR" 2>/dev/null) + assert_equals "1" "$result" "Should exclude with case-insensitive matching" } # Test: check_include_if with no includeIf @@ -322,7 +323,7 @@ spec: EOF local result - result=$(check_include_if "$TEST_DIR/NoInclude.yml" "NoInclude" "mesa" 2>/dev/null) + result=$(check_include_if "$TEST_DIR/NoInclude.yml" "NoInclude" "$TEST_CLOSEST_ANCESTOR" 2>/dev/null) assert_equals "1" "$result" "Should include by default when no includeIf present" } @@ -330,18 +331,18 @@ EOF test_check_include_if_matching() { echo -e "\n${YELLOW}Testing: check_include_if (matching ancestor)${NC}" - cat > "$TEST_DIR/IncludeMatch.yml" << 'EOF' + cat > "$TEST_DIR/IncludeMatch.yml" << EOF spec: name: IncludeMatch tags: [Lint] scope: [PullRequest] includeIf: - - ancestor: mesa - reason: "Only run on mesa descendants" + - ancestor: $TEST_CLOSEST_ANCESTOR + reason: "Only run on Mesa descendants" EOF local result output - output=$(check_include_if "$TEST_DIR/IncludeMatch.yml" "IncludeMatch" "mesa" 2>&1) + output=$(check_include_if "$TEST_DIR/IncludeMatch.yml" "IncludeMatch" "$TEST_CLOSEST_ANCESTOR" 2>&1) result=$(echo "$output" | tail -1) assert_equals "1" "$result" "Should include when ancestor matches" @@ -352,18 +353,18 @@ EOF test_check_include_if_not_matching() { echo -e "\n${YELLOW}Testing: check_include_if (non-matching ancestor)${NC}" - cat > "$TEST_DIR/IncludeNoMatch.yml" << 'EOF' + cat > "$TEST_DIR/IncludeNoMatch.yml" << EOF spec: name: IncludeNoMatch tags: [Lint] scope: [PullRequest] includeIf: - - ancestor: Develop + - ancestor: $TEST_NONMATCH_ANCESTOR reason: "Only run on Develop descendants" EOF local result output - output=$(check_include_if "$TEST_DIR/IncludeNoMatch.yml" "IncludeNoMatch" "mesa" 2>&1) + output=$(check_include_if "$TEST_DIR/IncludeNoMatch.yml" "IncludeNoMatch" "$TEST_CLOSEST_ANCESTOR" 2>&1) result=$(echo "$output" | tail -1) assert_equals "0" "$result" "Should exclude when ancestor doesn't match any includeIf condition" @@ -374,22 +375,22 @@ EOF test_check_include_if_multiple_one_matches() { echo -e "\n${YELLOW}Testing: check_include_if (multiple conditions, one matches)${NC}" - cat > "$TEST_DIR/IncludeMultiple.yml" << 'EOF' + cat > "$TEST_DIR/IncludeMultiple.yml" << EOF spec: name: IncludeMultiple tags: [Lint] scope: [PullRequest] includeIf: - - ancestor: develop - reason: "Run on develop" - - ancestor: mesa - reason: "Run on mesa" - - ancestor: master - reason: "Run on master" + - ancestor: $TEST_CLOSEST_ANCESTOR + reason: "Run on closest" + - ancestor: $TEST_NONMATCH_ANCESTOR + reason: "Run on non-matching" + - ancestor: nonexistent + reason: "Run on nonexistent" EOF local result - result=$(check_include_if "$TEST_DIR/IncludeMultiple.yml" "IncludeMultiple" "mesa" 2>/dev/null) + result=$(check_include_if "$TEST_DIR/IncludeMultiple.yml" "IncludeMultiple" "$TEST_CLOSEST_ANCESTOR" 2>/dev/null) assert_equals "1" "$result" "Should include when at least one includeIf condition matches" } @@ -397,20 +398,20 @@ EOF test_check_include_if_multiple_none_match() { echo -e "\n${YELLOW}Testing: check_include_if (multiple conditions, none match)${NC}" - cat > "$TEST_DIR/IncludeNoneMatch.yml" << 'EOF' + cat > "$TEST_DIR/IncludeNoneMatch.yml" << EOF spec: name: IncludeNoneMatch tags: [Lint] scope: [PullRequest] includeIf: - - ancestor: develop - reason: "Run on develop" - - ancestor: master - reason: "Run on master" + - ancestor: $TEST_NONMATCH_ANCESTOR + reason: "Run on non-matching" + - ancestor: nonexistent + reason: "Run on nonexistent" EOF local result - result=$(check_include_if "$TEST_DIR/IncludeNoneMatch.yml" "IncludeNoneMatch" "mesa" 2>/dev/null) + result=$(check_include_if "$TEST_DIR/IncludeNoneMatch.yml" "IncludeNoneMatch" "$TEST_CLOSEST_ANCESTOR" 2>/dev/null) assert_equals "0" "$result" "Should exclude when no includeIf conditions match" } @@ -420,46 +421,39 @@ EOF test_check_include_if_exact_case() { echo -e "\n${YELLOW}Testing: check_include_if (case-insensitive matching)${NC}" - cat > "$TEST_DIR/IncludeCase.yml" << 'EOF' + cat > "$TEST_DIR/IncludeCase.yml" << EOF spec: name: IncludeCase tags: [Lint] scope: [PullRequest] includeIf: - - ancestor: mesa - reason: "Test case-insensitive" + - ancestor: $TEST_CLOSEST_ANCESTOR_UPPER + reason: "Test case insensitive" EOF local result - result=$(check_include_if "$TEST_DIR/IncludeCase.yml" "IncludeCase" "mesa" 2>/dev/null) - assert_equals "1" "$result" "Should include with exact case matching" - - # Test that different case DOES match (case-insensitive) - result=$(check_include_if "$TEST_DIR/IncludeCase.yml" "IncludeCase" "MESA" 2>/dev/null) - assert_equals "1" "$result" "Should include even when case differs (case-insensitive)" - - result=$(check_include_if "$TEST_DIR/IncludeCase.yml" "IncludeCase" "Mesa" 2>/dev/null) - assert_equals "1" "$result" "Should include with mixed case (case-insensitive)" + result=$(check_include_if "$TEST_DIR/IncludeCase.yml" "IncludeCase" "$TEST_CLOSEST_ANCESTOR" 2>/dev/null) + assert_equals "1" "$result" "Should include with case-insensitive matching" } # Test: check_include_if with non-ancestor includeIf items test_check_include_if_skip_non_ancestor() { echo -e "\n${YELLOW}Testing: check_include_if (skip non-ancestor items)${NC}" - cat > "$TEST_DIR/IncludeMixed.yml" << 'EOF' + cat > "$TEST_DIR/IncludeMixed.yml" << EOF spec: name: IncludeMixed tags: [Lint] scope: [PullRequest] includeIf: - someOtherField: value - - ancestor: mesa - reason: "Run on mesa" + - ancestor: $TEST_CLOSEST_ANCESTOR + reason: "Run on Mesa" - futureType: something EOF local result output - output=$(check_include_if "$TEST_DIR/IncludeMixed.yml" "IncludeMixed" "mesa" 2>&1) + output=$(check_include_if "$TEST_DIR/IncludeMixed.yml" "IncludeMixed" "$TEST_CLOSEST_ANCESTOR" 2>&1) result=$(echo "$output" | tail -1) assert_equals "1" "$result" "Should include when at least one ancestor condition matches" @@ -482,14 +476,14 @@ EOF echo "^.*$" > "$TEST_DIR/jobs/IntegrationTest.dirtywhen" local output - output=$("$MONOREPO_SCRIPT" \ + output=$(FORCE_CLOSEST_ANCESTOR="$TEST_CLOSEST_ANCESTOR" "$MONOREPO_SCRIPT" \ --scopes pullrequest \ --tags lint \ --filter-mode any \ --selection-mode full \ --jobs "$TEST_DIR/jobs" \ --git-diff-file "$TEST_DIR/git_diff.txt" \ - --mainline-branches mesa,master,develop \ + --mainline-branches "$MAINLINE_BRANCHES_COMMA_SEPARATED" \ --dry-run 2>&1 || true) assert_contains "$output" "Including job IntegrationTest" "Should include matching job" @@ -512,14 +506,14 @@ EOF echo "^.*$" > "$TEST_DIR/jobs/TagFilterTest.dirtywhen" local output - output=$("$MONOREPO_SCRIPT" \ + output=$(FORCE_CLOSEST_ANCESTOR="$TEST_CLOSEST_ANCESTOR" "$MONOREPO_SCRIPT" \ --scopes pullrequest \ --tags lint \ --filter-mode any \ --selection-mode full \ --jobs "$TEST_DIR/jobs" \ --git-diff-file "$TEST_DIR/git_diff.txt" \ - --mainline-branches mesa,master,develop \ + --mainline-branches "$MAINLINE_BRANCHES_COMMA_SEPARATED" \ --dry-run 2>&1 || true) assert_contains "$output" "rejected job due to tags mismatch" "Should reject job with non-matching tags" @@ -541,19 +535,52 @@ EOF echo "^.*$" > "$TEST_DIR/jobs/ScopeFilterTest.dirtywhen" local output - output=$("$MONOREPO_SCRIPT" \ + output=$(FORCE_CLOSEST_ANCESTOR="$TEST_CLOSEST_ANCESTOR" "$MONOREPO_SCRIPT" \ --scopes pullrequest \ --tags lint \ --filter-mode any \ --selection-mode full \ --jobs "$TEST_DIR/jobs" \ --git-diff-file "$TEST_DIR/git_diff.txt" \ - --mainline-branches mesa,master,develop \ + --mainline-branches "$MAINLINE_BRANCHES_COMMA_SEPARATED" \ --dry-run 2>&1 || true) assert_contains "$output" "rejected job due to scope mismatch" "Should reject job with non-matching scope" } +# Test: Integration test - includeIf with matching ancestor +test_integration_include_if_matching() { + echo -e "\n${YELLOW}Testing: Integration - includeIf matching${NC}" + + cat > "$TEST_DIR/jobs/IncludeIfMatch.yml" << EOF +spec: + name: IncludeIfMatch + path: Test + tags: + - Lint + scope: + - PullRequest + includeIf: + - ancestor: $TEST_CLOSEST_ANCESTOR + reason: "Only run on Develop descendants" +EOF + echo "^.*$" > "$TEST_DIR/jobs/IncludeIfMatch.dirtywhen" + + local output + output=$(FORCE_CLOSEST_ANCESTOR="$TEST_CLOSEST_ANCESTOR" "$MONOREPO_SCRIPT" \ + --scopes pullrequest \ + --tags lint \ + --filter-mode any \ + --selection-mode full \ + --jobs "$TEST_DIR/jobs" \ + --git-diff-file "$TEST_DIR/git_diff.txt" \ + --mainline-branches "$MAINLINE_BRANCHES_COMMA_SEPARATED" \ + --dry-run 2>&1 || true) + + assert_contains "$output" "included based on includeIf condition" "Should show includeIf inclusion message" + assert_contains "$output" "Including job IncludeIfMatch" "Should include job when includeIf matches" +} + # Test: Integration test - includeIf with non-matching ancestor test_integration_include_if_not_matching() { echo -e "\n${YELLOW}Testing: Integration - includeIf not matching${NC}" @@ -573,20 +600,93 @@ EOF echo "^.*$" > "$TEST_DIR/jobs/IncludeIfNoMatch.dirtywhen" local output - output=$("$MONOREPO_SCRIPT" \ + output=$(FORCE_CLOSEST_ANCESTOR="$TEST_CLOSEST_ANCESTOR" "$MONOREPO_SCRIPT" \ --scopes pullrequest \ --tags lint \ --filter-mode any \ --selection-mode full \ --jobs "$TEST_DIR/jobs" \ --git-diff-file "$TEST_DIR/git_diff.txt" \ - --mainline-branches mesa,master,develop \ + --mainline-branches "$MAINLINE_BRANCHES_COMMA_SEPARATED" \ --dry-run 2>&1 || true) assert_contains "$output" "none of the includeIf conditions matched" "Should show includeIf exclusion message" assert_not_contains "$output" "Including job IncludeIfNoMatch" "Should not include job when includeIf doesn't match" } +# Test: Integration test - both excludeIf and includeIf (includeIf matches, excludeIf doesn't) +test_integration_both_include_exclude_include_wins() { + echo -e "\n${YELLOW}Testing: Integration - includeIf matches, excludeIf doesn't${NC}" + + cat > "$TEST_DIR/jobs/BothIncludeWins.yml" << EOF +spec: + name: BothIncludeWins + path: Test + tags: + - Lint + scope: + - PullRequest + excludeIf: + - ancestor: $TEST_NONMATCH_ANCESTOR + reason: "Exclude on Mesa" + includeIf: + - ancestor: $TEST_CLOSEST_ANCESTOR + reason: "Include on Develop" +EOF + echo "^.*$" > "$TEST_DIR/jobs/BothIncludeWins.dirtywhen" + + local output + output=$(FORCE_CLOSEST_ANCESTOR="$TEST_CLOSEST_ANCESTOR" "$MONOREPO_SCRIPT" \ + --scopes pullrequest \ + --tags lint \ + --filter-mode any \ + --selection-mode full \ + --jobs "$TEST_DIR/jobs" \ + --git-diff-file "$TEST_DIR/git_diff.txt" \ + --mainline-branches "$MAINLINE_BRANCHES_COMMA_SEPARATED" \ + --dry-run 2>&1 || true) + + assert_contains "$output" "Including job BothIncludeWins" "Should include job when includeIf matches and excludeIf doesn't" +} + +# Test: Integration test - both excludeIf and includeIf (excludeIf matches) +test_integration_both_include_exclude_exclude_wins() { + echo -e "\n${YELLOW}Testing: Integration - excludeIf matches (takes priority)${NC}" + + cat > "$TEST_DIR/jobs/BothExcludeWins.yml" << EOF +spec: + name: BothExcludeWins + path: Test + tags: + - Lint + scope: + - PullRequest + excludeIf: + - ancestor: $TEST_CLOSEST_ANCESTOR + reason: "Exclude on Develop" + includeIf: + - ancestor: $TEST_CLOSEST_ANCESTOR + reason: "Include on Develop" + - ancestor: $TEST_NONMATCH_ANCESTOR + reason: "Include on Mesa" +EOF + echo "^.*$" > "$TEST_DIR/jobs/BothExcludeWins.dirtywhen" + + local output + output=$(FORCE_CLOSEST_ANCESTOR="$TEST_CLOSEST_ANCESTOR" "$MONOREPO_SCRIPT" \ + --scopes pullrequest \ + --tags lint \ + --filter-mode any \ + --selection-mode full \ + --jobs "$TEST_DIR/jobs" \ + --git-diff-file "$TEST_DIR/git_diff.txt" \ + --mainline-branches "$MAINLINE_BRANCHES_COMMA_SEPARATED" \ + --dry-run 2>&1 || true) + + assert_contains "$output" "excluded based on excludeIf condition" "Should show excludeIf message" + assert_not_contains "$output" "Including job BothExcludeWins" "Should not include job when excludeIf matches (even if includeIf also matches)" +} + # Main test runner main() { echo -e "${YELLOW}========================================${NC}" diff --git a/buildkite/scripts/tests/convert-debian-to-hf-test.sh b/buildkite/scripts/tests/convert-debian-to-hf-test.sh new file mode 100755 index 000000000000..8ae322b9fae8 --- /dev/null +++ b/buildkite/scripts/tests/convert-debian-to-hf-test.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# Buildkite test script for convert-daemon-debian-to-hf.sh +# This script sets up the Buildkite environment and then calls the local conversion script + +set -eoux pipefail + +NETWORK_NAME="devnet" + +echo "" +echo "=== Convert Debian to Hardfork Test (Buildkite) ===" +echo "Network: $NETWORK_NAME" +echo "" + + +# Step 0: Get pre-requisites +echo "=== Step 0: Ensuring pre-requisites are met ===" + +buildkite/scripts/debian/update.sh --verbose + +git config --global --add safe.directory /workdir +source buildkite/scripts/export-git-env-vars.sh + +source buildkite/scripts/debian/install.sh "mina-${NETWORK_NAME}" 1 + + +# Step 1: Get test debian package from cache +echo "" +echo "=== Step 1: Downloading test debian package from cache ===" +./buildkite/scripts/cache/manager.sh read --root test_data mina-daemon-test-package.deb . + + + + +INPUT_DEB="./mina-daemon-test-package.deb" + +if [[ ! -f "$INPUT_DEB" ]]; then + echo "ERROR: Test debian package not found at $INPUT_DEB" >&2 + exit 1 +fi + +echo "✓ Test debian package downloaded: $INPUT_DEB" +echo "Package size: $(du -h "$INPUT_DEB" | cut -f1)" + +# Step 2: Run the local conversion script +echo "" +echo "=== Step 2: Running local conversion script ===" + +if [[ ! -f scripts/hardfork/convert-debian-to-hf-local.sh ]]; then + echo "ERROR: Local conversion script not found at scripts/hardfork/convert-debian-to-hf-local.sh" >&2 + exit 1 +fi + +# Run the local script +./scripts/hardfork/convert-debian-to-hf-local.sh \ + --deb-file "$INPUT_DEB" \ + --network "$NETWORK_NAME" \ + --output-dir "." \ + --keep-temp + +echo "" +echo "=== ✅ All tests passed! ===" diff --git a/buildkite/scripts/tests/ledger_test_apply.sh b/buildkite/scripts/tests/ledger_test_apply.sh index 261994c6d8f6..135a8906be12 100755 --- a/buildkite/scripts/tests/ledger_test_apply.sh +++ b/buildkite/scripts/tests/ledger_test_apply.sh @@ -2,16 +2,11 @@ set -eo pipefail -# Don't prompt for answers during apt-get install -export DEBIAN_FRONTEND=noninteractive - git config --global --add safe.directory /workdir source buildkite/scripts/export-git-env-vars.sh -source buildkite/scripts/debian/update.sh --verbose - -source buildkite/scripts/debian/install.sh "mina-berkeley-instrumented" 1 +source buildkite/scripts/debian/install.sh "mina-testnet-generic-instrumented" 1 echo "removing magic config files" sudo rm -f /var/lib/coda/config_* diff --git a/buildkite/scripts/tests/release-manager-test-README.md b/buildkite/scripts/tests/release-manager-test-README.md new file mode 100644 index 000000000000..bced630390f5 --- /dev/null +++ b/buildkite/scripts/tests/release-manager-test-README.md @@ -0,0 +1,479 @@ +# Release Manager Test Suite + +This directory contains automated tests for the Mina Protocol release manager (`buildkite/scripts/release/manager.sh`). + +## Overview + +The release manager test suite verifies that the release manager script and its helper scripts function correctly for publishing and promoting Debian packages and Docker images. The tests run against a test Debian repository to ensure safe testing without affecting production repositories. + +## Test Script + +**Location**: `buildkite/scripts/tests/release-manager-test.sh` + +### Test Coverage + +The test suite includes the following test cases: + +**Dry-run Tests (Safe, read-only or simulated operations):** +1. **List Packages**: Verifies ability to list packages in the test repository +2. **Verify Test Packages**: Confirms that test packages exist in the CI component +3. **Manager Verify Command (Dry-run)**: Tests the verify command without making changes +4. **Manager Promote Command - Unsigned (Dry-run)**: Tests promotion in unsigned repository with random version suffix +5. **Manager Promote Command - Signed (Dry-run)**: Tests promotion in signed repository with GPG signing key +6. **Manager Publish Command - Signed (Dry-run)**: Tests publishing to signed repository with GPG signing key + +**Non-dry-run Tests (Actual operations that make changes):** +7. **Manager Promote - Unsigned (Real)**: Actually promotes packages in unsigned test repository with verification +8. **Manager Promote - Signed (Real)**: Actually promotes packages in signed test repository with GPG signing and verification +9. **Docker Promote to GCP**: Pulls Docker image from Docker Hub (`minaprotocol/mina-daemon:3.3.0-8c0c2e6-bookworm-mainnet-arm64`) and pushes to GCP Artifact Registry (`europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/mina-daemon:random-tag`) + +### Test Configuration + +The tests use the following configuration: + +**Unsigned Repository:** +- **Test Bucket**: `test.packages.o1test.net` +- **Test Region**: `us-west-2` +- **Test Codename**: `bullseye` +- **Test Component (CI)**: `ci` +- **Test Component (Promote Target)**: `test` +- **Test Architecture**: `amd64` + +**Signed Repository:** +- **Test Bucket**: `signed.test.packages.o1test.net` +- **Test Region**: `us-west-2` +- **Test Codename**: `bullseye` +- **Test Component**: `ci` +- **Signing Key**: `386E9DAC378726A48ED5CE56ADB30D9ACE02F414` +- **Test Architecture**: `amd64` + +**Docker Configuration:** +- **Source Registry**: Docker Hub (`minaprotocol`) +- **Source Image**: `mina-daemon` +- **Source Tag**: `3.3.0-8c0c2e6-bookworm-mainnet-arm64` (always exists) +- **Target Registry**: GCP Artifact Registry (`europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo`) +- **Target Image**: `mina-daemon` +- **Target Tag**: Uses random suffix `test--` + +**Version Naming:** +- Promote operations use random suffixes: `test--` +- This ensures each test run creates unique versions without conflicts +- Real (non-dry-run) promotions add `-real` or `-signed-real` to the suffix + +### Test Packages and Images + +**Debian Packages:** + +The test suite expects the following packages to be available in the test repository: + +1. `mina-devnet_3.3.0-alpha1-compatible-918b8c0_amd64.deb` +2. `mina-logproc_3.3.0-beta1-dkijania-berkeley-automode-05a597d_amd64.deb` + +These packages should be uploaded to the `test.packages.o1test.net` bucket in the `bullseye/ci` component. + +**Docker Images:** + +The test suite uses the following Docker image for promotion tests: + +- **Source**: `minaprotocol/mina-daemon:3.3.0-8c0c2e6-bookworm-mainnet-arm64` (Docker Hub) + - This is a publicly available image that always exists + - Architecture: arm64 + - Platform: linux/arm64 + +This image will be pulled from Docker Hub and promoted to the GCP Artifact Registry test repository with a random tag. + +## Running Tests Locally + +### Prerequisites + +Before running the tests, ensure you have the following installed: + +1. **deb-s3**: Ruby gem for Debian repository management + ```bash + gem install deb-s3 + ``` + +2. **AWS CLI**: For S3 operations + ```bash + # Install via package manager or pip + pip install awscli + ``` + +3. **AWS Credentials**: Set up AWS credentials with access to the test buckets + ```bash + export AWS_ACCESS_KEY_ID="your-access-key" + export AWS_SECRET_ACCESS_KEY="your-secret-key" + export AWS_DEFAULT_REGION="us-west-2" + ``` + +4. **GPG Key** (optional, for signed repository non-dry-run tests): Import the Debian signing key + ```bash + # Import from Google Cloud Secret Manager (if available) + gcloud secrets versions access latest --secret="o1labsDebianRepoKey" | gpg --import + + # Verify key is imported (should show key 386E9DAC378726A48ED5CE56ADB30D9ACE02F414) + gpg --list-secret-keys + ``` + + Note: Signed repository tests will skip non-dry-run operations if the GPG key is not available. + +5. **Docker** (optional, for Docker promotion tests): + ```bash + # Install Docker + # On Ubuntu/Debian: + sudo apt-get update && sudo apt-get install docker.io + + # On macOS: + brew install docker + + # Verify Docker is running + docker --version + docker ps + ``` + +6. **Google Cloud SDK** (optional, for GCP Artifact Registry tests): + ```bash + # Install gcloud SDK + curl https://sdk.cloud.google.com | bash + exec -l $SHELL + + # Authenticate + gcloud auth login + + # Configure Docker for GCP Artifact Registry + gcloud auth configure-docker europe-west3-docker.pkg.dev + ``` + + Note: Docker promotion tests will be skipped if Docker or gcloud are not available or not authenticated. + +### Running the Tests + +```bash +# From the repository root +./buildkite/scripts/tests/release-manager-test.sh +``` + +### Expected Output + +The test script will output: +- Colored status messages (green for info, red for errors, yellow for warnings) +- Test results with ✅ for passed tests and ❌ for failed tests +- A summary at the end showing total tests, passed, and failed counts + +Example: +``` +[INFO] Starting Release Manager Test Suite +[INFO] Test bucket (unsigned): test.packages.o1test.net +[INFO] Test bucket (signed): signed.test.packages.o1test.net +[INFO] Test region: us-west-2 +[INFO] Test codename: bullseye +[INFO] Random suffix: test-1736789012-12345 +... +[INFO] ✅ TEST PASSED: List packages in test repository +[INFO] ✅ TEST PASSED: mina-devnet test package exists +[INFO] ✅ TEST PASSED: Manager verify command dry-run +[INFO] Using random target version: 3.3.0-alpha1-test-1736789012-12345 +[INFO] ✅ TEST PASSED: Manager promote command (unsigned, dry-run) +[INFO] Using signing key: 386E9DAC378726A48ED5CE56ADB30D9ACE02F414 +[INFO] ✅ TEST PASSED: Manager promote command (signed, dry-run) +[INFO] ✅ TEST PASSED: Manager publish command (signed, dry-run) + +[INFO] ========================================= +[INFO] STARTING NON-DRY-RUN TESTS +[INFO] These tests will make actual changes! +[INFO] ========================================= + +[WARN] This test will actually promote packages to the test repository +[INFO] Using random target version: 3.3.0-alpha1-test-1736789012-12345-real +[INFO] ✓ Promoted package verified in repository +[INFO] ✅ TEST PASSED: Manager promote command (unsigned, real) + +[WARN] This test will actually promote packages to the signed test repository +[INFO] ✓ Promoted package verified in signed repository +[INFO] ✅ TEST PASSED: Manager promote command (signed, real) + +[WARN] This test will actually pull and push Docker images +[INFO] Source: minaprotocol/mina-daemon:3.3.0-8c0c2e6-bookworm-mainnet-arm64 +[INFO] Target: europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/mina-daemon:test-1736789012-12345 +[INFO] Pulling source image from Docker Hub... +[INFO] Tagging image for GCP Artifact Registry... +[INFO] Pushing image to GCP Artifact Registry... +[INFO] ✓ Docker image successfully promoted to GCP Artifact Registry +[INFO] ✓ Image verified in GCP Artifact Registry +[INFO] ✅ TEST PASSED: Docker promote to GCP Artifact Registry + +[INFO] ========================================= +[INFO] TEST SUMMARY +[INFO] ========================================= +[INFO] Total tests: 9 +[INFO] Passed: 9 +[INFO] Failed: 0 +[INFO] ========================================= +[INFO] 🎉 All tests passed! +``` + +## CI Integration + +### Buildkite Configuration + +**Location**: `buildkite/src/Jobs/Test/ReleaseManagerTest.dhall` + +The test is automatically run in CI when changes are detected in: +- `buildkite/scripts/release/**` - Release manager scripts +- `scripts/debian/**` - Debian helper scripts +- `scripts/docker/**` - Docker helper scripts +- `buildkite/src/Jobs/Test/ReleaseManagerTest.dhall` - The CI configuration itself +- `buildkite/scripts/tests/release-manager-test.sh` - The test script + +### CI Job Configuration + +- **Job Name**: ReleaseManagerTest +- **Job Key**: `release-manager-tests` +- **Target Size**: Small +- **Tags**: Fast, Test, Stable, Release +- **Artifacts**: Log files (`*.log`) + +### Environment Variables + +The CI job requires the following environment variables: +- `AWS_ACCESS_KEY_ID`: AWS access key for S3 operations +- `AWS_SECRET_ACCESS_KEY`: AWS secret key for S3 operations +- `AWS_DEFAULT_REGION`: AWS region (set to `us-west-2`) + +## Test Repository Setup + +### Creating Test Packages + +If you need to recreate or update the test packages: + +1. **Build or obtain test Debian packages**: + ```bash + # Example: Copy existing packages for testing + cp _build/mina-devnet_*.deb /tmp/test-packages/ + cp _build/mina-logproc_*.deb /tmp/test-packages/ + ``` + +2. **Upload to test repository**: + ```bash + deb-s3 upload \ + --bucket test.packages.o1test.net \ + --s3-region us-west-2 \ + --codename bullseye \ + --component ci \ + --arch amd64 \ + /tmp/test-packages/*.deb + ``` + +### Listing Test Packages + +To see what packages are in the test repository: + +```bash +deb-s3 list \ + --bucket test.packages.o1test.net \ + --s3-region us-west-2 \ + --codename bullseye \ + --component ci \ + --arch amd64 +``` + +### Cleaning Up Test Packages + +If you need to remove test packages: + +```bash +# Note: deb-s3 doesn't have a direct delete command +# Use AWS CLI to remove files from S3 bucket +aws s3 rm s3://test.packages.o1test.net/pool/... --recursive +``` + +### Setting Up Signed Test Repository + +The tests also use a signed repository at `signed.test.packages.o1test.net`. To set this up: + +1. **Create the S3 bucket** (if not exists): + ```bash + aws s3 mb s3://signed.test.packages.o1test.net --region us-west-2 + ``` + +2. **Upload test packages with signing**: + ```bash + deb-s3 upload \ + --bucket signed.test.packages.o1test.net \ + --s3-region us-west-2 \ + --codename bullseye \ + --component ci \ + --arch amd64 \ + --sign 386E9DAC378726A48ED5CE56ADB30D9ACE02F414 \ + /tmp/test-packages/*.deb + ``` + +3. **Verify signed repository**: + ```bash + deb-s3 list \ + --bucket signed.test.packages.o1test.net \ + --s3-region us-west-2 \ + --codename bullseye \ + --component ci + ``` + +## Extending the Tests + +### Adding New Test Cases + +To add a new test case: + +1. **Create a test function** in `release-manager-test.sh`: + ```bash + test_my_new_feature() { + log_info "=========================================" + log_info "TEST N: Description of test" + log_info "=========================================" + + # Your test logic here + if [[ condition ]]; then + assert_success "Test description" 0 + else + assert_success "Test description" 1 + fi + } + ``` + +2. **Call the test function** in the `main()` function: + ```bash + main() { + # ... existing tests ... + test_my_new_feature + # ... + } + ``` + +### Test Helper Functions + +The test script provides several helper functions: + +- `log_info `: Log informational message in green +- `log_error `: Log error message in red +- `log_warn `: Log warning message in yellow +- `assert_success `: Assert command succeeded (exit_code=0) +- `assert_package_exists `: Assert package exists in repository + +## Safety Features + +The test suite is designed with safety in mind: + +1. **Test Repositories**: Uses dedicated test repositories, not production + - `test.packages.o1test.net` for unsigned packages + - `signed.test.packages.o1test.net` for signed packages + - `europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo` for Docker images +2. **Random Suffixes**: All promote operations use unique random suffixes to avoid conflicts +3. **Dry-run Tests First**: Tests run dry-run operations before non-dry-run ones +4. **Graceful Skipping**: Tests automatically skip if required tools are not available: + - Signed promote tests skip if GPG key is not imported + - Docker tests skip if Docker is not installed + - GCP tests skip if gcloud is not authenticated +5. **Isolated Environment**: Uses temporary directory for test artifacts +6. **Cleanup**: Automatic cleanup of temporary files and Docker images on exit +7. **Verification**: Non-dry-run tests verify promoted packages actually exist after promotion +8. **Clear Warnings**: Tests that make actual changes display prominent warnings + +## Troubleshooting + +### Common Issues + +1. **"deb-s3 not found"**: + - Solution: Install deb-s3 with `gem install deb-s3` + +2. **"AWS credentials not set"**: + - Solution: Set `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` environment variables + +3. **"Package not found" errors**: + - Solution: Verify test packages exist in the test repository + - Run: `deb-s3 list --bucket test.packages.o1test.net --s3-region us-west-2 --codename bullseye --component ci` + +4. **"Manager script not found"**: + - Solution: Ensure you're running the test from the repository root or the script can find the manager + - Check path: `buildkite/scripts/release/manager.sh` + +5. **"Docker not found" or Docker tests skipped**: + - Solution: Install Docker and ensure it's running + - Check: `docker --version && docker ps` + +6. **"GCloud not authenticated" or GCP tests skipped**: + - Solution: Authenticate with gcloud and configure Docker + - Run: `gcloud auth login && gcloud auth configure-docker europe-west3-docker.pkg.dev` + +7. **"GPG signing key not found" or signed tests skipped**: + - Solution: Import the Debian signing key + - Run: `gcloud secrets versions access latest --secret="o1labsDebianRepoKey" | gpg --import` + +8. **Docker pull/push failures**: + - Solution: Check Docker Hub and GCP Artifact Registry access + - Verify: Can you manually pull `docker pull minaprotocol/mina-daemon:3.3.0-8c0c2e6-bookworm-mainnet-arm64` + - Verify: Are you authenticated to GCP Artifact Registry? + +9. **Non-dry-run test failures**: + - Check AWS credentials have write permissions to test buckets + - Check GPG key is correctly imported for signed operations + - Check network connectivity to S3 and Docker registries + +### Debug Mode + +To enable verbose output for debugging: + +```bash +# Run with bash debug mode +bash -x ./buildkite/scripts/tests/release-manager-test.sh +``` + +## Future Improvements + +Potential enhancements for the test suite: + +1. ✅ **Full Integration Tests**: Tests that actually publish/promote (IMPLEMENTED) + - Non-dry-run Debian promote tests for unsigned and signed repositories + - Docker promotion test from Docker Hub to GCP Artifact Registry +2. ✅ **Docker Tests**: Add tests for Docker image publishing and promotion (IMPLEMENTED) + - Docker promotion test pulls from Docker Hub and pushes to GCP Artifact Registry +3. **Multi-architecture Tests**: Test additional architectures + - Currently tests amd64 for Debian packages and arm64 for Docker images + - Could add more comprehensive multi-arch testing +4. **End-to-End Verification**: After promote/publish, verify packages are actually installable + - Use Docker containers to test apt-get install + - Verify Docker images can actually run +5. **Performance Tests**: Measure and track performance of operations + - Track time taken for promote/publish operations + - Monitor package size and upload speeds +6. **Rollback Tests**: Test rollback and recovery scenarios + - Test removing promoted packages + - Test re-promoting with different versions +7. **Concurrent Operation Tests**: Test behavior with concurrent publish/promote operations + - Ensure locking mechanisms work correctly +8. **Manager Script Docker Tests**: Use the manager.sh script for Docker operations + - Currently using direct docker commands + - Could test manager.sh Docker promotion features +9. **Multiple Codename Tests**: Test promotion across different Debian codenames + - Currently focused on bullseye + - Could test focal, noble, jammy, bookworm + +## Contributing + +When modifying the release manager or its tests: + +1. Update tests to cover new functionality +2. Run tests locally before submitting PR +3. Update this documentation if adding new test features +4. Ensure all tests pass in CI before merging + +## Related Documentation + +- [Release Manager README](../release/README.md) - Main release manager documentation +- [Debian Repository Documentation](../../CLAUDE.md) - Debian repository information +- [Buildkite CI Configuration](../../src/README.md) - CI pipeline documentation + +## Contact + +For questions or issues with the release manager tests, please: +1. Check the troubleshooting section above +2. Review the main release manager documentation +3. Open an issue on the GitHub repository diff --git a/buildkite/scripts/tests/release-manager-test.sh b/buildkite/scripts/tests/release-manager-test.sh new file mode 100755 index 000000000000..e7857fefd929 --- /dev/null +++ b/buildkite/scripts/tests/release-manager-test.sh @@ -0,0 +1,675 @@ +#!/bin/bash + +# Release Manager Test Suite +# Tests publish and promote operations for debian packages and Docker images using test repositories +# +# This test suite validates the release manager script functionality including: +# - Listing packages in test repositories +# - Verifying test packages exist +# - Testing promote operations (unsigned and signed repositories) - dry-run and real +# - Testing publish operations (signed repository) - dry-run +# - Testing Docker promotion from Docker Hub to GCP Artifact Registry +# +# Tests are divided into two sections: +# 1. Dry-run tests (safe, no actual changes) +# 2. Non-dry-run tests (actual operations with verification) +# +# Promote operations use random suffixes to avoid conflicts. +# +# Test Repositories: +# - test.packages.o1test.net (unsigned Debian packages) +# - signed.test.packages.o1test.net (signed Debian packages with key 386E9DAC378726A48ED5CE56ADB30D9ACE02F414) +# - minaprotocol/mina-daemon (Docker Hub source) +# - europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo (GCP Artifact Registry target) + +set -eo pipefail + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +BACKEND="local" + +# Test configuration - unsigned repository +TEST_BUCKET="test.packages.o1test.net" +TEST_BUCKET_EXTERNAL_URL="s3.us-west-2.amazonaws.com/test.packages.o1test.net" +TEST_REGION="us-west-2" +TEST_CODENAME="bullseye" +TEST_COMPONENT_CI="ci" +TEST_COMPONENT_TEST="test" +TEST_ARCH="amd64" + + +# Test configuration - signed repository +SIGNED_TEST_BUCKET="signed.tests.packages.o1test.net" +SIGNED_TEST_BUCKET_EXTERNAL_URL="s3.us-west-2.amazonaws.com/signed.tests.packages.o1test.net" +SIGNED_TEST_COMPONENT="ci" +SIGNED_TEST_CODENAME="bookworm" +SIGNED_TEST_ARCH="arm64" +SIGNED_TEST_COMPONENT="test" + +DEBIAN_SIGN_KEY="386E9DAC378726A48ED5CE56ADB30D9ACE02F414" + +# Docker configuration +DOCKER_SOURCE_REGISTRY="minaprotocol" +DOCKER_SOURCE_IMAGE="mina-daemon" +DOCKER_SOURCE_TAG="3.3.0-8c0c2e6-bookworm-mainnet-arm64" +DOCKER_TARGET_REGISTRY="europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo" +DOCKER_TARGET_IMAGE="mina-daemon" + +# Generate random suffix for promote operations +RANDOM_SUFFIX="test-$(date +%s)-${RANDOM}" + +# Test counters +TESTS_PASSED=0 +TESTS_FAILED=0 +TESTS_TOTAL=0 + +# Get script directory +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_ROOT="$(cd "${SCRIPT_DIR}/../../.." && pwd)" +MANAGER_SCRIPT="${REPO_ROOT}/buildkite/scripts/release/manager.sh" + +# Logging functions +log_info() { + echo -e "${GREEN}[INFO]${NC} $*" +} + +log_error() { + echo -e "${RED}[ERROR]${NC} $*" +} + +log_warn() { + echo -e "${YELLOW}[WARN]${NC} $*" +} + +# Test assertion helpers +assert_success() { + local test_name="$1" + local command_status="$2" + TESTS_TOTAL=$((TESTS_TOTAL + 1)) + + if [ "$command_status" -eq 0 ]; then + log_info "✅ TEST PASSED: ${test_name}" + TESTS_PASSED=$((TESTS_PASSED + 1)) + return 0 + else + log_error "❌ TEST FAILED: ${test_name}" + TESTS_FAILED=$((TESTS_FAILED + 1)) + return 1 + fi +} + +assert_package_exists() { + local test_name="$1" + local package_name="$2" + local version="$3" + local codename="$4" + local component="$5" + local bucket="$6" + local region="$7" + local arch="$8" + + TESTS_TOTAL=$((TESTS_TOTAL + 1)) + + log_info "Checking if package ${package_name} version ${version} exists in ${codename}/${component}" + + # List packages and check if our package exists + if deb-s3 list \ + --bucket="${bucket}" \ + --s3-region="${region}" \ + --codename="${codename}" \ + --component="${component}" \ + --arch="${arch}" 2>/dev/null | grep -q "^${package_name}[[:space:]]\+${version}"; then + log_info "✅ TEST PASSED: ${test_name}" + TESTS_PASSED=$((TESTS_PASSED + 1)) + return 0 + else + log_error "❌ TEST FAILED: ${test_name} - Package not found" + TESTS_FAILED=$((TESTS_FAILED + 1)) + return 1 + fi +} + +# Pre-setup: install awscli and deb-s3 if missing +# We are running this test on bare agents, so we need to install dependencies +presetup_tools() { + if ! command -v aws &> /dev/null; then + log_info "Installing awscli..." + pip install --user awscli || { + log_error "Failed to install awscli. Please install manually." + exit 1 + } + export PATH="$HOME/.local/bin:$PATH" + fi + + if ! command -v deb-s3 &> /dev/null; then + log_info "Installing deb-s3..." + + # Ensure Ruby and RubyGems are installed + if ! command -v gem &> /dev/null; then + log_info "RubyGems not found. Installing Ruby and RubyGems..." + if command -v apt-get &> /dev/null; then + apt-get update && apt-get install -y ruby ruby-dev build-essential + else + log_error "Could not install Ruby" + exit 1 + fi + fi + + local DEBS3_VERSION="0.11.7" + curl -sLO https://github.com/MinaProtocol/deb-s3/releases/download/${DEBS3_VERSION}/deb-s3-${DEBS3_VERSION}.gem + gem install deb-s3-${DEBS3_VERSION}.gem + rm -f deb-s3-${DEBS3_VERSION}.gem + fi +} + +# Prerequisites check +check_prerequisites() { + log_info "Checking prerequisites..." + + local missing_deps=() + local optional_deps=() + + # Check for deb-s3 + if ! command -v deb-s3 &> /dev/null; then + missing_deps+=("deb-s3 (install with: gem install deb-s3)") + fi + + # Check for aws CLI + if ! command -v aws &> /dev/null; then + missing_deps+=("aws (AWS CLI)") + fi + + # Check for manager script + if [ ! -f "${MANAGER_SCRIPT}" ]; then + log_error "Manager script not found at: ${MANAGER_SCRIPT}" + return 1 + fi + + # Check AWS credentials + if [ -z "${AWS_ACCESS_KEY_ID}" ] || [ -z "${AWS_SECRET_ACCESS_KEY}" ]; then + log_warn "AWS credentials not set. Some tests may fail." + log_warn "Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables." + fi + + # Optional: Check for Docker (needed for Docker tests) + if ! command -v docker &> /dev/null; then + optional_deps+=("docker (for Docker promotion tests)") + fi + + # Optional: Check for gcloud (needed for GCP Artifact Registry tests) + if ! command -v gcloud &> /dev/null; then + optional_deps+=("gcloud (for GCP Artifact Registry tests)") + fi + + # Optional: Check for GPG (needed for signed repo tests) + if ! command -v gpg &> /dev/null; then + optional_deps+=("gpg (for signed repository tests)") + fi + + if [ ${#missing_deps[@]} -gt 0 ]; then + log_error "Missing required dependencies:" + for dep in "${missing_deps[@]}"; do + log_error " - ${dep}" + done + return 1 + fi + + if [ ${#optional_deps[@]} -gt 0 ]; then + log_warn "Optional dependencies not found (some tests will be skipped):" + for dep in "${optional_deps[@]}"; do + log_warn " - ${dep}" + done + fi + + log_info "Core prerequisites met" + return 0 +} + +# Setup test environment +setup_test_environment() { + log_info "Setting up test environment..." + + # Create temporary directory for test artifacts + TEST_TEMP_DIR=$(mktemp -d -t release-manager-test.XXXXXX) + export TEST_TEMP_DIR + log_info "Created temporary directory: ${TEST_TEMP_DIR}" + + # Set debian cache to temp dir to avoid polluting user's cache + export DEBIAN_CACHE_FOLDER="${TEST_TEMP_DIR}/debian_cache" + mkdir -p "${DEBIAN_CACHE_FOLDER}" + + log_info "Test environment ready" +} + +# Cleanup test environment +cleanup_test_environment() { + log_info "Cleaning up test environment..." + + if [ -n "${TEST_TEMP_DIR}" ] && [ -d "${TEST_TEMP_DIR}" ]; then + rm -rf "${TEST_TEMP_DIR}" + log_info "Removed temporary directory: ${TEST_TEMP_DIR}" + fi +} + +# Test 1: Verify test packages exist in CI component +test_verify_test_packages() { + log_info "=========================================" + log_info "TEST 1: Verify test packages exist in CI component" + log_info "=========================================" + + # These are the packages the user uploaded + assert_package_exists \ + "mina-devnet test package exists" \ + "mina-devnet" \ + "3.3.0-alpha1-compatible-918b8c0" \ + "${TEST_CODENAME}" \ + "${TEST_COMPONENT_CI}" \ + "${TEST_BUCKET}" \ + "${TEST_REGION}" \ + "${TEST_ARCH}" + + + assert_package_exists \ + "mina-logproc test package exists" \ + "mina-logproc" \ + "3.3.0-beta1-dkijania-berkeley-automode-05a597d" \ + "${TEST_CODENAME}" \ + "${TEST_COMPONENT_CI}" \ + "${TEST_BUCKET}" \ + "${TEST_REGION}" \ + "${TEST_ARCH}" +} + +# Test 2: Test manager.sh verify command +test_manager_verify() { + log_info "=========================================" + log_info "TEST 2: Test manager.sh verify command" + log_info "=========================================" + + # Test verify command with + if "${MANAGER_SCRIPT}" verify \ + --version "3.3.0-alpha1-compatible-918b8c0" \ + --artifacts "mina-daemon" \ + --networks "devnet" \ + --codenames "${TEST_CODENAME}" \ + --channel "${TEST_COMPONENT_CI}" \ + --archs "${TEST_ARCH}" \ + --debian-repo "${TEST_BUCKET_EXTERNAL_URL}" \ + --only-debians 2>&1 | tee "${TEST_TEMP_DIR}/verify_dry_run.log"; then + assert_success "Manager verify command " 0 + else + assert_success "Manager verify command" 1 + fi +} + +# Test 3: Test promote operation (dry-run) - unsigned repo +test_manager_promote_unsigned() { + log_info "=========================================" + log_info "TEST 3: Test manager.sh promote command (unsigned, dry-run)" + log_info "=========================================" + + local target_version="3.3.0-alpha1-${RANDOM_SUFFIX}" + log_info "Using random target version: ${target_version}" + + # Test promote from ci to test component + if "${MANAGER_SCRIPT}" promote \ + --source-version "3.3.0-alpha1-compatible-918b8c0" \ + --target-version "${target_version}" \ + --source-channel "${TEST_COMPONENT_CI}" \ + --target-channel "${TEST_COMPONENT_TEST}" \ + --artifacts "mina-daemon" \ + --networks "devnet" \ + --codenames "${TEST_CODENAME}" \ + --arch "${TEST_ARCH}" \ + --debian-repo "${TEST_BUCKET}" \ + --only-debians \ + --skip-cache-invalidation \ + --dry-run 2>&1 | tee "${TEST_TEMP_DIR}/promote_unsigned_dry_run.log"; then + assert_success "Manager promote command (unsigned, dry-run)" 0 + else + assert_success "Manager promote command (unsigned, dry-run)" 1 + fi +} + +# Test 4: Test promote operation (dry-run) - signed repo +test_manager_promote_signed() { + log_info "=========================================" + log_info "TEST 4: Test manager.sh promote command (signed, dry-run)" + log_info "=========================================" + + local target_version="3.3.0-${RANDOM_SUFFIX}" + log_info "Using random target version: ${target_version}" + log_info "Using signing key: ${DEBIAN_SIGN_KEY}" + + # Test promote from ci to test component with signing + if "${MANAGER_SCRIPT}" promote \ + --source-version "3.3.0-8c0c2e6" \ + --target-version "${target_version}" \ + --source-channel "${TEST_COMPONENT_CI}" \ + --target-channel "${SIGNED_TEST_COMPONENT}" \ + --artifacts "mina-archive" \ + --networks "devnet" \ + --codenames "${SIGNED_TEST_CODENAME}" \ + --arch "${SIGNED_TEST_ARCH}" \ + --debian-repo "${SIGNED_TEST_BUCKET}" \ + --debian-sign-key "${DEBIAN_SIGN_KEY}" \ + --skip-cache-invalidation \ + --only-debians \ + --dry-run 2>&1 | tee "${TEST_TEMP_DIR}/promote_signed_dry_run.log"; then + assert_success "Manager promote command (signed, dry-run)" 0 + else + assert_success "Manager promote command (signed, dry-run)" 1 + fi +} + +# Test 5: Test publish operation (dry-run) - signed repo +test_manager_publish_signed() { + log_info "=========================================" + log_info "TEST 5: Test manager.sh publish command (signed, dry-run)" + log_info "=========================================" + + log_info "Using signing key: ${DEBIAN_SIGN_KEY}" + + # Test publish with signing + # Note: This test uses --dry-run so it won't actually need the build artifacts + if "${MANAGER_SCRIPT}" publish \ + --buildkite-build-id "test_data" \ + --source-version "3.3.0-8c0c2e6" \ + --target-version "3.3.0-8c0c2e6-${RANDOM_SUFFIX}" \ + --channel "${SIGNED_TEST_COMPONENT}" \ + --artifacts "mina-archive" \ + --networks "devnet" \ + --codenames "${SIGNED_TEST_CODENAME}" \ + --archs "${SIGNED_TEST_ARCH}" \ + --debian-repo "${SIGNED_TEST_BUCKET}" \ + --debian-sign-key "${DEBIAN_SIGN_KEY}" \ + --backend "${BACKEND}" \ + --only-debians \ + --strip-network-from-archive \ + --skip-cache-invalidation \ + --dry-run 2>&1 | tee "${TEST_TEMP_DIR}/publish_signed_dry_run.log"; then + assert_success "Manager publish command (signed, dry-run)" 0 + else + assert_success "Manager publish command (signed, dry-run)" 1 + fi +} + +# Test 6: Test list packages functionality +test_list_packages() { + log_info "=========================================" + log_info "TEST 6: Test list packages in repository" + log_info "=========================================" + + log_info "Listing all packages in ${TEST_COMPONENT_CI} component..." + if deb-s3 list \ + --bucket="${TEST_BUCKET}" \ + --s3-region="${TEST_REGION}" \ + --codename="${TEST_CODENAME}" \ + --component="${TEST_COMPONENT_CI}" \ + --arch="${TEST_ARCH}" > "${TEST_TEMP_DIR}/packages_list.txt" 2>&1; then + + log_info "Packages found:" + cat "${TEST_TEMP_DIR}/packages_list.txt" + assert_success "List packages in test repository" 0 + else + log_error "Failed to list packages" + assert_success "List packages in test repository" 1 + fi +} + +# Test 7: Non-dry-run promote operation - unsigned repo +test_manager_promote_unsigned_real() { + log_info "=========================================" + log_info "TEST 7: REAL manager.sh promote command (unsigned, actual promotion)" + log_info "=========================================" + + local target_version="3.3.0-alpha1-${RANDOM_SUFFIX}-real" + log_info "Using random target version: ${target_version}" + log_warn "This test will actually promote packages to the test repository" + + # Actual promote from ci to test component + if "${MANAGER_SCRIPT}" promote \ + --source-version "3.3.0-alpha1-compatible-918b8c0" \ + --target-version "${target_version}" \ + --source-channel "${TEST_COMPONENT_CI}" \ + --target-channel "${TEST_COMPONENT_TEST}" \ + --artifacts "mina-daemon" \ + --networks "devnet" \ + --codenames "${TEST_CODENAME}" \ + --arch "${TEST_ARCH}" \ + --debian-repo "${TEST_BUCKET_EXTERNAL_URL}" \ + --skip-cache-invalidation \ + --only-debians 2>&1 | tee "${TEST_TEMP_DIR}/promote_unsigned_real.log"; then + + log_info "Verifying promoted package exists..." + sleep 60 # Give S3 a moment to sync + + if assert_package_exists \ + "Manager promote command (unsigned, real)" \ + "mina-devnet" \ + "${target_version}" \ + "${TEST_CODENAME}" \ + "${TEST_COMPONENT_TEST}" \ + "${TEST_BUCKET}" \ + "${TEST_REGION}" \ + "${TEST_ARCH}"; then + return 0 + else + return 1 + fi + else + assert_success "Manager promote command (unsigned, real)" 1 + fi +} + +# Test 8: Non-dry-run promote operation - signed repo +test_manager_promote_signed_real() { + log_info "=========================================" + log_info "TEST 8: REAL manager.sh promote command (signed, actual promotion)" + log_info "=========================================" + + local target_version="3.3.0-8c0c2e6-${RANDOM_SUFFIX}-signed-real" + log_info "Using random target version: ${target_version}" + log_info "Using signing key: ${DEBIAN_SIGN_KEY}" + log_warn "This test will actually promote packages to the signed test repository" + + # Check if GPG key is available + if ! gpg --list-secret-keys "${DEBIAN_SIGN_KEY}" &> /dev/null; then + log_warn "GPG signing key not found. Skipping signed promote test." + log_warn "To run this test, import the key with:" + log_warn " gcloud secrets versions access latest --secret=\"o1labsDebianRepoKey\" | gpg --import" + TESTS_TOTAL=$((TESTS_TOTAL + 1)) + TESTS_PASSED=$((TESTS_PASSED + 1)) + return 0 + fi + + # Actual promote from ci to test component with signing + if "${MANAGER_SCRIPT}" promote \ + --source-version "3.3.0-8c0c2e6" \ + --target-version "${target_version}" \ + --source-channel "${TEST_COMPONENT_CI}" \ + --target-channel "${TEST_COMPONENT_TEST}" \ + --artifacts "mina-archive" \ + --networks "devnet" \ + --codenames "${SIGNED_TEST_CODENAME}" \ + --arch "${SIGNED_TEST_ARCH}" \ + --debian-repo "${SIGNED_TEST_BUCKET_EXTERNAL_URL}" \ + --debian-sign-key "${DEBIAN_SIGN_KEY}" \ + --skip-cache-invalidation \ + --only-debians 2>&1 | tee "${TEST_TEMP_DIR}/promote_signed_real.log"; then + + log_info "Verifying promoted package exists in signed repository..." + sleep 5 # Give S3 a moment to sync + + if assert_package_exists \ + "Manager promote command (signed, real)" \ + "mina-archive-devnet" \ + "${target_version}" \ + "${SIGNED_TEST_CODENAME}" \ + "${TEST_COMPONENT_TEST}" \ + "${SIGNED_TEST_BUCKET}" \ + "${TEST_REGION}" \ + "${SIGNED_TEST_ARCH}"; then + return 0 + else + return 1 + fi + else + assert_success "Manager promote command (signed, real)" 1 + fi +} + +# Test 9: Docker promote from Docker Hub to GCP Artifact Registry +test_docker_promote_to_gcp() { + log_info "=========================================" + log_info "TEST 9: Docker promote from Docker Hub to GCP Artifact Registry" + log_info "=========================================" + + local docker_random_tag="${RANDOM_SUFFIX}" + local source_image="${DOCKER_SOURCE_REGISTRY}/${DOCKER_SOURCE_IMAGE}:${DOCKER_SOURCE_TAG}" + local target_image="${DOCKER_TARGET_REGISTRY}/${DOCKER_TARGET_IMAGE}:${docker_random_tag}" + + log_info "Source: ${source_image}" + log_info "Target: ${target_image}" + log_warn "This test will actually pull and push Docker images" + + # Check if docker is available + if ! command -v docker &> /dev/null; then + log_warn "Docker not found. Skipping Docker promote test." + TESTS_TOTAL=$((TESTS_TOTAL + 1)) + TESTS_PASSED=$((TESTS_PASSED + 1)) + return 0 + fi + + # Check if gcloud is configured for docker authentication + if ! gcloud auth print-access-token &> /dev/null; then + log_warn "GCloud not authenticated. Skipping Docker promote test." + log_warn "To run this test, authenticate with:" + log_warn " gcloud auth login" + log_warn " gcloud auth configure-docker europe-west3-docker.pkg.dev" + TESTS_TOTAL=$((TESTS_TOTAL + 1)) + TESTS_PASSED=$((TESTS_PASSED + 1)) + return 0 + fi + + # Pull source image from Docker Hub + log_info "Pulling source image from Docker Hub..." + if ! docker pull --platform linux/arm64 "${source_image}" 2>&1 | tee "${TEST_TEMP_DIR}/docker_pull.log"; then + log_error "Failed to pull source image" + assert_success "Docker promote to GCP Artifact Registry" 1 + return 1 + fi + + # Tag image for target registry + log_info "Tagging image for GCP Artifact Registry..." + if ! docker tag "${source_image}" "${target_image}" 2>&1 | tee "${TEST_TEMP_DIR}/docker_tag.log"; then + log_error "Failed to tag image" + assert_success "Docker promote to GCP Artifact Registry" 1 + return 1 + fi + + # Push to GCP Artifact Registry + log_info "Pushing image to GCP Artifact Registry..." + if docker push "${target_image}" 2>&1 | tee "${TEST_TEMP_DIR}/docker_push.log"; then + log_info "✓ Docker image successfully promoted to GCP Artifact Registry" + + # Verify image exists + log_info "Verifying image in GCP Artifact Registry..." + if gcloud artifacts docker images list "${DOCKER_TARGET_REGISTRY}/${DOCKER_TARGET_IMAGE}" \ + --include-tags 2>/dev/null | grep -q "${docker_random_tag}"; then + log_info "✓ Image verified in GCP Artifact Registry" + assert_success "Docker promote to GCP Artifact Registry" 0 + else + log_warn "Image push succeeded but verification failed (may be due to propagation delay)" + assert_success "Docker promote to GCP Artifact Registry" 0 + fi + else + log_error "Failed to push image to GCP Artifact Registry" + assert_success "Docker promote to GCP Artifact Registry" 1 + fi + + # Cleanup local images + log_info "Cleaning up local Docker images..." + docker rmi "${source_image}" "${target_image}" &> /dev/null || true +} + +# Print test summary +print_test_summary() { + log_info "=========================================" + log_info "TEST SUMMARY" + log_info "=========================================" + log_info "Total tests: ${TESTS_TOTAL}" + log_info "Passed: ${TESTS_PASSED}" + log_info "Failed: ${TESTS_FAILED}" + log_info "=========================================" + + if [ "${TESTS_FAILED}" -eq 0 ]; then + log_info "🎉 All tests passed!" + return 0 + else + log_error "💔 Some tests failed" + return 1 + fi +} + + +# Main test execution +main() { + log_info "Starting Release Manager Test Suite" + log_info "Test bucket (unsigned): ${TEST_BUCKET}" + log_info "Test bucket (signed): ${SIGNED_TEST_BUCKET}" + log_info "Test region: ${TEST_REGION}" + log_info "Test codename: ${TEST_CODENAME}" + log_info "Random suffix: ${RANDOM_SUFFIX}" + log_info "" + + # Pre-setup required tools + presetup_tools + + aws configure set default.region "${TEST_REGION}" + + # Check prerequisites + if ! check_prerequisites; then + log_error "Prerequisites check failed. Exiting." + exit 1 + fi + + # Setup test environment + setup_test_environment + + # Trap to ensure cleanup happens + trap cleanup_test_environment EXIT + + # Always run all tests + test_list_packages + test_verify_test_packages + test_manager_verify + test_manager_promote_unsigned + test_manager_promote_signed + test_manager_publish_signed + + log_info "" + log_info "=========================================" + log_info "STARTING NON-DRY-RUN TESTS" + log_info "These tests will make actual changes!" + log_info "=========================================" + log_info "" + + test_manager_promote_unsigned_real + test_manager_promote_signed_real + test_docker_promote_to_gcp + + # Print summary and exit with appropriate code + if print_test_summary; then + exit 0 + else + exit 1 + fi +} + +# Run main function +main "$@" diff --git a/buildkite/scripts/tests/rosetta-block-race-test.sh b/buildkite/scripts/tests/rosetta-block-race-test.sh index c2fbb5776335..6b90750d659d 100755 --- a/buildkite/scripts/tests/rosetta-block-race-test.sh +++ b/buildkite/scripts/tests/rosetta-block-race-test.sh @@ -13,7 +13,8 @@ curl -L "$LEDGER_URL" | tar -x -C "$LEDGER_DIR" chmod 700 "$LEDGER_DIR" -sudo apt-get update +./buildkite/scripts/debian/update.sh + sudo apt-get install -y python3 ./scripts/rosetta/test-block-race.sh \ diff --git a/buildkite/scripts/version-linter.sh b/buildkite/scripts/version-linter.sh index 16a6a3e03615..59fb1987058c 100755 --- a/buildkite/scripts/version-linter.sh +++ b/buildkite/scripts/version-linter.sh @@ -7,7 +7,7 @@ if [[ $# -ne 1 ]]; then exit 1 fi -TESTNET_NAME="${TESTNET_NAME:-berkeley}" +TESTNET_NAME="${TESTNET_NAME:-testnet-generic}" git config --global --add safe.directory /workdir diff --git a/buildkite/src/Command/ArchiveNodeTest.dhall b/buildkite/src/Command/ArchiveNodeTest.dhall index 964305fdd234..0dc4fd99a4c5 100644 --- a/buildkite/src/Command/ArchiveNodeTest.dhall +++ b/buildkite/src/Command/ArchiveNodeTest.dhall @@ -30,7 +30,7 @@ in { step = , buildFlags = BuildFlags.Type.Instrumented } ) - "./scripts/tests/archive-node-test.sh && buildkite/scripts/upload-partial-coverage-data.sh ${key} && ls -al && ./buildkite/scripts/cache/manager.sh write archive.perf archive-node-test" + "./scripts/tests/archive-node-test.sh && buildkite/scripts/upload-partial-coverage-data.sh ${key} && ls -al && ./buildkite/scripts/cache/manager.sh write-to-dir archive.perf archive-node-test" ] , label = "Archive: Node Test" , key = key diff --git a/buildkite/src/Command/Bench/Base.dhall b/buildkite/src/Command/Bench/Base.dhall index c32b6483e27f..c49ba1ce4e95 100644 --- a/buildkite/src/Command/Bench/Base.dhall +++ b/buildkite/src/Command/Bench/Base.dhall @@ -71,6 +71,7 @@ let command ( Benchmarks.toEnvList Benchmarks.Type::{=} # [ "BRANCH=\\\${BUILDKITE_PULL_REQUEST_BASE_BRANCH:-BUILDKITE_BRANCH}" ] + # DebianVersions.overrideEnvs ) "EXTRA_ARGS=\"${spec.extraArgs}\" ./buildkite/scripts/bench/run.sh ${spec.bench} --red-threshold ${Double/show spec.redThreshold} --yellow-threshold ${Double/show diff --git a/buildkite/src/Command/Bench/LedgerApply.dhall b/buildkite/src/Command/Bench/LedgerApply.dhall index d8ffa48993d2..ee76b44e76d9 100644 --- a/buildkite/src/Command/Bench/LedgerApply.dhall +++ b/buildkite/src/Command/Bench/LedgerApply.dhall @@ -45,10 +45,12 @@ let pipeline ] , preCommands = RunInToolchain.runInToolchain - [ "DUNE_INSTRUMENT_WITH=bisect_ppx" - , "COVERALLS_TOKEN" - , "BENCHMARK_FILE=input.json" - ] + ( [ "DUNE_INSTRUMENT_WITH=bisect_ppx" + , "COVERALLS_TOKEN" + , "BENCHMARK_FILE=input.json" + ] + # DebianVersions.overrideEnvs + ) "buildkite/scripts/tests/ledger_test_apply.sh && buildkite/scripts/upload-partial-coverage-data.sh ${spec.key}" } diff --git a/buildkite/src/Command/ChainIdTest.dhall b/buildkite/src/Command/ChainIdTest.dhall new file mode 100644 index 000000000000..484be0c14177 --- /dev/null +++ b/buildkite/src/Command/ChainIdTest.dhall @@ -0,0 +1,65 @@ +let S = ../Lib/SelectFiles.dhall + +let JobSpec = ../Pipeline/JobSpec.dhall + +let Pipeline = ../Pipeline/Dsl.dhall + +let PipelineScope = ../Pipeline/Scope.dhall + +let PipelineTag = ../Pipeline/Tag.dhall + +let Command = ../Command/Base.dhall + +let RunInToolchain = ../Command/RunInToolchain.dhall + +let Size = ../Command/Size.dhall + +let Network = ../Constants/Network.dhall + +let buildTestStep = + \(network : Network.Type) + -> \(expectedChainId : Text) + -> \(dependsOn : List Command.TaggedKey.Type) + -> let networkName = Network.lowerName network + + in Command.build + Command.Config::{ + , commands = + RunInToolchain.runInToolchain + ([] : List Text) + "buildkite/scripts/test-chain-id.sh ${networkName} ${expectedChainId}" + , label = "Test chain-id for ${networkName}" + , key = "test-chain-id-${networkName}" + , target = Size.Small + , depends_on = dependsOn + } + +let makeTest = + \(name : Text) + -> \(scope : List PipelineScope.Type) + -> \(deps : List Command.TaggedKey.Type) + -> \(network : Network.Type) + -> \(expectedChainId : Text) + -> Pipeline.build + Pipeline.Config::{ + , spec = JobSpec::{ + , dirtyWhen = + [ S.strictlyStart (S.contains "src") + , S.exactly "buildkite/scripts/test-chain-id" "sh" + , S.exactly "buildkite/src/Command/ChainIdTest" "dhall" + , S.exactly "buildkite/src/Jobs/Test/ChainIdTestMainnet" "dhall" + , S.exactly "buildkite/src/Jobs/Test/ChainIdTestDevnet" "dhall" + ] + , path = "Test" + , name = name + , tags = + [ PipelineTag.Type.Fast + , PipelineTag.Type.Test + , PipelineTag.Type.Stable + ] + , scope = scope + } + , steps = [ buildTestStep network expectedChainId deps ] + } + +in { makeTest = makeTest } diff --git a/buildkite/src/Command/ConnectToNetwork.dhall b/buildkite/src/Command/ConnectToNetwork.dhall index c0b158149648..f27cf6f3ebd0 100644 --- a/buildkite/src/Command/ConnectToNetwork.dhall +++ b/buildkite/src/Command/ConnectToNetwork.dhall @@ -4,6 +4,8 @@ let Command = ./Base.dhall let Size = ./Size.dhall +let DebianVersions = ../Constants/DebianVersions.dhall + let RunInToolchain = ./RunInToolchain.dhall let B/SoftFail = B.definitions/commandStep/properties/soft_fail/Type @@ -19,7 +21,7 @@ in { step = Command.Config::{ , commands = RunInToolchain.runInToolchain - ([] : List Text) + DebianVersions.overrideEnvs "./buildkite/scripts/connect/connect-to-network.sh ${mina_suffix} ${testnet} ${wait_between_graphql_poll} ${wait_before_final_check} " , label = "Connect to ${testnet}" , soft_fail = Some soft_fail diff --git a/buildkite/src/Command/DebianModifications.dhall b/buildkite/src/Command/DebianModifications.dhall new file mode 100644 index 000000000000..536384ad1380 --- /dev/null +++ b/buildkite/src/Command/DebianModifications.dhall @@ -0,0 +1,18 @@ +let Command = ./Base.dhall + +let Size = ./Size.dhall + +let RunInToolchain = ./RunInToolchain.dhall + +in { step = + Command.build + Command.Config::{ + , commands = + RunInToolchain.runInToolchain + ([] : List Text) + "./scripts/debian/session/tests/run-deb-session-tests.sh" + , label = "Debian session script tests" + , key = "debian-session-tests" + , target = Size.Small + } + } diff --git a/buildkite/src/Command/DockerImage.dhall b/buildkite/src/Command/DockerImage.dhall index 6ccd3aab4c71..57a7f528c3de 100644 --- a/buildkite/src/Command/DockerImage.dhall +++ b/buildkite/src/Command/DockerImage.dhall @@ -46,6 +46,7 @@ let ReleaseSpec = , deb_codename : DebianVersions.DebVersion , deb_release : Text , deb_version : Text + , deb_root_folder : Text , deb_legacy_version : Text , deb_suffix : Optional Text , deb_profile : Profiles.Type @@ -60,12 +61,13 @@ let ReleaseSpec = } , default = { deps = [] : List Command.TaggedKey.Type - , network = Network.Type.Berkeley + , network = Network.Type.TestnetGeneric , arch = Arch.Type.Amd64 , version = "\\\${MINA_DOCKER_TAG}" , service = Artifacts.Type.Daemon , branch = "\\\${BUILDKITE_BRANCH}" , repo = "\\\${BUILDKITE_REPO}" + , deb_root_folder = "\\\${BUILDKITE_BUILD_ID}" , deb_codename = DebianVersions.DebVersion.Bullseye , deb_release = "unstable" , deb_version = "\\\${MINA_DEB_VERSION}" @@ -111,9 +113,8 @@ let generateStep = then " && echo Skipping local debian repo setup " - else " && ./buildkite/scripts/debian/update.sh --verbose" - ++ " && apt-get install aptly -y && ./buildkite/scripts/debian/start_local_repo.sh --arch ${Arch.lowerName - spec.arch}" + else " && ./buildkite/scripts/debian/start_local_repo.sh --root ${spec.deb_root_folder} --arch ${Arch.lowerName + spec.arch}" let maybeStopDebianRepo = if spec.no_debian @@ -175,7 +176,7 @@ let generateStep = let buildDockerCmd = "./scripts/docker/build.sh" ++ " --service ${Artifacts.dockerName spec.service}" - ++ " --network ${Network.lowerName spec.network}" + ++ " --network ${Network.debianSuffix spec.network}" ++ " --version ${spec.version}" ++ " --branch ${spec.branch}" ++ " ${maybeCacheOption} " diff --git a/buildkite/src/Command/MinaArtifact.dhall b/buildkite/src/Command/MinaArtifact.dhall index e339ae5ed117..c8321773db90 100644 --- a/buildkite/src/Command/MinaArtifact.dhall +++ b/buildkite/src/Command/MinaArtifact.dhall @@ -78,7 +78,7 @@ let MinaBuildSpec = , debVersion = DebianVersions.DebVersion.Bullseye , profile = Profiles.Type.Devnet , buildFlags = BuildFlags.Type.None - , network = Network.Type.Berkeley + , network = Network.Type.TestnetGeneric , toolchainSelectMode = Toolchain.SelectionMode.ByDebianAndArch , tags = [ PipelineTag.Type.Long, PipelineTag.Type.Release ] , scope = PipelineScope.Full @@ -142,6 +142,7 @@ let build_artifacts ] # BuildFlags.buildEnvs spec.buildFlags # spec.extraBuildEnvs + # DebianVersions.overrideEnvs ) "${spec.buildScript} ${Artifacts.toDebianNames spec.artifacts @@ -336,7 +337,7 @@ let docker_step [ DockerImage.ReleaseSpec::{ , deps = deps , service = Artifacts.Type.FunctionalTestSuite - , network = Network.Type.Berkeley + , network = Network.Type.TestnetGeneric , deb_codename = spec.debVersion , build_flags = spec.buildFlags , docker_publish = spec.docker_publish diff --git a/buildkite/src/Command/Packages/VerifyDockers.dhall b/buildkite/src/Command/Packages/VerifyDockers.dhall index d834058f094a..d778632e2c08 100644 --- a/buildkite/src/Command/Packages/VerifyDockers.dhall +++ b/buildkite/src/Command/Packages/VerifyDockers.dhall @@ -61,7 +61,7 @@ let joinNetworks ( Prelude.List.map Network.Type Text - (\(network : Network.Type) -> Network.lowerName network) + (\(network : Network.Type) -> Network.debianSuffix network) spec.networks ) diff --git a/buildkite/src/Constants/Artifacts.dhall b/buildkite/src/Constants/Artifacts.dhall index fd980af3e008..f5d55823b935 100644 --- a/buildkite/src/Constants/Artifacts.dhall +++ b/buildkite/src/Constants/Artifacts.dhall @@ -89,7 +89,7 @@ let dockerName = \(artifact : Artifact) -> merge { Daemon = "mina-daemon" - , DaemonLegacyHardfork = "mina-daemon-hardfork" + , DaemonLegacyHardfork = "mina-daemon-pre-hardfork" , DaemonAutoHardfork = "mina-daemon-auto-hardfork" , Archive = "mina-archive" , TestExecutive = "mina-test-executive" @@ -184,7 +184,7 @@ let Tag = , version = "\\\${MINA_DOCKER_TAG}" , profile = Profiles.Type.Devnet , buildFlags = BuildFlags.Type.None - , network = Network.Type.Berkeley + , network = Network.Type.TestnetGeneric , remove_profile_from_name = False } } @@ -208,19 +208,20 @@ let dockerTag = in merge { Daemon = - "${spec.version}-${Network.lowerName + "${spec.version}-${Network.debianSuffix spec.network}${profile_part}${build_flags_part}" , DaemonLegacyHardfork = - "${spec.version}-${Network.lowerName + "${spec.version}-${Network.debianSuffix spec.network}${profile_part}" , DaemonAutoHardfork = - "${spec.version}-${Network.lowerName + "${spec.version}-${Network.debianSuffix spec.network}${profile_part}" , Archive = "${spec.version}${build_flags_part}" , LogProc = "${spec.version}" , TestExecutive = "${spec.version}" , BatchTxn = "${spec.version}" - , Rosetta = "${spec.version}-${Network.lowerName spec.network}" + , Rosetta = + "${spec.version}-${Network.debianSuffix spec.network}" , ZkappTestTransaction = "${spec.version}" , FunctionalTestSuite = "${spec.version}${build_flags_part}" , Toolchain = "${spec.version}" diff --git a/buildkite/src/Constants/ContainerEnvVars.dhall b/buildkite/src/Constants/ContainerEnvVars.dhall index aeee3b7d684f..a7324b11b413 100644 --- a/buildkite/src/Constants/ContainerEnvVars.dhall +++ b/buildkite/src/Constants/ContainerEnvVars.dhall @@ -1,4 +1,5 @@ [ "BUILDKITE_AGENT_ACCESS_TOKEN" +, "BUILDKITE_AGENT_WRITE_TOKEN" , "BUILDKITE_PIPELINE_PROVIDER" , "BUILDKITE_BRANCH" , "BUILDKITE_SOURCE" diff --git a/buildkite/src/Constants/ContainerImages.dhall b/buildkite/src/Constants/ContainerImages.dhall index 745c827e9d1b..2c92ed804a3e 100644 --- a/buildkite/src/Constants/ContainerImages.dhall +++ b/buildkite/src/Constants/ContainerImages.dhall @@ -6,26 +6,26 @@ "europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/ci-toolchain-base:v4" , minaToolchainBookworm = { amd64 = - "gcr.io/o1labs-192920/mina-toolchain@sha256:f92c6f2dde5d38f0c245e58c3c462fd17d311cf1020275e0a935175377c9bb82" + "europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/mina-toolchain:bcfa4fe-bookworm-testnet-generic" , arm64 = - "gcr.io/o1labs-192920/mina-toolchain@sha256:87aacba132ae682e82f7f3edac7764a3fef0613e64e7f219e6f1085171643b91" + "europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/mina-toolchain:bcfa4fe-bookworm-testnet-generic-arm64" } , minaToolchainBullseye = { amd64 = - "gcr.io/o1labs-192920/mina-toolchain@sha256:f78963ea2e89e855f5e3b8de614a061e4c1ffc6c1c5c0b68d6c9e6329bf581c9" + "europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/mina-toolchain:bcfa4fe-bullseye-testnet-generic" , arm64 = - "gcr.io/o1labs-192920/mina-toolchain@sha256:e52f6d919ed66aa94e3c9d5965ffc348be5082b1be4a34fcc85c6344f3c545a8" + "europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/mina-toolchain:bcfa4fe-bullseye-testnet-generic-arm64" } , minaToolchainNoble = { amd64 = - "gcr.io/o1labs-192920/mina-toolchain@sha256:967431a014fbdf0d9d0628c37536575c9d018a7cbf91fab0c8da178127b74093" + "europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/mina-toolchain:bcfa4fe-noble-testnet-generic" , arm64 = - "gcr.io/o1labs-192920/mina-toolchain@sha256:e260ad8dc428e33aa677db1f81cc612f47922a754deee3706d96a62dae9d82dc" + "europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/mina-toolchain:bcfa4fe-noble-testnet-generic-arm64" } , minaToolchainJammy.amd64 = - "gcr.io/o1labs-192920/mina-toolchain@sha256:e404a57828330a6f9ff673c6e76ebd1d2e9175c1b4b594399dd3b238ddf960a1" + "europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/mina-toolchain:bcfa4fe-jammy-testnet-generic" , minaToolchain = - "gcr.io/o1labs-192920/mina-toolchain@sha256:f78963ea2e89e855f5e3b8de614a061e4c1ffc6c1c5c0b68d6c9e6329bf581c9" + "europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/mina-toolchain:bcfa4fe-bullseye-testnet-generic" , postgres = "europe-west3-docker.pkg.dev/o1labs-192920/euro-docker-repo/postgres:12.4-alpine" , xrefcheck = diff --git a/buildkite/src/Constants/DebianVersions.dhall b/buildkite/src/Constants/DebianVersions.dhall index d229f5f99251..c7af6073e00b 100644 --- a/buildkite/src/Constants/DebianVersions.dhall +++ b/buildkite/src/Constants/DebianVersions.dhall @@ -44,7 +44,7 @@ let DepsSpec = } , default = { deb_version = DebVersion.Bullseye - , network = Network.Type.Berkeley + , network = Network.Type.TestnetGeneric , profile = Profiles.Type.Devnet , build_flag = BuildFlags.Type.None , step = "build" @@ -113,10 +113,13 @@ let dirtyWhen = } debVersion +let overrideEnvs = [ "OVERRIDE_TAG", "SKIP_GITBRANCH" ] + in { DebVersion = DebVersion , capitalName = capitalName , lowerName = lowerName , dependsOn = dependsOn , dirtyWhen = dirtyWhen , DepsSpec = DepsSpec + , overrideEnvs = overrideEnvs } diff --git a/buildkite/src/Constants/DockerVersions.dhall b/buildkite/src/Constants/DockerVersions.dhall index 5278d084800d..dc79c71ad6a9 100644 --- a/buildkite/src/Constants/DockerVersions.dhall +++ b/buildkite/src/Constants/DockerVersions.dhall @@ -47,7 +47,7 @@ let DepsSpec = , default = { codename = Docker.Bullseye , prefix = "MinaArtifact" - , network = Network.Type.Berkeley + , network = Network.Type.TestnetGeneric , profile = Profiles.Type.Devnet , artifact = Artifacts.Type.Daemon , buildFlags = BuildFlags.Type.None diff --git a/buildkite/src/Constants/Network.dhall b/buildkite/src/Constants/Network.dhall index a4b04dcf7bfe..3528040c33cf 100644 --- a/buildkite/src/Constants/Network.dhall +++ b/buildkite/src/Constants/Network.dhall @@ -6,7 +6,7 @@ let Network : Type = < Devnet | Mainnet - | Berkeley + | TestnetGeneric | DevnetLegacy | MainnetLegacy | PreMesa1 @@ -18,7 +18,7 @@ let capitalName = -> merge { Devnet = "Devnet" , Mainnet = "Mainnet" - , Berkeley = "Berkeley" + , TestnetGeneric = "TestnetGeneric" , DevnetLegacy = "DevnetLegacy" , MainnetLegacy = "MainnetLegacy" , PreMesa1 = "PreMesa1" @@ -31,9 +31,22 @@ let lowerName = -> merge { Devnet = "devnet" , Mainnet = "mainnet" - , Berkeley = "berkeley" - , DevnetLegacy = "devnet_legacy" - , MainnetLegacy = "mainnet_legacy" + , TestnetGeneric = "testnet_generic" + , DevnetLegacy = "devnet_pre_hardfork" + , MainnetLegacy = "mainnet_pre_hardfork" + , PreMesa1 = "hetzner-pre-mesa-1" + , Mesa = "mesa" + } + network + +let debianSuffix = + \(network : Network) + -> merge + { Devnet = "devnet" + , Mainnet = "mainnet" + , TestnetGeneric = "testnet-generic" + , DevnetLegacy = "devnet-pre-hardfork" + , MainnetLegacy = "mainnet-pre-hardfork" , PreMesa1 = "hetzner-pre-mesa-1" , Mesa = "mesa" } @@ -44,7 +57,7 @@ let requiresMainnetBuild = -> merge { Devnet = True , Mainnet = True - , Berkeley = False + , TestnetGeneric = True , DevnetLegacy = True , MainnetLegacy = True , PreMesa1 = False @@ -71,6 +84,7 @@ let foldMinaBuildMainnetEnv = in { Type = Network , capitalName = capitalName , lowerName = lowerName + , debianSuffix = debianSuffix , requiresMainnetBuild = requiresMainnetBuild , foldMinaBuildMainnetEnv = foldMinaBuildMainnetEnv , buildMainnetEnv = buildMainnetEnv diff --git a/buildkite/src/Constants/Profiles.dhall b/buildkite/src/Constants/Profiles.dhall index 0d2274b2c420..d78e35b1fa50 100644 --- a/buildkite/src/Constants/Profiles.dhall +++ b/buildkite/src/Constants/Profiles.dhall @@ -39,7 +39,7 @@ let fromNetwork = -> merge { Devnet = Profile.Devnet , Mainnet = Profile.Mainnet - , Berkeley = Profile.Devnet + , TestnetGeneric = Profile.Devnet , DevnetLegacy = Profile.Devnet , MainnetLegacy = Profile.Mainnet , PreMesa1 = Profile.Devnet diff --git a/buildkite/src/Entrypoints/GenerateHardforkPackage.dhall b/buildkite/src/Entrypoints/GenerateHardforkPackage.dhall index e80360d885f7..f67b2226385e 100644 --- a/buildkite/src/Entrypoints/GenerateHardforkPackage.dhall +++ b/buildkite/src/Entrypoints/GenerateHardforkPackage.dhall @@ -47,7 +47,7 @@ let Spec = } , default = { codenames = [ DebianVersions.DebVersion.Bullseye ] - , network = Network.Type.Berkeley + , network = Network.Type.TestnetGeneric , genesis_timestamp = Some "2024-04-07T11:45:00Z" , config_json_gz_url = "https://storage.googleapis.com/o1labs-gitops-infrastructure/devnet/devnet-state-dump-3NK4eDgbkCjKj9fFUXVkrJXsfpfXzJySoAvrFJVCropPW7LLF14F-676026c4d4d2c18a76b357d6422a06f932c3ef4667a8fd88717f68b53fd6b2d7.json.gz" @@ -168,8 +168,9 @@ let generateDockerForCodename = codename} && source ./buildkite/scripts/export-git-env-vars.sh" , Cmd.runInDocker Cmd.Docker::{ image = image } - "curl ${spec.config_json_gz_url} > config.json.gz && gunzip config.json.gz && sed 's/B62qiburnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzmp7r7UN6X/B62qrTP88hjyU3hq6QNvFafX8sgHrsAW6v7tt5twrcugJM4bBV2eu9k/g' -i config.json && ! (FORKING_FROM_CONFIG_JSON=config.json mina-verify-packaged-fork-config ${Network.lowerName - spec.network} config.json /workdir/verification)" + "curl ${spec.config_json_gz_url} > config.json.gz && gunzip config.json.gz && sed 's/B62qiburnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzmp7r7UN6X/B62qrTP88hjyU3hq6QNvFafX8sgHrsAW6v7tt5twrcugJM4bBV2eu9k/g' -i config.json && ! (FORKING_FROM_CONFIG_JSON=/var/lib/coda/${Network.lowerName + spec.network}.json mina-verify-packaged-fork-config ${Network.lowerName + spec.network} config.json /workdir/verification)" ] , label = "Assert corrupted packaged artifacts are unverifiable" @@ -187,8 +188,9 @@ let generateDockerForCodename = codename} && source ./buildkite/scripts/export-git-env-vars.sh" , Cmd.runInDocker Cmd.Docker::{ image = image } - "curl ${spec.config_json_gz_url} > config.json.gz && gunzip config.json.gz && FORKING_FROM_CONFIG_JSON=config.json mina-verify-packaged-fork-config --network ${Network.lowerName - spec.network} --fork-config config.json --working-dir /workdir/verification ${precomputed_block_prefix_arg}" + "curl ${spec.config_json_gz_url} > config.json.gz && gunzip config.json.gz && FORKING_FROM_CONFIG_JSON=/var/lib/coda/${Network.lowerName + spec.network}.json mina-verify-packaged-fork-config --network ${Network.lowerName + spec.network} --fork-config config.json --working-dir /workdir/verification ${precomputed_block_prefix_arg}" ] , label = "Verify packaged artifacts" , key = diff --git a/buildkite/src/Entrypoints/RunSingleJob.dhall b/buildkite/src/Entrypoints/RunSingleJob.dhall new file mode 100644 index 000000000000..894eabbdbe38 --- /dev/null +++ b/buildkite/src/Entrypoints/RunSingleJob.dhall @@ -0,0 +1,61 @@ +let SelectFiles = ../Lib/SelectFiles.dhall + +let Cmd = ../Lib/Cmds.dhall + +let Command = ../Command/Base.dhall + +let Docker = ../Command/Docker/Type.dhall + +let JobSpec = ../Pipeline/JobSpec.dhall + +let Pipeline = ../Pipeline/Dsl.dhall + +let Size = ../Command/Size.dhall + +let prefixCommands = + [ Cmd.run + "git config --global http.sslCAInfo /etc/ssl/certs/ca-bundle.crt" + , Cmd.run "./buildkite/scripts/refresh_code.sh" + , Cmd.run + "./buildkite/scripts/dhall/dump_dhall_to_pipelines.sh ./buildkite/src buildkite/src/gen" + ] + +let commands + : Text -> Cmd.Type + = \(name : Text) + -> Cmd.run + ( "./buildkite/scripts/run-single-job-with-deps.sh" + ++ " --job-name " + ++ name + ++ " --jobs ./buildkite/src/gen" + ++ " --debug " + ) + +in \(args : { name : Text }) + -> let pipelineType = + Pipeline.build + Pipeline.Config::{ + , spec = JobSpec::{ + , name = "run-single-job-${args.name}" + , dirtyWhen = [ SelectFiles.everything ] + } + , steps = + [ Command.build + Command.Config::{ + , commands = prefixCommands # [ commands args.name ] + , label = "Run Single Job ${args.name}" + , key = "cmds" + , target = Size.Multi + , docker = Some Docker::{ + , image = + (../Constants/ContainerImages.dhall).toolchainBase + , environment = + [ "BUILDKITE_AGENT_ACCESS_TOKEN" + , "BUILDKITE_INCREMENTAL" + ] + } + } + ] + } + + in pipelineType.pipeline diff --git a/buildkite/src/External/Buildkite.dhall b/buildkite/src/External/Buildkite.dhall index 070ea3f3ded2..3ae00526a6cb 100644 --- a/buildkite/src/External/Buildkite.dhall +++ b/buildkite/src/External/Buildkite.dhall @@ -1 +1 @@ -https://raw.githubusercontent.com/MinaProtocol/jsonschema-to-dhall/cc6c14b615b42f35157db29077530223638dbfd9/out/top_level/Type sha256:8d6a62cc593cf00025e7db7b2ce52398ba073c385522879c5d2047f7686b3499 +./buildkite/top_level/Type sha256:8d6a62cc593cf00025e7db7b2ce52398ba073c385522879c5d2047f7686b3499 diff --git a/buildkite/src/External/Prelude.dhall b/buildkite/src/External/Prelude.dhall index f7243a3eedf4..ceafd01e84b3 100644 --- a/buildkite/src/External/Prelude.dhall +++ b/buildkite/src/External/Prelude.dhall @@ -1 +1 @@ -https://prelude.dhall-lang.org/v15.0.0/package.dhall sha256:6b90326dc39ab738d7ed87b970ba675c496bed0194071b332840a87261649dcd +./prelude/package.dhall sha256:6b90326dc39ab738d7ed87b970ba675c496bed0194071b332840a87261649dcd diff --git a/buildkite/src/External/README.md b/buildkite/src/External/README.md new file mode 100644 index 000000000000..31a5276e4446 --- /dev/null +++ b/buildkite/src/External/README.md @@ -0,0 +1,40 @@ +# External modules + +This folder consists of all external dependencies to our dhall framework. In order to preserve network throughput and protect ourselves from intermitted network failure or various protection in +github from too many requests + +### Automated update (recommended) + +Use the updater script from the repo root: + +``` +./buildkite/scripts/dhall/update_external_deps.sh +``` + +Examples: + +``` +# Update both Prelude and Buildkite (defaults) +./buildkite/scripts/dhall/update_external_deps.sh + +# Update Prelude only (optional repo + version override) +./buildkite/scripts/dhall/update_external_deps.sh --only prelude --prelude-repo dhall-lang/dhall-lang --prelude-version v15.0.0 + +# Update Buildkite only (override S3 release version) +./buildkite/scripts/dhall/update_external_deps.sh --only buildkite --buildkite-release 0.0.1 +``` + +### Prelude + +Prelude module contains dhall standard library. +Current version is v15.0.0. + +### Buildkite + +Buildkite module contains all buildkite bindings which serves the purpose of delivering buildkite primitives which we are using to express pipelines and steps in dhall. + +We are hosting them at: s3://dhall.packages.minaprotocol.com/buildkite/releases. Newest version 0.0.1. + +### Validation and formatting + +Script is also testing/format output dhall scripts running make all in buildkite/ folder. Make sure you have it and mina repo is checked out at commit which serve correct version of Makefile (usually from mainline branch) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/allowDependencyFailure/Schema b/buildkite/src/External/buildkite/definitions/allowDependencyFailure/Schema new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/allowDependencyFailure/Schema @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/allowDependencyFailure/Type b/buildkite/src/External/buildkite/definitions/allowDependencyFailure/Type new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/allowDependencyFailure/Type @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/automaticRetry/Schema b/buildkite/src/External/buildkite/definitions/automaticRetry/Schema new file mode 100644 index 000000000000..78abc74b555f --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/automaticRetry/Schema @@ -0,0 +1,7 @@ +{ Type = { exit_status : Optional (./properties/exit_status/Type ) +, limit : Optional (./properties/limit/Type ) +} +, default = { exit_status = None ((./properties/exit_status/Type )) +, limit = None ((./properties/limit/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/automaticRetry/Type b/buildkite/src/External/buildkite/definitions/automaticRetry/Type new file mode 100644 index 000000000000..cea83d4b40a7 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/automaticRetry/Type @@ -0,0 +1,3 @@ +{ exit_status : Optional (./properties/exit_status/Type ) +, limit : Optional (./properties/limit/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/automaticRetry/properties/exit_status/Schema b/buildkite/src/External/buildkite/definitions/automaticRetry/properties/exit_status/Schema new file mode 100644 index 000000000000..46849add76cc --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/automaticRetry/properties/exit_status/Schema @@ -0,0 +1 @@ +< Integer : Integer | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/automaticRetry/properties/exit_status/Type b/buildkite/src/External/buildkite/definitions/automaticRetry/properties/exit_status/Type new file mode 100644 index 000000000000..46849add76cc --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/automaticRetry/properties/exit_status/Type @@ -0,0 +1 @@ +< Integer : Integer | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/automaticRetry/properties/limit/Schema b/buildkite/src/External/buildkite/definitions/automaticRetry/properties/limit/Schema new file mode 100644 index 000000000000..2187c85491ca --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/automaticRetry/properties/limit/Schema @@ -0,0 +1 @@ +Integer \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/automaticRetry/properties/limit/Type b/buildkite/src/External/buildkite/definitions/automaticRetry/properties/limit/Type new file mode 100644 index 000000000000..2187c85491ca --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/automaticRetry/properties/limit/Type @@ -0,0 +1 @@ +Integer \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/Schema b/buildkite/src/External/buildkite/definitions/blockStep/Schema new file mode 100644 index 000000000000..95494b8cd3aa --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/Schema @@ -0,0 +1,29 @@ +{ Type = { allow_dependency_failure : Optional (./properties/allow_dependency_failure/Type ) +, block : Optional (./properties/block/Type ) +, branches : Optional (./properties/branches/Type ) +, depends_on : Optional (./properties/depends_on/Type ) +, fields : Optional (./properties/fields/Type0 ) +, id : Optional (./properties/id/Type ) +, identifier : Optional (./properties/identifier/Type ) +, `if` : Optional (./properties/if/Type ) +, key : Optional (./properties/key/Type ) +, label : Optional (./properties/label/Type ) +, name : Optional (./properties/name/Type ) +, prompt : Optional (./properties/prompt/Type ) +, type : Optional (./properties/type/Type ) +} +, default = { allow_dependency_failure = None ((./properties/allow_dependency_failure/Type )) +, block = None ((./properties/block/Type )) +, branches = None ((./properties/branches/Type )) +, depends_on = None ((./properties/depends_on/Type )) +, fields = None ((./properties/fields/Type0 )) +, id = None ((./properties/id/Type )) +, identifier = None ((./properties/identifier/Type )) +, `if` = None ((./properties/if/Type )) +, key = None ((./properties/key/Type )) +, label = None ((./properties/label/Type )) +, name = None ((./properties/name/Type )) +, prompt = None ((./properties/prompt/Type )) +, type = None ((./properties/type/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/Type b/buildkite/src/External/buildkite/definitions/blockStep/Type new file mode 100644 index 000000000000..862fe95ee7a3 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/Type @@ -0,0 +1,14 @@ +{ allow_dependency_failure : Optional (./properties/allow_dependency_failure/Type ) +, block : Optional (./properties/block/Type ) +, branches : Optional (./properties/branches/Type ) +, depends_on : Optional (./properties/depends_on/Type ) +, fields : Optional (./properties/fields/Type0 ) +, id : Optional (./properties/id/Type ) +, identifier : Optional (./properties/identifier/Type ) +, `if` : Optional (./properties/if/Type ) +, key : Optional (./properties/key/Type ) +, label : Optional (./properties/label/Type ) +, name : Optional (./properties/name/Type ) +, prompt : Optional (./properties/prompt/Type ) +, type : Optional (./properties/type/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/allow_dependency_failure/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/allow_dependency_failure/Schema new file mode 100644 index 000000000000..11a8b53da4dd --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/allow_dependency_failure/Schema @@ -0,0 +1 @@ +(../../../allowDependencyFailure/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/allow_dependency_failure/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/allow_dependency_failure/Type new file mode 100644 index 000000000000..11a8b53da4dd --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/allow_dependency_failure/Type @@ -0,0 +1 @@ +(../../../allowDependencyFailure/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/block/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/block/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/block/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/block/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/block/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/block/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/branches/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/branches/Schema new file mode 100644 index 000000000000..8b7819bab61a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/branches/Schema @@ -0,0 +1 @@ +(../../../branches/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/branches/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/branches/Type new file mode 100644 index 000000000000..8b7819bab61a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/branches/Type @@ -0,0 +1 @@ +(../../../branches/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/depends_on/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/depends_on/Schema new file mode 100644 index 000000000000..8dcf7db37316 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/depends_on/Schema @@ -0,0 +1 @@ +(../../../dependsOn/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/depends_on/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/depends_on/Type new file mode 100644 index 000000000000..8dcf7db37316 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/depends_on/Type @@ -0,0 +1 @@ +(../../../dependsOn/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Schema new file mode 100644 index 000000000000..2814d46dd586 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Schema @@ -0,0 +1 @@ +< Fields/Type : (./union/Type ) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Schema0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Schema0 new file mode 100644 index 000000000000..a64d0679699f --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Schema0 @@ -0,0 +1 @@ +List (./properties/fields/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Type new file mode 100644 index 000000000000..2814d46dd586 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Type @@ -0,0 +1 @@ +< Fields/Type : (./union/Type ) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Type0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Type0 new file mode 100644 index 000000000000..a64d0679699f --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/Type0 @@ -0,0 +1 @@ +List (./properties/fields/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/Schema new file mode 100644 index 000000000000..9d86dcc68608 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/Schema @@ -0,0 +1,17 @@ +{ Type = { default : Optional (./properties/default/Type0 ) +, hint : Optional (./properties/hint/Type0 ) +, key : Optional (./properties/key/Type0 ) +, multiple : Optional (./properties/multiple/Type ) +, options : Optional (./properties/options/Type0 ) +, required : Optional (./properties/required/Type0 ) +, select : Optional (./properties/select/Type ) +} +, default = { default = None ((./properties/default/Type0 )) +, hint = None ((./properties/hint/Type0 )) +, key = None ((./properties/key/Type0 )) +, multiple = None ((./properties/multiple/Type )) +, options = None ((./properties/options/Type0 )) +, required = None ((./properties/required/Type0 )) +, select = None ((./properties/select/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/Type new file mode 100644 index 000000000000..caffe24f3fd7 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/Type @@ -0,0 +1,8 @@ +{ default : Optional (./properties/default/Type0 ) +, hint : Optional (./properties/hint/Type0 ) +, key : Optional (./properties/key/Type0 ) +, multiple : Optional (./properties/multiple/Type ) +, options : Optional (./properties/options/Type0 ) +, required : Optional (./properties/required/Type0 ) +, select : Optional (./properties/select/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Schema0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Schema0 new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Schema0 @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Type0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Type0 new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/default/Type0 @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Schema0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Schema0 new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Schema0 @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Type0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Type0 new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/hint/Type0 @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Schema0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Schema0 new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Schema0 @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Type0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Type0 new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/key/Type0 @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/multiple/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/multiple/Schema new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/multiple/Schema @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/multiple/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/multiple/Type new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/multiple/Type @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Schema new file mode 100644 index 000000000000..dabc2619ab56 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Schema @@ -0,0 +1,11 @@ +{ Type = { hint : Optional (./properties/hint/Type ) +, label : Optional (./properties/label/Type ) +, required : Optional (./properties/required/Type ) +, value : Optional (./properties/value/Type ) +} +, default = { hint = None ((./properties/hint/Type )) +, label = None ((./properties/label/Type )) +, required = None ((./properties/required/Type )) +, value = None ((./properties/value/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Schema0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Schema0 new file mode 100644 index 000000000000..4bae4400efea --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Schema0 @@ -0,0 +1 @@ +List (./properties/options/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Type new file mode 100644 index 000000000000..105e7f5ca684 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Type @@ -0,0 +1,5 @@ +{ hint : Optional (./properties/hint/Type ) +, label : Optional (./properties/label/Type ) +, required : Optional (./properties/required/Type ) +, value : Optional (./properties/value/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Type0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Type0 new file mode 100644 index 000000000000..4bae4400efea --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/Type0 @@ -0,0 +1 @@ +List (./properties/options/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/hint/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/hint/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/hint/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/hint/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/hint/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/hint/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/label/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/label/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/label/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/label/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/label/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/label/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/required/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/required/Schema new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/required/Schema @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/required/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/required/Type new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/required/Type @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/value/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/value/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/value/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/value/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/value/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/options/properties/value/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Schema new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Schema @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Schema0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Schema0 new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Schema0 @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Type new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Type @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Type0 b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Type0 new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/required/Type0 @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/select/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/select/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/select/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/select/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/select/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/select/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/text/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/text/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/text/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/text/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/text/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/fields/union/properties/text/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/id/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/id/Schema new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/id/Schema @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/id/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/id/Type new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/id/Type @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/identifier/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/identifier/Schema new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/identifier/Schema @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/identifier/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/identifier/Type new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/identifier/Type @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/if/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/if/Schema new file mode 100644 index 000000000000..e49159a0a651 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/if/Schema @@ -0,0 +1 @@ +(../../../if/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/if/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/if/Type new file mode 100644 index 000000000000..e49159a0a651 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/if/Type @@ -0,0 +1 @@ +(../../../if/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/key/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/key/Schema new file mode 100644 index 000000000000..27fb7f5487a9 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/key/Schema @@ -0,0 +1 @@ +(../../../key/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/key/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/key/Type new file mode 100644 index 000000000000..27fb7f5487a9 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/key/Type @@ -0,0 +1 @@ +(../../../key/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/label/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/label/Schema new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/label/Schema @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/label/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/label/Type new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/label/Type @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/name/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/name/Schema new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/name/Schema @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/name/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/name/Type new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/name/Type @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/prompt/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/prompt/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/prompt/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/prompt/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/prompt/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/prompt/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/type/Schema b/buildkite/src/External/buildkite/definitions/blockStep/properties/type/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/type/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/blockStep/properties/type/Type b/buildkite/src/External/buildkite/definitions/blockStep/properties/type/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/blockStep/properties/type/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/branches/Schema b/buildkite/src/External/buildkite/definitions/branches/Schema new file mode 100644 index 000000000000..2b181a60cbf6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/branches/Schema @@ -0,0 +1 @@ +< ListString : List Text | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/branches/Type b/buildkite/src/External/buildkite/definitions/branches/Type new file mode 100644 index 000000000000..2b181a60cbf6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/branches/Type @@ -0,0 +1 @@ +< ListString : List Text | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/Schema b/buildkite/src/External/buildkite/definitions/commandStep/Schema new file mode 100644 index 000000000000..facf5aa305ce --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/Schema @@ -0,0 +1,48 @@ +\(var6 : Type) -> \(var7 : Type) -> \(var12 : Type) -> \(var13 : Type) -> { Type = { agents : Optional (./properties/agents/Type var6) +, allow_dependency_failure : Optional (./properties/allow_dependency_failure/Type ) +, artifact_paths : Optional (./properties/artifact_paths/Type ) +, branches : Optional (./properties/branches/Type ) +, command : Optional (./properties/command/Type ) +, commands : (./properties/commands/Type ) +, concurrency : Optional (./properties/concurrency/Type ) +, concurrency_group : Optional (./properties/concurrency_group/Type ) +, depends_on : Optional (./properties/depends_on/Type ) +, env : Optional (./properties/env/Type var7) +, id : Optional (./properties/id/Type ) +, identifier : Optional (./properties/identifier/Type ) +, `if` : Optional (./properties/if/Type ) +, key : Optional (./properties/key/Type ) +, label : Optional (./properties/label/Type ) +, name : Optional (./properties/name/Type ) +, parallelism : Optional (./properties/parallelism/Type ) +, plugins : Optional (./properties/plugins/Type var12 var13) +, retry : Optional (./properties/retry/Type ) +, skip : Optional (./properties/skip/Type ) +, soft_fail : Optional (./properties/soft_fail/Type ) +, timeout_in_minutes : Optional (./properties/timeout_in_minutes/Type ) +, type : Optional (./properties/type/Type ) +} +, default = { agents = None ((./properties/agents/Type var6)) +, allow_dependency_failure = None ((./properties/allow_dependency_failure/Type )) +, artifact_paths = None ((./properties/artifact_paths/Type )) +, branches = None ((./properties/branches/Type )) +, command = None ((./properties/command/Type )) +, concurrency = None ((./properties/concurrency/Type )) +, concurrency_group = None ((./properties/concurrency_group/Type )) +, depends_on = None ((./properties/depends_on/Type )) +, env = None ((./properties/env/Type var7)) +, id = None ((./properties/id/Type )) +, identifier = None ((./properties/identifier/Type )) +, `if` = None ((./properties/if/Type )) +, key = None ((./properties/key/Type )) +, label = None ((./properties/label/Type )) +, name = None ((./properties/name/Type )) +, parallelism = None ((./properties/parallelism/Type )) +, plugins = None ((./properties/plugins/Type var12 var13)) +, retry = None ((./properties/retry/Type )) +, skip = None ((./properties/skip/Type )) +, soft_fail = None ((./properties/soft_fail/Type )) +, timeout_in_minutes = None ((./properties/timeout_in_minutes/Type )) +, type = None ((./properties/type/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/Type b/buildkite/src/External/buildkite/definitions/commandStep/Type new file mode 100644 index 000000000000..a16db0322f98 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/Type @@ -0,0 +1,24 @@ +\(var6 : Type) -> \(var7 : Type) -> \(var12 : Type) -> \(var13 : Type) -> { agents : Optional (./properties/agents/Type var6) +, allow_dependency_failure : Optional (./properties/allow_dependency_failure/Type ) +, artifact_paths : Optional (./properties/artifact_paths/Type ) +, branches : Optional (./properties/branches/Type ) +, command : Optional (./properties/command/Type ) +, commands : (./properties/commands/Type ) +, concurrency : Optional (./properties/concurrency/Type ) +, concurrency_group : Optional (./properties/concurrency_group/Type ) +, depends_on : Optional (./properties/depends_on/Type ) +, env : Optional (./properties/env/Type var7) +, id : Optional (./properties/id/Type ) +, identifier : Optional (./properties/identifier/Type ) +, `if` : Optional (./properties/if/Type ) +, key : Optional (./properties/key/Type ) +, label : Optional (./properties/label/Type ) +, name : Optional (./properties/name/Type ) +, parallelism : Optional (./properties/parallelism/Type ) +, plugins : Optional (./properties/plugins/Type var12 var13) +, retry : Optional (./properties/retry/Type ) +, skip : Optional (./properties/skip/Type ) +, soft_fail : Optional (./properties/soft_fail/Type ) +, timeout_in_minutes : Optional (./properties/timeout_in_minutes/Type ) +, type : Optional (./properties/type/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/agents/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/agents/Schema new file mode 100644 index 000000000000..309990c9ee2a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/agents/Schema @@ -0,0 +1 @@ +\(var0 : Type) -> List { mapKey: Text, mapValue: var0 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/agents/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/agents/Type new file mode 100644 index 000000000000..309990c9ee2a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/agents/Type @@ -0,0 +1 @@ +\(var0 : Type) -> List { mapKey: Text, mapValue: var0 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/allow_dependency_failure/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/allow_dependency_failure/Schema new file mode 100644 index 000000000000..11a8b53da4dd --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/allow_dependency_failure/Schema @@ -0,0 +1 @@ +(../../../allowDependencyFailure/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/allow_dependency_failure/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/allow_dependency_failure/Type new file mode 100644 index 000000000000..11a8b53da4dd --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/allow_dependency_failure/Type @@ -0,0 +1 @@ +(../../../allowDependencyFailure/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/artifact_paths/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/artifact_paths/Schema new file mode 100644 index 000000000000..2b181a60cbf6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/artifact_paths/Schema @@ -0,0 +1 @@ +< ListString : List Text | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/artifact_paths/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/artifact_paths/Type new file mode 100644 index 000000000000..2b181a60cbf6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/artifact_paths/Type @@ -0,0 +1 @@ +< ListString : List Text | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/branches/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/branches/Schema new file mode 100644 index 000000000000..8b7819bab61a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/branches/Schema @@ -0,0 +1 @@ +(../../../branches/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/branches/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/branches/Type new file mode 100644 index 000000000000..8b7819bab61a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/branches/Type @@ -0,0 +1 @@ +(../../../branches/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/command/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/command/Schema new file mode 100644 index 000000000000..2b181a60cbf6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/command/Schema @@ -0,0 +1 @@ +< ListString : List Text | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/command/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/command/Type new file mode 100644 index 000000000000..2b181a60cbf6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/command/Type @@ -0,0 +1 @@ +< ListString : List Text | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/commands/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/commands/Schema new file mode 100644 index 000000000000..adc9accca5e6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/commands/Schema @@ -0,0 +1 @@ +(../command/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/commands/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/commands/Type new file mode 100644 index 000000000000..adc9accca5e6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/commands/Type @@ -0,0 +1 @@ +(../command/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency/Schema new file mode 100644 index 000000000000..2187c85491ca --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency/Schema @@ -0,0 +1 @@ +Integer \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency/Type new file mode 100644 index 000000000000..2187c85491ca --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency/Type @@ -0,0 +1 @@ +Integer \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency_group/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency_group/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency_group/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency_group/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency_group/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/concurrency_group/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/depends_on/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/depends_on/Schema new file mode 100644 index 000000000000..8dcf7db37316 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/depends_on/Schema @@ -0,0 +1 @@ +(../../../dependsOn/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/depends_on/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/depends_on/Type new file mode 100644 index 000000000000..8dcf7db37316 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/depends_on/Type @@ -0,0 +1 @@ +(../../../dependsOn/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/env/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/env/Schema new file mode 100644 index 000000000000..ef407e5d2978 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/env/Schema @@ -0,0 +1 @@ +\(var1 : Type) -> List { mapKey: Text, mapValue: var1 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/env/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/env/Type new file mode 100644 index 000000000000..ef407e5d2978 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/env/Type @@ -0,0 +1 @@ +\(var1 : Type) -> List { mapKey: Text, mapValue: var1 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/id/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/id/Schema new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/id/Schema @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/id/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/id/Type new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/id/Type @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/identifier/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/identifier/Schema new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/identifier/Schema @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/identifier/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/identifier/Type new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/identifier/Type @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/if/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/if/Schema new file mode 100644 index 000000000000..e49159a0a651 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/if/Schema @@ -0,0 +1 @@ +(../../../if/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/if/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/if/Type new file mode 100644 index 000000000000..e49159a0a651 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/if/Type @@ -0,0 +1 @@ +(../../../if/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/key/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/key/Schema new file mode 100644 index 000000000000..27fb7f5487a9 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/key/Schema @@ -0,0 +1 @@ +(../../../key/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/key/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/key/Type new file mode 100644 index 000000000000..27fb7f5487a9 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/key/Type @@ -0,0 +1 @@ +(../../../key/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/label/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/label/Schema new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/label/Schema @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/label/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/label/Type new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/label/Type @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/name/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/name/Schema new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/name/Schema @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/name/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/name/Type new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/name/Type @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/parallelism/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/parallelism/Schema new file mode 100644 index 000000000000..2187c85491ca --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/parallelism/Schema @@ -0,0 +1 @@ +Integer \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/parallelism/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/parallelism/Type new file mode 100644 index 000000000000..2187c85491ca --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/parallelism/Type @@ -0,0 +1 @@ +Integer \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/Schema new file mode 100644 index 000000000000..a0a89ff78c39 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/Schema @@ -0,0 +1 @@ +\(var8 : Type) -> \(var9 : Type) -> < ListPlugins/Type : List (./union/Type var8) | Plugins/Type : (./union/Type var9) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/Type new file mode 100644 index 000000000000..a0a89ff78c39 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/Type @@ -0,0 +1 @@ +\(var8 : Type) -> \(var9 : Type) -> < ListPlugins/Type : List (./union/Type var8) | Plugins/Type : (./union/Type var9) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/union/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/union/Schema new file mode 100644 index 000000000000..6801314e5752 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/union/Schema @@ -0,0 +1 @@ +\(var2 : Type) -> List { mapKey: Text, mapValue: var2 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/union/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/union/Type new file mode 100644 index 000000000000..6801314e5752 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/plugins/union/Type @@ -0,0 +1 @@ +\(var2 : Type) -> List { mapKey: Text, mapValue: var2 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/Schema new file mode 100644 index 000000000000..4fc37dff504c --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/Schema @@ -0,0 +1,7 @@ +{ Type = { automatic : Optional (./properties/automatic/Type ) +, manual : Optional (./properties/manual/Type ) +} +, default = { automatic = None ((./properties/automatic/Type )) +, manual = None ((./properties/manual/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/Type new file mode 100644 index 000000000000..6b9c43494a0e --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/Type @@ -0,0 +1,3 @@ +{ automatic : Optional (./properties/automatic/Type ) +, manual : Optional (./properties/manual/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/automatic/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/automatic/Schema new file mode 100644 index 000000000000..6abcfd5db241 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/automatic/Schema @@ -0,0 +1 @@ +< AutomaticRetry/Type : (../../../../../automaticRetry/Type ) | Boolean : Bool | ListAutomaticRetry/Type : List (../../../../../automaticRetry/Type ) > diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/automatic/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/automatic/Type new file mode 100644 index 000000000000..6abcfd5db241 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/automatic/Type @@ -0,0 +1 @@ +< AutomaticRetry/Type : (../../../../../automaticRetry/Type ) | Boolean : Bool | ListAutomaticRetry/Type : List (../../../../../automaticRetry/Type ) > diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/Schema new file mode 100644 index 000000000000..f57c5b4c86cd --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/Schema @@ -0,0 +1 @@ +< Boolean : Bool | Manual/Type : (./union/Type ) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/Type new file mode 100644 index 000000000000..f57c5b4c86cd --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/Type @@ -0,0 +1 @@ +< Boolean : Bool | Manual/Type : (./union/Type ) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/Schema new file mode 100644 index 000000000000..9e14b38c828f --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/Schema @@ -0,0 +1,9 @@ +{ Type = { allowed : Optional (./properties/allowed/Type ) +, permit_on_passed : Optional (./properties/permit_on_passed/Type ) +, reason : Optional (./properties/reason/Type ) +} +, default = { allowed = None ((./properties/allowed/Type )) +, permit_on_passed = None ((./properties/permit_on_passed/Type )) +, reason = None ((./properties/reason/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/Type new file mode 100644 index 000000000000..a3107b4a9abd --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/Type @@ -0,0 +1,4 @@ +{ allowed : Optional (./properties/allowed/Type ) +, permit_on_passed : Optional (./properties/permit_on_passed/Type ) +, reason : Optional (./properties/reason/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/allowed/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/allowed/Schema new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/allowed/Schema @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/allowed/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/allowed/Type new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/allowed/Type @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/permit_on_passed/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/permit_on_passed/Schema new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/permit_on_passed/Schema @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/permit_on_passed/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/permit_on_passed/Type new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/permit_on_passed/Type @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/reason/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/reason/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/reason/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/reason/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/reason/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/retry/properties/manual/union/properties/reason/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/skip/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/skip/Schema new file mode 100644 index 000000000000..966731a1b961 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/skip/Schema @@ -0,0 +1 @@ +< Boolean : Bool | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/skip/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/skip/Type new file mode 100644 index 000000000000..966731a1b961 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/skip/Type @@ -0,0 +1 @@ +< Boolean : Bool | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/Schema new file mode 100644 index 000000000000..0db112d20463 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/Schema @@ -0,0 +1 @@ +< Boolean : Bool | ListSoft_fail/Type : List (./union/Type ) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/Type new file mode 100644 index 000000000000..0db112d20463 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/Type @@ -0,0 +1 @@ +< Boolean : Bool | ListSoft_fail/Type : List (./union/Type ) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/Schema new file mode 100644 index 000000000000..acde9907bec3 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/Schema @@ -0,0 +1,5 @@ +{ Type = { exit_status : Optional (./properties/exit_status/Type ) +} +, default = { exit_status = None ((./properties/exit_status/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/Type new file mode 100644 index 000000000000..d67d90a295d2 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/Type @@ -0,0 +1,2 @@ +{ exit_status : Optional (./properties/exit_status/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/properties/exit_status/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/properties/exit_status/Schema new file mode 100644 index 000000000000..6253e12bed11 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/properties/exit_status/Schema @@ -0,0 +1 @@ +< Number : Natural | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/properties/exit_status/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/properties/exit_status/Type new file mode 100644 index 000000000000..6253e12bed11 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/soft_fail/union/properties/exit_status/Type @@ -0,0 +1 @@ +< Number : Natural | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/timeout_in_minutes/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/timeout_in_minutes/Schema new file mode 100644 index 000000000000..2187c85491ca --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/timeout_in_minutes/Schema @@ -0,0 +1 @@ +Integer \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/timeout_in_minutes/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/timeout_in_minutes/Type new file mode 100644 index 000000000000..2187c85491ca --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/timeout_in_minutes/Type @@ -0,0 +1 @@ +Integer \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/type/Schema b/buildkite/src/External/buildkite/definitions/commandStep/properties/type/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/type/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/commandStep/properties/type/Type b/buildkite/src/External/buildkite/definitions/commandStep/properties/type/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/commandStep/properties/type/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/dependsOn/Schema b/buildkite/src/External/buildkite/definitions/dependsOn/Schema new file mode 100644 index 000000000000..804ad64fbdc4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/dependsOn/Schema @@ -0,0 +1 @@ +< ListDependsOn/Type : List (./union/Type ) | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/dependsOn/Type b/buildkite/src/External/buildkite/definitions/dependsOn/Type new file mode 100644 index 000000000000..804ad64fbdc4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/dependsOn/Type @@ -0,0 +1 @@ +< ListDependsOn/Type : List (./union/Type ) | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/dependsOn/union/Schema b/buildkite/src/External/buildkite/definitions/dependsOn/union/Schema new file mode 100644 index 000000000000..79ee5fba2c95 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/dependsOn/union/Schema @@ -0,0 +1 @@ +< DependsOn/Type : (./union/Type ) | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/dependsOn/union/Type b/buildkite/src/External/buildkite/definitions/dependsOn/union/Type new file mode 100644 index 000000000000..79ee5fba2c95 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/dependsOn/union/Type @@ -0,0 +1 @@ +< DependsOn/Type : (./union/Type ) | String : Text > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/dependsOn/union/union/Schema b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/Schema new file mode 100644 index 000000000000..0706ef0982ee --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/Schema @@ -0,0 +1,7 @@ +{ Type = { allow_failure : Optional (./properties/allow_failure/Type ) +, step : Optional (./properties/step/Type ) +} +, default = { allow_failure = None ((./properties/allow_failure/Type )) +, step = None ((./properties/step/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/dependsOn/union/union/Type b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/Type new file mode 100644 index 000000000000..98bc32756ef0 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/Type @@ -0,0 +1,3 @@ +{ allow_failure : Optional (./properties/allow_failure/Type ) +, step : Optional (./properties/step/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/allow_failure/Schema b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/allow_failure/Schema new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/allow_failure/Schema @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/allow_failure/Type b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/allow_failure/Type new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/allow_failure/Type @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/step/Schema b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/step/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/step/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/step/Type b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/step/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/dependsOn/union/union/properties/step/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/Schema b/buildkite/src/External/buildkite/definitions/groupStep/Schema new file mode 100644 index 000000000000..a3aec85b409f --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/Schema @@ -0,0 +1,17 @@ +\(var52 : Type) -> \(var53 : Type) -> \(var82 : Type) -> \(var83 : Type) -> \(var84 : Type) -> \(var85 : Type) -> \(var116 : Type) -> \(var117 : Type) -> \(var118 : Type) -> \(var119 : Type) -> \(var120 : Type) -> \(var121 : Type) -> \(var144 : Type) -> \(var145 : Type) -> \(var146 : Type) -> \(var147 : Type) -> \(var148 : Type) -> \(var149 : Type) -> \(var150 : Type) -> \(var151 : Type) -> { Type = { group : Optional (./properties/group/Type ) +, id : Optional (./properties/id/Type ) +, identifier : Optional (./properties/identifier/Type ) +, label : Optional (./properties/label/Type ) +, name : Optional (./properties/name/Type ) +, steps : Optional (./properties/steps/Type0 var52 var53 var82 var83 var84 var85 var116 var117 var118 var119 var120 var121 var144 var145 var146 var147 var148 var149 var150 var151) +, type : Optional (./properties/type/Type ) +} +, default = { group = None ((./properties/group/Type )) +, id = None ((./properties/id/Type )) +, identifier = None ((./properties/identifier/Type )) +, label = None ((./properties/label/Type )) +, name = None ((./properties/name/Type )) +, steps = None ((./properties/steps/Type0 var52 var53 var82 var83 var84 var85 var116 var117 var118 var119 var120 var121 var144 var145 var146 var147 var148 var149 var150 var151)) +, type = None ((./properties/type/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/Type b/buildkite/src/External/buildkite/definitions/groupStep/Type new file mode 100644 index 000000000000..6cc61a713b8b --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/Type @@ -0,0 +1,8 @@ +\(var52 : Type) -> \(var53 : Type) -> \(var82 : Type) -> \(var83 : Type) -> \(var84 : Type) -> \(var85 : Type) -> \(var116 : Type) -> \(var117 : Type) -> \(var118 : Type) -> \(var119 : Type) -> \(var120 : Type) -> \(var121 : Type) -> \(var144 : Type) -> \(var145 : Type) -> \(var146 : Type) -> \(var147 : Type) -> \(var148 : Type) -> \(var149 : Type) -> \(var150 : Type) -> \(var151 : Type) -> { group : Optional (./properties/group/Type ) +, id : Optional (./properties/id/Type ) +, identifier : Optional (./properties/identifier/Type ) +, label : Optional (./properties/label/Type ) +, name : Optional (./properties/name/Type ) +, steps : Optional (./properties/steps/Type0 var52 var53 var82 var83 var84 var85 var116 var117 var118 var119 var120 var121 var144 var145 var146 var147 var148 var149 var150 var151) +, type : Optional (./properties/type/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/group/Schema b/buildkite/src/External/buildkite/definitions/groupStep/properties/group/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/group/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/group/Type b/buildkite/src/External/buildkite/definitions/groupStep/properties/group/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/group/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/id/Schema b/buildkite/src/External/buildkite/definitions/groupStep/properties/id/Schema new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/id/Schema @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/id/Type b/buildkite/src/External/buildkite/definitions/groupStep/properties/id/Type new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/id/Type @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/identifier/Schema b/buildkite/src/External/buildkite/definitions/groupStep/properties/identifier/Schema new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/identifier/Schema @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/identifier/Type b/buildkite/src/External/buildkite/definitions/groupStep/properties/identifier/Type new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/identifier/Type @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/label/Schema b/buildkite/src/External/buildkite/definitions/groupStep/properties/label/Schema new file mode 100644 index 000000000000..6ce71d51a5a6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/label/Schema @@ -0,0 +1 @@ +(../group/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/label/Type b/buildkite/src/External/buildkite/definitions/groupStep/properties/label/Type new file mode 100644 index 000000000000..6ce71d51a5a6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/label/Type @@ -0,0 +1 @@ +(../group/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/name/Schema b/buildkite/src/External/buildkite/definitions/groupStep/properties/name/Schema new file mode 100644 index 000000000000..6ce71d51a5a6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/name/Schema @@ -0,0 +1 @@ +(../group/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/name/Type b/buildkite/src/External/buildkite/definitions/groupStep/properties/name/Type new file mode 100644 index 000000000000..6ce71d51a5a6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/name/Type @@ -0,0 +1 @@ +(../group/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Schema b/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Schema new file mode 100644 index 000000000000..69ce6f1e1fbf --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Schema @@ -0,0 +1 @@ +\(var14 : Type) -> \(var15 : Type) -> \(var26 : Type) -> \(var27 : Type) -> \(var28 : Type) -> \(var29 : Type) -> \(var54 : Type) -> \(var55 : Type) -> \(var56 : Type) -> \(var57 : Type) -> \(var58 : Type) -> \(var59 : Type) -> \(var86 : Type) -> \(var87 : Type) -> \(var88 : Type) -> \(var89 : Type) -> \(var90 : Type) -> \(var91 : Type) -> \(var92 : Type) -> \(var93 : Type) -> < CommandStep/Type : (../../../../commandStep/Type var14 var15 var26 var27) | NestedCommandStep/Type : (../../../../nestedCommandStep/Type var54 var55 var56 var57 var58 var59 var86 var87 var88 var89 var90 var91) | NestedTriggerStep/Type : (../../../../nestedTriggerStep/Type var92 var93) | StringBlockStep/Type : (../../../../stringBlockStep/Type ) | TriggerStep/Type : (../../../../triggerStep/Type var28 var29) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Schema0 b/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Schema0 new file mode 100644 index 000000000000..aa9a79dfcbe1 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Schema0 @@ -0,0 +1 @@ +\(var30 : Type) -> \(var31 : Type) -> \(var60 : Type) -> \(var61 : Type) -> \(var62 : Type) -> \(var63 : Type) -> \(var94 : Type) -> \(var95 : Type) -> \(var96 : Type) -> \(var97 : Type) -> \(var98 : Type) -> \(var99 : Type) -> \(var122 : Type) -> \(var123 : Type) -> \(var124 : Type) -> \(var125 : Type) -> \(var126 : Type) -> \(var127 : Type) -> \(var128 : Type) -> \(var129 : Type) -> List (./properties/steps/Type var30 var31 var60 var61 var62 var63 var94 var95 var96 var97 var98 var99 var122 var123 var124 var125 var126 var127 var128 var129) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Type b/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Type new file mode 100644 index 000000000000..69ce6f1e1fbf --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Type @@ -0,0 +1 @@ +\(var14 : Type) -> \(var15 : Type) -> \(var26 : Type) -> \(var27 : Type) -> \(var28 : Type) -> \(var29 : Type) -> \(var54 : Type) -> \(var55 : Type) -> \(var56 : Type) -> \(var57 : Type) -> \(var58 : Type) -> \(var59 : Type) -> \(var86 : Type) -> \(var87 : Type) -> \(var88 : Type) -> \(var89 : Type) -> \(var90 : Type) -> \(var91 : Type) -> \(var92 : Type) -> \(var93 : Type) -> < CommandStep/Type : (../../../../commandStep/Type var14 var15 var26 var27) | NestedCommandStep/Type : (../../../../nestedCommandStep/Type var54 var55 var56 var57 var58 var59 var86 var87 var88 var89 var90 var91) | NestedTriggerStep/Type : (../../../../nestedTriggerStep/Type var92 var93) | StringBlockStep/Type : (../../../../stringBlockStep/Type ) | TriggerStep/Type : (../../../../triggerStep/Type var28 var29) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Type0 b/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Type0 new file mode 100644 index 000000000000..aa9a79dfcbe1 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/steps/Type0 @@ -0,0 +1 @@ +\(var30 : Type) -> \(var31 : Type) -> \(var60 : Type) -> \(var61 : Type) -> \(var62 : Type) -> \(var63 : Type) -> \(var94 : Type) -> \(var95 : Type) -> \(var96 : Type) -> \(var97 : Type) -> \(var98 : Type) -> \(var99 : Type) -> \(var122 : Type) -> \(var123 : Type) -> \(var124 : Type) -> \(var125 : Type) -> \(var126 : Type) -> \(var127 : Type) -> \(var128 : Type) -> \(var129 : Type) -> List (./properties/steps/Type var30 var31 var60 var61 var62 var63 var94 var95 var96 var97 var98 var99 var122 var123 var124 var125 var126 var127 var128 var129) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/type/Schema b/buildkite/src/External/buildkite/definitions/groupStep/properties/type/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/type/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/groupStep/properties/type/Type b/buildkite/src/External/buildkite/definitions/groupStep/properties/type/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/groupStep/properties/type/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/identifier/Schema b/buildkite/src/External/buildkite/definitions/identifier/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/identifier/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/identifier/Type b/buildkite/src/External/buildkite/definitions/identifier/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/identifier/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/if/Schema b/buildkite/src/External/buildkite/definitions/if/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/if/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/if/Type b/buildkite/src/External/buildkite/definitions/if/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/if/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/key/Schema b/buildkite/src/External/buildkite/definitions/key/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/key/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/key/Type b/buildkite/src/External/buildkite/definitions/key/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/key/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/label/Schema b/buildkite/src/External/buildkite/definitions/label/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/label/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/label/Type b/buildkite/src/External/buildkite/definitions/label/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/label/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedBlockStep/Schema b/buildkite/src/External/buildkite/definitions/nestedBlockStep/Schema new file mode 100644 index 000000000000..108172cb4b45 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedBlockStep/Schema @@ -0,0 +1,5 @@ +{ Type = { block : Optional (./properties/block/Type ) +} +, default = { block = None ((./properties/block/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedBlockStep/Type b/buildkite/src/External/buildkite/definitions/nestedBlockStep/Type new file mode 100644 index 000000000000..8151f50bbb3c --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedBlockStep/Type @@ -0,0 +1,2 @@ +{ block : Optional (./properties/block/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedBlockStep/properties/block/Schema b/buildkite/src/External/buildkite/definitions/nestedBlockStep/properties/block/Schema new file mode 100644 index 000000000000..3307d6ea4420 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedBlockStep/properties/block/Schema @@ -0,0 +1 @@ +(../../../blockStep/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedBlockStep/properties/block/Type b/buildkite/src/External/buildkite/definitions/nestedBlockStep/properties/block/Type new file mode 100644 index 000000000000..3307d6ea4420 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedBlockStep/properties/block/Type @@ -0,0 +1 @@ +(../../../blockStep/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedCommandStep/Schema b/buildkite/src/External/buildkite/definitions/nestedCommandStep/Schema new file mode 100644 index 000000000000..3c4464ed33d1 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedCommandStep/Schema @@ -0,0 +1,9 @@ +\(var32 : Type) -> \(var33 : Type) -> \(var34 : Type) -> \(var35 : Type) -> \(var36 : Type) -> \(var37 : Type) -> \(var64 : Type) -> \(var65 : Type) -> \(var66 : Type) -> \(var67 : Type) -> \(var68 : Type) -> \(var69 : Type) -> { Type = { command : Optional (./properties/command/Type var32 var33 var64 var65) +, commands : Optional (./properties/commands/Type var34 var35 var66 var67) +, script : Optional (./properties/script/Type var36 var37 var68 var69) +} +, default = { command = None ((./properties/command/Type var32 var33 var64 var65)) +, commands = None ((./properties/commands/Type var34 var35 var66 var67)) +, script = None ((./properties/script/Type var36 var37 var68 var69)) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedCommandStep/Type b/buildkite/src/External/buildkite/definitions/nestedCommandStep/Type new file mode 100644 index 000000000000..6fe6022dd0b0 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedCommandStep/Type @@ -0,0 +1,4 @@ +\(var32 : Type) -> \(var33 : Type) -> \(var34 : Type) -> \(var35 : Type) -> \(var36 : Type) -> \(var37 : Type) -> \(var64 : Type) -> \(var65 : Type) -> \(var66 : Type) -> \(var67 : Type) -> \(var68 : Type) -> \(var69 : Type) -> { command : Optional (./properties/command/Type var32 var33 var64 var65) +, commands : Optional (./properties/commands/Type var34 var35 var66 var67) +, script : Optional (./properties/script/Type var36 var37 var68 var69) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/command/Schema b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/command/Schema new file mode 100644 index 000000000000..c1dbe1820dde --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/command/Schema @@ -0,0 +1 @@ +\(var16 : Type) -> \(var17 : Type) -> \(var38 : Type) -> \(var39 : Type) -> (../../../commandStep/Type var16 var17 var38 var39) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/command/Type b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/command/Type new file mode 100644 index 000000000000..c1dbe1820dde --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/command/Type @@ -0,0 +1 @@ +\(var16 : Type) -> \(var17 : Type) -> \(var38 : Type) -> \(var39 : Type) -> (../../../commandStep/Type var16 var17 var38 var39) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/commands/Schema b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/commands/Schema new file mode 100644 index 000000000000..0f46fe8991be --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/commands/Schema @@ -0,0 +1 @@ +\(var18 : Type) -> \(var19 : Type) -> \(var40 : Type) -> \(var41 : Type) -> (../../../commandStep/Type var18 var19 var40 var41) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/commands/Type b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/commands/Type new file mode 100644 index 000000000000..0f46fe8991be --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/commands/Type @@ -0,0 +1 @@ +\(var18 : Type) -> \(var19 : Type) -> \(var40 : Type) -> \(var41 : Type) -> (../../../commandStep/Type var18 var19 var40 var41) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/script/Schema b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/script/Schema new file mode 100644 index 000000000000..856d5f3ae757 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/script/Schema @@ -0,0 +1 @@ +\(var20 : Type) -> \(var21 : Type) -> \(var42 : Type) -> \(var43 : Type) -> (../../../commandStep/Type var20 var21 var42 var43) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/script/Type b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/script/Type new file mode 100644 index 000000000000..856d5f3ae757 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedCommandStep/properties/script/Type @@ -0,0 +1 @@ +\(var20 : Type) -> \(var21 : Type) -> \(var42 : Type) -> \(var43 : Type) -> (../../../commandStep/Type var20 var21 var42 var43) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedTriggerStep/Schema b/buildkite/src/External/buildkite/definitions/nestedTriggerStep/Schema new file mode 100644 index 000000000000..7529cd719a05 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedTriggerStep/Schema @@ -0,0 +1,5 @@ +\(var70 : Type) -> \(var71 : Type) -> { Type = { trigger : Optional (./properties/trigger/Type var70 var71) +} +, default = { trigger = None ((./properties/trigger/Type var70 var71)) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedTriggerStep/Type b/buildkite/src/External/buildkite/definitions/nestedTriggerStep/Type new file mode 100644 index 000000000000..4fbe3d4d794b --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedTriggerStep/Type @@ -0,0 +1,2 @@ +\(var70 : Type) -> \(var71 : Type) -> { trigger : Optional (./properties/trigger/Type var70 var71) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedTriggerStep/properties/trigger/Schema b/buildkite/src/External/buildkite/definitions/nestedTriggerStep/properties/trigger/Schema new file mode 100644 index 000000000000..09db8a76dcfb --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedTriggerStep/properties/trigger/Schema @@ -0,0 +1 @@ +\(var44 : Type) -> \(var45 : Type) -> (../../../triggerStep/Type var44 var45) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedTriggerStep/properties/trigger/Type b/buildkite/src/External/buildkite/definitions/nestedTriggerStep/properties/trigger/Type new file mode 100644 index 000000000000..09db8a76dcfb --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedTriggerStep/properties/trigger/Type @@ -0,0 +1 @@ +\(var44 : Type) -> \(var45 : Type) -> (../../../triggerStep/Type var44 var45) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedWaitStep/Schema b/buildkite/src/External/buildkite/definitions/nestedWaitStep/Schema new file mode 100644 index 000000000000..8e94329e79fc --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedWaitStep/Schema @@ -0,0 +1,7 @@ +{ Type = { wait : Optional (./properties/wait/Type ) +, waiter : Optional (./properties/waiter/Type ) +} +, default = { wait = None ((./properties/wait/Type )) +, waiter = None ((./properties/waiter/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedWaitStep/Type b/buildkite/src/External/buildkite/definitions/nestedWaitStep/Type new file mode 100644 index 000000000000..1802aa7bd963 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedWaitStep/Type @@ -0,0 +1,3 @@ +{ wait : Optional (./properties/wait/Type ) +, waiter : Optional (./properties/waiter/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/wait/Schema b/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/wait/Schema new file mode 100644 index 000000000000..f1f6ebfe9379 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/wait/Schema @@ -0,0 +1 @@ +(../../../waitStep/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/wait/Type b/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/wait/Type new file mode 100644 index 000000000000..f1f6ebfe9379 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/wait/Type @@ -0,0 +1 @@ +(../../../waitStep/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/waiter/Schema b/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/waiter/Schema new file mode 100644 index 000000000000..f1f6ebfe9379 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/waiter/Schema @@ -0,0 +1 @@ +(../../../waitStep/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/waiter/Type b/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/waiter/Type new file mode 100644 index 000000000000..f1f6ebfe9379 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/nestedWaitStep/properties/waiter/Type @@ -0,0 +1 @@ +(../../../waitStep/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/stringBlockStep/Schema b/buildkite/src/External/buildkite/definitions/stringBlockStep/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/stringBlockStep/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/stringBlockStep/Type b/buildkite/src/External/buildkite/definitions/stringBlockStep/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/stringBlockStep/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/stringWaitStep/Schema b/buildkite/src/External/buildkite/definitions/stringWaitStep/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/stringWaitStep/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/stringWaitStep/Type b/buildkite/src/External/buildkite/definitions/stringWaitStep/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/stringWaitStep/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/Schema new file mode 100644 index 000000000000..5952fefffdbb --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/Schema @@ -0,0 +1,29 @@ +\(var22 : Type) -> \(var23 : Type) -> { Type = { allow_dependency_failure : Optional (./properties/allow_dependency_failure/Type ) +, async : Optional (./properties/async/Type ) +, branches : Optional (./properties/branches/Type ) +, build : Optional (./properties/build/Type var22 var23) +, depends_on : Optional (./properties/depends_on/Type ) +, id : Optional (./properties/id/Type ) +, identifier : Optional (./properties/identifier/Type ) +, `if` : Optional (./properties/if/Type ) +, key : Optional (./properties/key/Type ) +, label : Optional (./properties/label/Type ) +, name : Optional (./properties/name/Type ) +, trigger : Optional (./properties/trigger/Type ) +, type : Optional (./properties/type/Type ) +} +, default = { allow_dependency_failure = None ((./properties/allow_dependency_failure/Type )) +, async = None ((./properties/async/Type )) +, branches = None ((./properties/branches/Type )) +, build = None ((./properties/build/Type var22 var23)) +, depends_on = None ((./properties/depends_on/Type )) +, id = None ((./properties/id/Type )) +, identifier = None ((./properties/identifier/Type )) +, `if` = None ((./properties/if/Type )) +, key = None ((./properties/key/Type )) +, label = None ((./properties/label/Type )) +, name = None ((./properties/name/Type )) +, trigger = None ((./properties/trigger/Type )) +, type = None ((./properties/type/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/Type b/buildkite/src/External/buildkite/definitions/triggerStep/Type new file mode 100644 index 000000000000..1c9aeea49e0f --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/Type @@ -0,0 +1,14 @@ +\(var22 : Type) -> \(var23 : Type) -> { allow_dependency_failure : Optional (./properties/allow_dependency_failure/Type ) +, async : Optional (./properties/async/Type ) +, branches : Optional (./properties/branches/Type ) +, build : Optional (./properties/build/Type var22 var23) +, depends_on : Optional (./properties/depends_on/Type ) +, id : Optional (./properties/id/Type ) +, identifier : Optional (./properties/identifier/Type ) +, `if` : Optional (./properties/if/Type ) +, key : Optional (./properties/key/Type ) +, label : Optional (./properties/label/Type ) +, name : Optional (./properties/name/Type ) +, trigger : Optional (./properties/trigger/Type ) +, type : Optional (./properties/type/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/allow_dependency_failure/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/allow_dependency_failure/Schema new file mode 100644 index 000000000000..11a8b53da4dd --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/allow_dependency_failure/Schema @@ -0,0 +1 @@ +(../../../allowDependencyFailure/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/allow_dependency_failure/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/allow_dependency_failure/Type new file mode 100644 index 000000000000..11a8b53da4dd --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/allow_dependency_failure/Type @@ -0,0 +1 @@ +(../../../allowDependencyFailure/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/async/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/async/Schema new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/async/Schema @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/async/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/async/Type new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/async/Type @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/branches/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/branches/Schema new file mode 100644 index 000000000000..8b7819bab61a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/branches/Schema @@ -0,0 +1 @@ +(../../../branches/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/branches/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/branches/Type new file mode 100644 index 000000000000..8b7819bab61a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/branches/Type @@ -0,0 +1 @@ +(../../../branches/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/Schema new file mode 100644 index 000000000000..d5bf91ba1604 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/Schema @@ -0,0 +1,21 @@ +\(var10 : Type) -> \(var11 : Type) -> { Type = { branch : Optional (./properties/branch/Type ) +, commit : Optional (./properties/commit/Type ) +, env : Optional (./properties/env/Type var10) +, label : Optional (./properties/label/Type ) +, message : Optional (./properties/message/Type ) +, meta_data : Optional (./properties/meta_data/Type var11) +, name : Optional (./properties/name/Type ) +, trigger : Optional (./properties/trigger/Type ) +, type : Optional (./properties/type/Type ) +} +, default = { branch = None ((./properties/branch/Type )) +, commit = None ((./properties/commit/Type )) +, env = None ((./properties/env/Type var10)) +, label = None ((./properties/label/Type )) +, message = None ((./properties/message/Type )) +, meta_data = None ((./properties/meta_data/Type var11)) +, name = None ((./properties/name/Type )) +, trigger = None ((./properties/trigger/Type )) +, type = None ((./properties/type/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/Type new file mode 100644 index 000000000000..37b8cc70823e --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/Type @@ -0,0 +1,10 @@ +\(var10 : Type) -> \(var11 : Type) -> { branch : Optional (./properties/branch/Type ) +, commit : Optional (./properties/commit/Type ) +, env : Optional (./properties/env/Type var10) +, label : Optional (./properties/label/Type ) +, message : Optional (./properties/message/Type ) +, meta_data : Optional (./properties/meta_data/Type var11) +, name : Optional (./properties/name/Type ) +, trigger : Optional (./properties/trigger/Type ) +, type : Optional (./properties/type/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/branch/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/branch/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/branch/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/branch/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/branch/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/branch/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/commit/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/commit/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/commit/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/commit/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/commit/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/commit/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/env/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/env/Schema new file mode 100644 index 000000000000..636679fb2cb6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/env/Schema @@ -0,0 +1 @@ +\(var3 : Type) -> List { mapKey: Text, mapValue: var3 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/env/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/env/Type new file mode 100644 index 000000000000..636679fb2cb6 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/env/Type @@ -0,0 +1 @@ +\(var3 : Type) -> List { mapKey: Text, mapValue: var3 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/label/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/label/Schema new file mode 100644 index 000000000000..0dac7541d6fc --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/label/Schema @@ -0,0 +1 @@ +(../../../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/label/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/label/Type new file mode 100644 index 000000000000..0dac7541d6fc --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/label/Type @@ -0,0 +1 @@ +(../../../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/message/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/message/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/message/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/message/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/message/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/message/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/meta_data/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/meta_data/Schema new file mode 100644 index 000000000000..8940ebf4009d --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/meta_data/Schema @@ -0,0 +1 @@ +\(var4 : Type) -> List { mapKey: Text, mapValue: var4 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/meta_data/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/meta_data/Type new file mode 100644 index 000000000000..8940ebf4009d --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/meta_data/Type @@ -0,0 +1 @@ +\(var4 : Type) -> List { mapKey: Text, mapValue: var4 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/name/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/name/Schema new file mode 100644 index 000000000000..0dac7541d6fc --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/name/Schema @@ -0,0 +1 @@ +(../../../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/name/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/name/Type new file mode 100644 index 000000000000..0dac7541d6fc --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/name/Type @@ -0,0 +1 @@ +(../../../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/trigger/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/trigger/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/trigger/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/trigger/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/trigger/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/trigger/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/type/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/type/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/type/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/type/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/type/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/build/properties/type/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/depends_on/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/depends_on/Schema new file mode 100644 index 000000000000..8dcf7db37316 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/depends_on/Schema @@ -0,0 +1 @@ +(../../../dependsOn/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/depends_on/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/depends_on/Type new file mode 100644 index 000000000000..8dcf7db37316 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/depends_on/Type @@ -0,0 +1 @@ +(../../../dependsOn/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/id/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/id/Schema new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/id/Schema @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/id/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/id/Type new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/id/Type @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/identifier/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/identifier/Schema new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/identifier/Schema @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/identifier/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/identifier/Type new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/identifier/Type @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/if/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/if/Schema new file mode 100644 index 000000000000..e49159a0a651 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/if/Schema @@ -0,0 +1 @@ +(../../../if/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/if/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/if/Type new file mode 100644 index 000000000000..e49159a0a651 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/if/Type @@ -0,0 +1 @@ +(../../../if/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/key/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/key/Schema new file mode 100644 index 000000000000..27fb7f5487a9 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/key/Schema @@ -0,0 +1 @@ +(../../../key/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/key/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/key/Type new file mode 100644 index 000000000000..27fb7f5487a9 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/key/Type @@ -0,0 +1 @@ +(../../../key/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/label/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/label/Schema new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/label/Schema @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/label/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/label/Type new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/label/Type @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/name/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/name/Schema new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/name/Schema @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/name/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/name/Type new file mode 100644 index 000000000000..fead7b2fe163 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/name/Type @@ -0,0 +1 @@ +(../../../label/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/trigger/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/trigger/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/trigger/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/trigger/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/trigger/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/trigger/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/type/Schema b/buildkite/src/External/buildkite/definitions/triggerStep/properties/type/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/type/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/triggerStep/properties/type/Type b/buildkite/src/External/buildkite/definitions/triggerStep/properties/type/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/triggerStep/properties/type/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/Schema b/buildkite/src/External/buildkite/definitions/waitStep/Schema new file mode 100644 index 000000000000..fbaa887cb7ef --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/Schema @@ -0,0 +1,23 @@ +{ Type = { allow_dependency_failure : Optional (./properties/allow_dependency_failure/Type ) +, continue_on_failure : Optional (./properties/continue_on_failure/Type ) +, depends_on : Optional (./properties/depends_on/Type ) +, id : Optional (./properties/id/Type ) +, identifier : Optional (./properties/identifier/Type ) +, `if` : Optional (./properties/if/Type ) +, key : Optional (./properties/key/Type ) +, type : Optional (./properties/type/Type ) +, wait : Optional (./properties/wait/Type ) +, waiter : Optional (./properties/waiter/Type ) +} +, default = { allow_dependency_failure = None ((./properties/allow_dependency_failure/Type )) +, continue_on_failure = None ((./properties/continue_on_failure/Type )) +, depends_on = None ((./properties/depends_on/Type )) +, id = None ((./properties/id/Type )) +, identifier = None ((./properties/identifier/Type )) +, `if` = None ((./properties/if/Type )) +, key = None ((./properties/key/Type )) +, type = None ((./properties/type/Type )) +, wait = None ((./properties/wait/Type )) +, waiter = None ((./properties/waiter/Type )) +} +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/Type b/buildkite/src/External/buildkite/definitions/waitStep/Type new file mode 100644 index 000000000000..7ae9cdb3ec50 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/Type @@ -0,0 +1,11 @@ +{ allow_dependency_failure : Optional (./properties/allow_dependency_failure/Type ) +, continue_on_failure : Optional (./properties/continue_on_failure/Type ) +, depends_on : Optional (./properties/depends_on/Type ) +, id : Optional (./properties/id/Type ) +, identifier : Optional (./properties/identifier/Type ) +, `if` : Optional (./properties/if/Type ) +, key : Optional (./properties/key/Type ) +, type : Optional (./properties/type/Type ) +, wait : Optional (./properties/wait/Type ) +, waiter : Optional (./properties/waiter/Type ) +} \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/allow_dependency_failure/Schema b/buildkite/src/External/buildkite/definitions/waitStep/properties/allow_dependency_failure/Schema new file mode 100644 index 000000000000..11a8b53da4dd --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/allow_dependency_failure/Schema @@ -0,0 +1 @@ +(../../../allowDependencyFailure/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/allow_dependency_failure/Type b/buildkite/src/External/buildkite/definitions/waitStep/properties/allow_dependency_failure/Type new file mode 100644 index 000000000000..11a8b53da4dd --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/allow_dependency_failure/Type @@ -0,0 +1 @@ +(../../../allowDependencyFailure/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/continue_on_failure/Schema b/buildkite/src/External/buildkite/definitions/waitStep/properties/continue_on_failure/Schema new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/continue_on_failure/Schema @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/continue_on_failure/Type b/buildkite/src/External/buildkite/definitions/waitStep/properties/continue_on_failure/Type new file mode 100644 index 000000000000..6a2501623c20 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/continue_on_failure/Type @@ -0,0 +1 @@ +Bool \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/depends_on/Schema b/buildkite/src/External/buildkite/definitions/waitStep/properties/depends_on/Schema new file mode 100644 index 000000000000..8dcf7db37316 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/depends_on/Schema @@ -0,0 +1 @@ +(../../../dependsOn/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/depends_on/Type b/buildkite/src/External/buildkite/definitions/waitStep/properties/depends_on/Type new file mode 100644 index 000000000000..8dcf7db37316 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/depends_on/Type @@ -0,0 +1 @@ +(../../../dependsOn/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/id/Schema b/buildkite/src/External/buildkite/definitions/waitStep/properties/id/Schema new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/id/Schema @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/id/Type b/buildkite/src/External/buildkite/definitions/waitStep/properties/id/Type new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/id/Type @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/identifier/Schema b/buildkite/src/External/buildkite/definitions/waitStep/properties/identifier/Schema new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/identifier/Schema @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/identifier/Type b/buildkite/src/External/buildkite/definitions/waitStep/properties/identifier/Type new file mode 100644 index 000000000000..13e270483e21 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/identifier/Type @@ -0,0 +1 @@ +(../../../identifier/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/if/Schema b/buildkite/src/External/buildkite/definitions/waitStep/properties/if/Schema new file mode 100644 index 000000000000..e49159a0a651 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/if/Schema @@ -0,0 +1 @@ +(../../../if/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/if/Type b/buildkite/src/External/buildkite/definitions/waitStep/properties/if/Type new file mode 100644 index 000000000000..e49159a0a651 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/if/Type @@ -0,0 +1 @@ +(../../../if/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/key/Schema b/buildkite/src/External/buildkite/definitions/waitStep/properties/key/Schema new file mode 100644 index 000000000000..27fb7f5487a9 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/key/Schema @@ -0,0 +1 @@ +(../../../key/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/key/Type b/buildkite/src/External/buildkite/definitions/waitStep/properties/key/Type new file mode 100644 index 000000000000..27fb7f5487a9 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/key/Type @@ -0,0 +1 @@ +(../../../key/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/type/Schema b/buildkite/src/External/buildkite/definitions/waitStep/properties/type/Schema new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/type/Schema @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/type/Type b/buildkite/src/External/buildkite/definitions/waitStep/properties/type/Type new file mode 100644 index 000000000000..4add785dafe4 --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/type/Type @@ -0,0 +1 @@ +Text \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/wait/Schema b/buildkite/src/External/buildkite/definitions/waitStep/properties/wait/Schema new file mode 100644 index 000000000000..cd98b6fca12a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/wait/Schema @@ -0,0 +1 @@ +Optional (./properties/wait/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/wait/Type b/buildkite/src/External/buildkite/definitions/waitStep/properties/wait/Type new file mode 100644 index 000000000000..cd98b6fca12a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/wait/Type @@ -0,0 +1 @@ +Optional (./properties/wait/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/waiter/Schema b/buildkite/src/External/buildkite/definitions/waitStep/properties/waiter/Schema new file mode 100644 index 000000000000..e6eceed1212a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/waiter/Schema @@ -0,0 +1 @@ +Optional (./properties/waiter/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/definitions/waitStep/properties/waiter/Type b/buildkite/src/External/buildkite/definitions/waitStep/properties/waiter/Type new file mode 100644 index 000000000000..e6eceed1212a --- /dev/null +++ b/buildkite/src/External/buildkite/definitions/waitStep/properties/waiter/Type @@ -0,0 +1 @@ +Optional (./properties/waiter/Type ) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/properties/env/Schema b/buildkite/src/External/buildkite/properties/env/Schema new file mode 100644 index 000000000000..acda27824243 --- /dev/null +++ b/buildkite/src/External/buildkite/properties/env/Schema @@ -0,0 +1 @@ +\(var5 : Type) -> List { mapKey: Text, mapValue: var5 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/properties/env/Type b/buildkite/src/External/buildkite/properties/env/Type new file mode 100644 index 000000000000..acda27824243 --- /dev/null +++ b/buildkite/src/External/buildkite/properties/env/Type @@ -0,0 +1 @@ +\(var5 : Type) -> List { mapKey: Text, mapValue: var5 } \ No newline at end of file diff --git a/buildkite/src/External/buildkite/properties/steps/Schema b/buildkite/src/External/buildkite/properties/steps/Schema new file mode 100644 index 000000000000..1b857741ca0e --- /dev/null +++ b/buildkite/src/External/buildkite/properties/steps/Schema @@ -0,0 +1 @@ +\(var24 : Type) -> \(var25 : Type) -> \(var46 : Type) -> \(var47 : Type) -> \(var48 : Type) -> \(var49 : Type) -> \(var72 : Type) -> \(var73 : Type) -> \(var74 : Type) -> \(var75 : Type) -> \(var76 : Type) -> \(var77 : Type) -> \(var100 : Type) -> \(var101 : Type) -> \(var102 : Type) -> \(var103 : Type) -> \(var104 : Type) -> \(var105 : Type) -> \(var106 : Type) -> \(var107 : Type) -> \(var108 : Type) -> \(var109 : Type) -> \(var130 : Type) -> \(var131 : Type) -> \(var132 : Type) -> \(var133 : Type) -> \(var152 : Type) -> \(var153 : Type) -> \(var154 : Type) -> \(var155 : Type) -> \(var156 : Type) -> \(var157 : Type) -> \(var162 : Type) -> \(var163 : Type) -> \(var164 : Type) -> \(var165 : Type) -> \(var166 : Type) -> \(var167 : Type) -> \(var168 : Type) -> \(var169 : Type) -> < BlockStep/Type : (../../../definitions/blockStep/Type ) | CommandStep/Type : (../../../definitions/commandStep/Type var24 var25 var46 var47) | GroupStep/Type : (../../../definitions/groupStep/Type var100 var101 var130 var131 var132 var133 var152 var153 var154 var155 var156 var157 var162 var163 var164 var165 var166 var167 var168 var169) | NestedBlockStep/Type : (../../../definitions/nestedBlockStep/Type ) | NestedCommandStep/Type : (../../../definitions/nestedCommandStep/Type var72 var73 var74 var75 var76 var77 var102 var103 var104 var105 var106 var107) | NestedTriggerStep/Type : (../../../definitions/nestedTriggerStep/Type var108 var109) | NestedWaitStep/Type : (../../../definitions/nestedWaitStep/Type ) | StringBlockStep/Type : (../../../definitions/stringBlockStep/Type ) | StringWaitStep/Type : (../../../definitions/stringWaitStep/Type ) | TriggerStep/Type : (../../../definitions/triggerStep/Type var48 var49) | WaitStep/Type : (../../../definitions/waitStep/Type ) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/properties/steps/Schema0 b/buildkite/src/External/buildkite/properties/steps/Schema0 new file mode 100644 index 000000000000..b70cfad157ff --- /dev/null +++ b/buildkite/src/External/buildkite/properties/steps/Schema0 @@ -0,0 +1 @@ +\(var50 : Type) -> \(var51 : Type) -> \(var78 : Type) -> \(var79 : Type) -> \(var80 : Type) -> \(var81 : Type) -> \(var110 : Type) -> \(var111 : Type) -> \(var112 : Type) -> \(var113 : Type) -> \(var114 : Type) -> \(var115 : Type) -> \(var134 : Type) -> \(var135 : Type) -> \(var136 : Type) -> \(var137 : Type) -> \(var138 : Type) -> \(var139 : Type) -> \(var140 : Type) -> \(var141 : Type) -> \(var142 : Type) -> \(var143 : Type) -> \(var158 : Type) -> \(var159 : Type) -> \(var160 : Type) -> \(var161 : Type) -> \(var170 : Type) -> \(var171 : Type) -> \(var172 : Type) -> \(var173 : Type) -> \(var174 : Type) -> \(var175 : Type) -> \(var176 : Type) -> \(var177 : Type) -> \(var178 : Type) -> \(var179 : Type) -> \(var180 : Type) -> \(var181 : Type) -> \(var182 : Type) -> \(var183 : Type) -> List (../properties/steps/Type var50 var51 var78 var79 var80 var81 var110 var111 var112 var113 var114 var115 var134 var135 var136 var137 var138 var139 var140 var141 var142 var143 var158 var159 var160 var161 var170 var171 var172 var173 var174 var175 var176 var177 var178 var179 var180 var181 var182 var183) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/properties/steps/Type b/buildkite/src/External/buildkite/properties/steps/Type new file mode 100644 index 000000000000..1b857741ca0e --- /dev/null +++ b/buildkite/src/External/buildkite/properties/steps/Type @@ -0,0 +1 @@ +\(var24 : Type) -> \(var25 : Type) -> \(var46 : Type) -> \(var47 : Type) -> \(var48 : Type) -> \(var49 : Type) -> \(var72 : Type) -> \(var73 : Type) -> \(var74 : Type) -> \(var75 : Type) -> \(var76 : Type) -> \(var77 : Type) -> \(var100 : Type) -> \(var101 : Type) -> \(var102 : Type) -> \(var103 : Type) -> \(var104 : Type) -> \(var105 : Type) -> \(var106 : Type) -> \(var107 : Type) -> \(var108 : Type) -> \(var109 : Type) -> \(var130 : Type) -> \(var131 : Type) -> \(var132 : Type) -> \(var133 : Type) -> \(var152 : Type) -> \(var153 : Type) -> \(var154 : Type) -> \(var155 : Type) -> \(var156 : Type) -> \(var157 : Type) -> \(var162 : Type) -> \(var163 : Type) -> \(var164 : Type) -> \(var165 : Type) -> \(var166 : Type) -> \(var167 : Type) -> \(var168 : Type) -> \(var169 : Type) -> < BlockStep/Type : (../../../definitions/blockStep/Type ) | CommandStep/Type : (../../../definitions/commandStep/Type var24 var25 var46 var47) | GroupStep/Type : (../../../definitions/groupStep/Type var100 var101 var130 var131 var132 var133 var152 var153 var154 var155 var156 var157 var162 var163 var164 var165 var166 var167 var168 var169) | NestedBlockStep/Type : (../../../definitions/nestedBlockStep/Type ) | NestedCommandStep/Type : (../../../definitions/nestedCommandStep/Type var72 var73 var74 var75 var76 var77 var102 var103 var104 var105 var106 var107) | NestedTriggerStep/Type : (../../../definitions/nestedTriggerStep/Type var108 var109) | NestedWaitStep/Type : (../../../definitions/nestedWaitStep/Type ) | StringBlockStep/Type : (../../../definitions/stringBlockStep/Type ) | StringWaitStep/Type : (../../../definitions/stringWaitStep/Type ) | TriggerStep/Type : (../../../definitions/triggerStep/Type var48 var49) | WaitStep/Type : (../../../definitions/waitStep/Type ) > \ No newline at end of file diff --git a/buildkite/src/External/buildkite/properties/steps/Type0 b/buildkite/src/External/buildkite/properties/steps/Type0 new file mode 100644 index 000000000000..b70cfad157ff --- /dev/null +++ b/buildkite/src/External/buildkite/properties/steps/Type0 @@ -0,0 +1 @@ +\(var50 : Type) -> \(var51 : Type) -> \(var78 : Type) -> \(var79 : Type) -> \(var80 : Type) -> \(var81 : Type) -> \(var110 : Type) -> \(var111 : Type) -> \(var112 : Type) -> \(var113 : Type) -> \(var114 : Type) -> \(var115 : Type) -> \(var134 : Type) -> \(var135 : Type) -> \(var136 : Type) -> \(var137 : Type) -> \(var138 : Type) -> \(var139 : Type) -> \(var140 : Type) -> \(var141 : Type) -> \(var142 : Type) -> \(var143 : Type) -> \(var158 : Type) -> \(var159 : Type) -> \(var160 : Type) -> \(var161 : Type) -> \(var170 : Type) -> \(var171 : Type) -> \(var172 : Type) -> \(var173 : Type) -> \(var174 : Type) -> \(var175 : Type) -> \(var176 : Type) -> \(var177 : Type) -> \(var178 : Type) -> \(var179 : Type) -> \(var180 : Type) -> \(var181 : Type) -> \(var182 : Type) -> \(var183 : Type) -> List (../properties/steps/Type var50 var51 var78 var79 var80 var81 var110 var111 var112 var113 var114 var115 var134 var135 var136 var137 var138 var139 var140 var141 var142 var143 var158 var159 var160 var161 var170 var171 var172 var173 var174 var175 var176 var177 var178 var179 var180 var181 var182 var183) \ No newline at end of file diff --git a/buildkite/src/External/buildkite/top_level/Type b/buildkite/src/External/buildkite/top_level/Type new file mode 100644 index 000000000000..23321323396d --- /dev/null +++ b/buildkite/src/External/buildkite/top_level/Type @@ -0,0 +1,79 @@ +{ definitions/allowDependencyFailure/Type = (../definitions/allowDependencyFailure/Schema ) +, definitions/automaticRetry/Type = (../definitions/automaticRetry/Schema ) +, definitions/automaticRetry/properties/exit_status/Type = (../definitions/automaticRetry/properties/exit_status/Schema ) +, definitions/automaticRetry/properties/limit/Type = (../definitions/automaticRetry/properties/limit/Schema ) +, definitions/branches/Type = (../definitions/branches/Schema ) +, definitions/commandStep/Type = \(var184 : Type) -> \(var185 : Type) -> \(var186 : Type) -> \(var187 : Type) -> (../definitions/commandStep/Schema var184 var185 var186 var187) +, definitions/commandStep/properties/agents/Type = \(var188 : Type) -> (../definitions/commandStep/properties/agents/Schema var188) +, definitions/commandStep/properties/allow_dependency_failure/Type = (../definitions/commandStep/properties/allow_dependency_failure/Schema ) +, definitions/commandStep/properties/artifact_paths/Type = (../definitions/commandStep/properties/artifact_paths/Schema ) +, definitions/commandStep/properties/branches/Type = (../definitions/commandStep/properties/branches/Schema ) +, definitions/commandStep/properties/command/Type = (../definitions/commandStep/properties/command/Schema ) +, definitions/commandStep/properties/commands/Type = (../definitions/commandStep/properties/commands/Schema ) +, definitions/commandStep/properties/concurrency/Type = (../definitions/commandStep/properties/concurrency/Schema ) +, definitions/commandStep/properties/concurrency_group/Type = (../definitions/commandStep/properties/concurrency_group/Schema ) +, definitions/commandStep/properties/depends_on/Type = (../definitions/commandStep/properties/depends_on/Schema ) +, definitions/commandStep/properties/env/Type = \(var189 : Type) -> (../definitions/commandStep/properties/env/Schema var189) +, definitions/commandStep/properties/id/Type = (../definitions/commandStep/properties/id/Schema ) +, definitions/commandStep/properties/identifier/Type = (../definitions/commandStep/properties/identifier/Schema ) +, definitions/commandStep/properties/if/Type = (../definitions/commandStep/properties/if/Schema ) +, definitions/commandStep/properties/key/Type = (../definitions/commandStep/properties/key/Schema ) +, definitions/commandStep/properties/label/Type = (../definitions/commandStep/properties/label/Schema ) +, definitions/commandStep/properties/name/Type = (../definitions/commandStep/properties/name/Schema ) +, definitions/commandStep/properties/parallelism/Type = (../definitions/commandStep/properties/parallelism/Schema ) +, definitions/commandStep/properties/plugins/Type = \(var190 : Type) -> \(var191 : Type) -> (../definitions/commandStep/properties/plugins/Schema var190 var191) +, definitions/commandStep/properties/plugins/union/Type = \(var192 : Type) -> (../definitions/commandStep/properties/plugins/union/Schema var192) +, definitions/commandStep/properties/retry/Type = (../definitions/commandStep/properties/retry/Schema ) +, definitions/commandStep/properties/retry/properties/automatic/Type = (../definitions/commandStep/properties/retry/properties/automatic/Schema ) +, definitions/commandStep/properties/retry/properties/manual/Type = (../definitions/commandStep/properties/retry/properties/manual/Schema ) +, definitions/commandStep/properties/retry/properties/manual/union/Type = (../definitions/commandStep/properties/retry/properties/manual/union/Schema ) +, definitions/commandStep/properties/retry/properties/manual/union/properties/allowed/Type = (../definitions/commandStep/properties/retry/properties/manual/union/properties/allowed/Schema ) +, definitions/commandStep/properties/retry/properties/manual/union/properties/permit_on_passed/Type = (../definitions/commandStep/properties/retry/properties/manual/union/properties/permit_on_passed/Schema ) +, definitions/commandStep/properties/retry/properties/manual/union/properties/reason/Type = (../definitions/commandStep/properties/retry/properties/manual/union/properties/reason/Schema ) +, definitions/commandStep/properties/skip/Type = (../definitions/commandStep/properties/skip/Schema ) +, definitions/commandStep/properties/soft_fail/Type = (../definitions/commandStep/properties/soft_fail/Schema ) +, definitions/commandStep/properties/soft_fail/union/Type = (../definitions/commandStep/properties/soft_fail/union/Schema ) +, definitions/commandStep/properties/soft_fail/union/properties/exit_status/Type = (../definitions/commandStep/properties/soft_fail/union/properties/exit_status/Schema ) +, definitions/commandStep/properties/timeout_in_minutes/Type = (../definitions/commandStep/properties/timeout_in_minutes/Schema ) +, definitions/commandStep/properties/type/Type = (../definitions/commandStep/properties/type/Schema ) +, definitions/dependsOn/Type = (../definitions/dependsOn/Schema ) +, definitions/dependsOn/union/Type = (../definitions/dependsOn/union/Schema ) +, definitions/dependsOn/union/union/Type = (../definitions/dependsOn/union/union/Schema ) +, definitions/dependsOn/union/union/properties/allow_failure/Type = (../definitions/dependsOn/union/union/properties/allow_failure/Schema ) +, definitions/dependsOn/union/union/properties/step/Type = (../definitions/dependsOn/union/union/properties/step/Schema ) +, definitions/identifier/Type = (../definitions/identifier/Schema ) +, definitions/if/Type = (../definitions/if/Schema ) +, definitions/key/Type = (../definitions/key/Schema ) +, definitions/label/Type = (../definitions/label/Schema ) +, definitions/nestedCommandStep/Type = \(var193 : Type) -> \(var194 : Type) -> \(var195 : Type) -> \(var196 : Type) -> \(var197 : Type) -> \(var198 : Type) -> \(var199 : Type) -> \(var200 : Type) -> \(var201 : Type) -> \(var202 : Type) -> \(var203 : Type) -> \(var204 : Type) -> (../definitions/nestedCommandStep/Schema var193 var194 var195 var196 var197 var198 var199 var200 var201 var202 var203 var204) +, definitions/nestedCommandStep/properties/command/Type = \(var205 : Type) -> \(var206 : Type) -> \(var207 : Type) -> \(var208 : Type) -> (../definitions/nestedCommandStep/properties/command/Schema var205 var206 var207 var208) +, definitions/nestedCommandStep/properties/commands/Type = \(var209 : Type) -> \(var210 : Type) -> \(var211 : Type) -> \(var212 : Type) -> (../definitions/nestedCommandStep/properties/commands/Schema var209 var210 var211 var212) +, definitions/nestedCommandStep/properties/script/Type = \(var213 : Type) -> \(var214 : Type) -> \(var215 : Type) -> \(var216 : Type) -> (../definitions/nestedCommandStep/properties/script/Schema var213 var214 var215 var216) +, definitions/nestedTriggerStep/Type = \(var217 : Type) -> \(var218 : Type) -> (../definitions/nestedTriggerStep/Schema var217 var218) +, definitions/nestedTriggerStep/properties/trigger/Type = \(var219 : Type) -> \(var220 : Type) -> (../definitions/nestedTriggerStep/properties/trigger/Schema var219 var220) +, definitions/stringBlockStep/Type = (../definitions/stringBlockStep/Schema ) +, definitions/stringWaitStep/Type = (../definitions/stringWaitStep/Schema ) +, definitions/triggerStep/Type = \(var221 : Type) -> \(var222 : Type) -> (../definitions/triggerStep/Schema var221 var222) +, definitions/triggerStep/properties/allow_dependency_failure/Type = (../definitions/triggerStep/properties/allow_dependency_failure/Schema ) +, definitions/triggerStep/properties/async/Type = (../definitions/triggerStep/properties/async/Schema ) +, definitions/triggerStep/properties/branches/Type = (../definitions/triggerStep/properties/branches/Schema ) +, definitions/triggerStep/properties/build/Type = \(var223 : Type) -> \(var224 : Type) -> (../definitions/triggerStep/properties/build/Schema var223 var224) +, definitions/triggerStep/properties/build/properties/branch/Type = (../definitions/triggerStep/properties/build/properties/branch/Schema ) +, definitions/triggerStep/properties/build/properties/commit/Type = (../definitions/triggerStep/properties/build/properties/commit/Schema ) +, definitions/triggerStep/properties/build/properties/env/Type = \(var225 : Type) -> (../definitions/triggerStep/properties/build/properties/env/Schema var225) +, definitions/triggerStep/properties/build/properties/label/Type = (../definitions/triggerStep/properties/build/properties/label/Schema ) +, definitions/triggerStep/properties/build/properties/message/Type = (../definitions/triggerStep/properties/build/properties/message/Schema ) +, definitions/triggerStep/properties/build/properties/meta_data/Type = \(var226 : Type) -> (../definitions/triggerStep/properties/build/properties/meta_data/Schema var226) +, definitions/triggerStep/properties/build/properties/name/Type = (../definitions/triggerStep/properties/build/properties/name/Schema ) +, definitions/triggerStep/properties/build/properties/trigger/Type = (../definitions/triggerStep/properties/build/properties/trigger/Schema ) +, definitions/triggerStep/properties/build/properties/type/Type = (../definitions/triggerStep/properties/build/properties/type/Schema ) +, definitions/triggerStep/properties/depends_on/Type = (../definitions/triggerStep/properties/depends_on/Schema ) +, definitions/triggerStep/properties/id/Type = (../definitions/triggerStep/properties/id/Schema ) +, definitions/triggerStep/properties/identifier/Type = (../definitions/triggerStep/properties/identifier/Schema ) +, definitions/triggerStep/properties/if/Type = (../definitions/triggerStep/properties/if/Schema ) +, definitions/triggerStep/properties/key/Type = (../definitions/triggerStep/properties/key/Schema ) +, definitions/triggerStep/properties/label/Type = (../definitions/triggerStep/properties/label/Schema ) +, definitions/triggerStep/properties/name/Type = (../definitions/triggerStep/properties/name/Schema ) +, definitions/triggerStep/properties/trigger/Type = (../definitions/triggerStep/properties/trigger/Schema ) +, definitions/triggerStep/properties/type/Type = (../definitions/triggerStep/properties/type/Schema ) +} \ No newline at end of file diff --git a/buildkite/src/External/prelude/Bool/and b/buildkite/src/External/prelude/Bool/and new file mode 100644 index 000000000000..7c19ab1e645a --- /dev/null +++ b/buildkite/src/External/prelude/Bool/and @@ -0,0 +1,14 @@ +{- +The `and` function returns `False` if there are any `False` elements in the +`List` and returns `True` otherwise +-} +let and + : List Bool → Bool + = λ(xs : List Bool) + → List/fold Bool xs Bool (λ(l : Bool) → λ(r : Bool) → l && r) True + +let example0 = assert : and [ True, False, True ] ≡ False + +let example1 = assert : and ([] : List Bool) ≡ True + +in and diff --git a/buildkite/src/External/prelude/Bool/build b/buildkite/src/External/prelude/Bool/build new file mode 100644 index 000000000000..b7617c7e9100 --- /dev/null +++ b/buildkite/src/External/prelude/Bool/build @@ -0,0 +1,18 @@ +{- +`build` is the inverse of `fold` +-} +let build + : (∀(bool : Type) → ∀(true : bool) → ∀(false : bool) → bool) → Bool + = λ(f : ∀(bool : Type) → ∀(true : bool) → ∀(false : bool) → bool) + → f Bool True False + +let example0 = + assert + : build (λ(bool : Type) → λ(true : bool) → λ(false : bool) → true) ≡ True + +let example1 = + assert + : build (λ(bool : Type) → λ(true : bool) → λ(false : bool) → false) + ≡ False + +in build diff --git a/buildkite/src/External/prelude/Bool/even b/buildkite/src/External/prelude/Bool/even new file mode 100644 index 000000000000..5f14b5d3e240 --- /dev/null +++ b/buildkite/src/External/prelude/Bool/even @@ -0,0 +1,20 @@ +{- +Returns `True` if there are an even number of `False` elements in the list and +returns `False` otherwise. + +This function is the `Monoid` for the `==` operation. +-} +let even + : List Bool → Bool + = λ(xs : List Bool) + → List/fold Bool xs Bool (λ(x : Bool) → λ(y : Bool) → x == y) True + +let example0 = assert : even [ False, True, False ] ≡ True + +let example1 = assert : even [ False, True ] ≡ False + +let example2 = assert : even [ False ] ≡ False + +let example3 = assert : even ([] : List Bool) ≡ True + +in even diff --git a/buildkite/src/External/prelude/Bool/fold b/buildkite/src/External/prelude/Bool/fold new file mode 100644 index 000000000000..ba45fd61a1c6 --- /dev/null +++ b/buildkite/src/External/prelude/Bool/fold @@ -0,0 +1,16 @@ +{- +`fold` is essentially the same as `if`/`then`/else` except as a function +-} +let fold + : ∀(b : Bool) → ∀(bool : Type) → ∀(true : bool) → ∀(false : bool) → bool + = λ(b : Bool) + → λ(bool : Type) + → λ(true : bool) + → λ(false : bool) + → if b then true else false + +let example0 = assert : fold True Natural 0 1 ≡ 0 + +let example1 = assert : fold False Natural 0 1 ≡ 1 + +in fold diff --git a/buildkite/src/External/prelude/Bool/not b/buildkite/src/External/prelude/Bool/not new file mode 100644 index 000000000000..42b1bb6b383f --- /dev/null +++ b/buildkite/src/External/prelude/Bool/not @@ -0,0 +1,12 @@ +{- +Flip the value of a `Bool` +-} +let not + : Bool → Bool + = λ(b : Bool) → b == False + +let example0 = assert : not True ≡ False + +let example1 = assert : not False ≡ True + +in not diff --git a/buildkite/src/External/prelude/Bool/odd b/buildkite/src/External/prelude/Bool/odd new file mode 100644 index 000000000000..9bc62b188e07 --- /dev/null +++ b/buildkite/src/External/prelude/Bool/odd @@ -0,0 +1,20 @@ +{- +Returns `True` if there are an odd number of `True` elements in the list and +returns `False` otherwise. + +This function is the `Monoid` for the `!=` operation. +-} +let odd + : List Bool → Bool + = λ(xs : List Bool) + → List/fold Bool xs Bool (λ(x : Bool) → λ(y : Bool) → x != y) False + +let example0 = assert : odd [ True, False, True ] ≡ False + +let example1 = assert : odd [ True, False ] ≡ True + +let example2 = assert : odd [ True ] ≡ True + +let example3 = assert : odd ([] : List Bool) ≡ False + +in odd diff --git a/buildkite/src/External/prelude/Bool/or b/buildkite/src/External/prelude/Bool/or new file mode 100644 index 000000000000..22d1274069db --- /dev/null +++ b/buildkite/src/External/prelude/Bool/or @@ -0,0 +1,14 @@ +{- +The `or` function returns `True` if there are any `True` elements in the `List` +and returns `False` otherwise +-} +let or + : List Bool → Bool + = λ(xs : List Bool) + → List/fold Bool xs Bool (λ(l : Bool) → λ(r : Bool) → l || r) False + +let example0 = assert : or [ True, False, True ] ≡ True + +let example1 = assert : or ([] : List Bool) ≡ False + +in or diff --git a/buildkite/src/External/prelude/Bool/package.dhall b/buildkite/src/External/prelude/Bool/package.dhall new file mode 100644 index 000000000000..35f1b7901aa9 --- /dev/null +++ b/buildkite/src/External/prelude/Bool/package.dhall @@ -0,0 +1,25 @@ +{ and = + ./and sha256:0b2114fa33cd76652e4360f012bc082718944fe4c5b28c975483178f8d9b0a6d + ? ./and +, build = + ./build sha256:add7cb9acacac705410088d876a7e4488e046a7aded304f06c51accffd7f1b7b + ? ./build +, even = + ./even sha256:72a05ee550636a3acb768360fa51ba0db0326763e0cf1ceb737f0f3607fc0fe5 + ? ./even +, fold = + ./fold sha256:39f60baf3950268c2e849e91dc6279ee41cd6b81892d54020d4fcd2ce30a96ae + ? ./fold +, not = + ./not sha256:723df402df24377d8a853afed08d9d69a0a6d86e2e5b2bac8960b0d4756c7dc4 + ? ./not +, odd = + ./odd sha256:6360fca3a745de32bd186cc7b71487a6398cd47d5119064eae491872c41d1999 + ? ./odd +, or = + ./or sha256:5c50738e84e1c4fed8343ebd57608500e1b61ac1f502aa52d6d6edb5c20b99e4 + ? ./or +, show = + ./show sha256:f85f6d2d921c37a2122cb2e2f8a0170e305b699debd0e6df5ef3370d806b5f61 + ? ./show +} diff --git a/buildkite/src/External/prelude/Bool/show b/buildkite/src/External/prelude/Bool/show new file mode 100644 index 000000000000..b7c2d43015d8 --- /dev/null +++ b/buildkite/src/External/prelude/Bool/show @@ -0,0 +1,13 @@ +{- +Render a `Bool` as `Text` using the same representation as Dhall source code +(i.e. beginning with a capital letter) +-} +let show + : Bool → Text + = λ(b : Bool) → if b then "True" else "False" + +let example0 = assert : show True ≡ "True" + +let example1 = assert : show False ≡ "False" + +in show diff --git a/buildkite/src/External/prelude/Double/package.dhall b/buildkite/src/External/prelude/Double/package.dhall new file mode 100644 index 000000000000..4922c17a0613 --- /dev/null +++ b/buildkite/src/External/prelude/Double/package.dhall @@ -0,0 +1,4 @@ +{ show = + ./show sha256:ae645813cc4d8505a265df4d7564c95482f62bb3e07fc81681959599b6cee04f + ? ./show +} diff --git a/buildkite/src/External/prelude/Double/show b/buildkite/src/External/prelude/Double/show new file mode 100644 index 000000000000..1e1841eb571d --- /dev/null +++ b/buildkite/src/External/prelude/Double/show @@ -0,0 +1,13 @@ +{- +Render a `Double` as `Text` using the same representation as Dhall source +code (i.e. a decimal floating point number with a leading `-` sign if negative) +-} +let show + : Double → Text + = Double/show + +let example0 = assert : show -3.1 ≡ "-3.1" + +let example1 = assert : show 0.4 ≡ "0.4" + +in show diff --git a/buildkite/src/External/prelude/Function/compose b/buildkite/src/External/prelude/Function/compose new file mode 100644 index 000000000000..a028537c520f --- /dev/null +++ b/buildkite/src/External/prelude/Function/compose @@ -0,0 +1,19 @@ +{- +Compose two functions into one. +-} +let compose + : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → (a → b) → (b → c) → a → c + = λ(A : Type) + → λ(B : Type) + → λ(C : Type) + → λ(f : A → B) + → λ(g : B → C) + → λ(x : A) + → g (f x) + +let example0 = + assert + : compose Natural Natural Bool (λ(n : Natural) → n + n) Natural/even 3 + ≡ True + +in compose diff --git a/buildkite/src/External/prelude/Function/identity b/buildkite/src/External/prelude/Function/identity new file mode 100644 index 000000000000..8467271ed78e --- /dev/null +++ b/buildkite/src/External/prelude/Function/identity @@ -0,0 +1,12 @@ +{- +The identity function simply returns its input +-} +let identity + : ∀(a : Type) → ∀(x : a) → a + = λ(a : Type) → λ(x : a) → x + +let example0 = assert : identity Natural 1 ≡ 1 + +let example1 = assert : identity Bool ≡ (λ(x : Bool) → x) + +in identity diff --git a/buildkite/src/External/prelude/Function/package.dhall b/buildkite/src/External/prelude/Function/package.dhall new file mode 100644 index 000000000000..736c8006d5ec --- /dev/null +++ b/buildkite/src/External/prelude/Function/package.dhall @@ -0,0 +1,7 @@ +{ compose = + ./compose sha256:65ad8bbea530b3d8968785a7cf4a9a7976b67059aa15e3b61fcba600a40ae013 + ? ./compose +, identity = + ./identity sha256:f78b96792b459cb664f41c6119bd8897dd04353a3343521d436cd82ad71cb4d4 + ? ./identity +} diff --git a/buildkite/src/External/prelude/Integer/abs b/buildkite/src/External/prelude/Integer/abs new file mode 100644 index 000000000000..72f8c93ac493 --- /dev/null +++ b/buildkite/src/External/prelude/Integer/abs @@ -0,0 +1,19 @@ +{- +Returns the absolute value of an `Integer`, i.e. its non-negative value. +-} +let abs + : Integer → Natural + = λ(n : Integer) + → if Natural/isZero (Integer/clamp n) + + then Integer/clamp (Integer/negate n) + + else Integer/clamp n + +let example0 = assert : abs +7 ≡ 7 + +let example2 = assert : abs +0 ≡ 0 + +let example3 = assert : abs -3 ≡ 3 + +in abs diff --git a/buildkite/src/External/prelude/Integer/add b/buildkite/src/External/prelude/Integer/add new file mode 100644 index 000000000000..b0f5a3cc4ccf --- /dev/null +++ b/buildkite/src/External/prelude/Integer/add @@ -0,0 +1,26 @@ +{- +`add m n` computes `m + n`. +-} +let Integer/subtract = + ./subtract sha256:a34d36272fa8ae4f1ec8b56222fe8dc8a2ec55ec6538b840de0cbe207b006fda + ? ./subtract + +let add + : Integer → Integer → Integer + = λ(m : Integer) → λ(n : Integer) → Integer/subtract (Integer/negate m) n + +let example0 = assert : add +3 +5 ≡ +8 + +let example1 = assert : add -3 -5 ≡ -8 + +let example2 = assert : add -4 +4 ≡ +0 + +let example3 = assert : add -3 +5 ≡ +2 + +let example4 = assert : add +3 -5 ≡ -2 + +let example5 = assert : add +0 -3 ≡ -3 + +let example6 = assert : add +0 +3 ≡ +3 + +in add diff --git a/buildkite/src/External/prelude/Integer/clamp b/buildkite/src/External/prelude/Integer/clamp new file mode 100644 index 000000000000..58afa5952b30 --- /dev/null +++ b/buildkite/src/External/prelude/Integer/clamp @@ -0,0 +1,14 @@ +{- +Convert an `Integer` to a `Natural` number, with negative numbers becoming zero. +-} +let clamp + : Integer → Natural + = Integer/clamp + +let example0 = assert : clamp +7 ≡ 7 + +let example2 = assert : clamp +0 ≡ 0 + +let example3 = assert : clamp -3 ≡ 0 + +in clamp diff --git a/buildkite/src/External/prelude/Integer/equal b/buildkite/src/External/prelude/Integer/equal new file mode 100644 index 000000000000..974bdc49f008 --- /dev/null +++ b/buildkite/src/External/prelude/Integer/equal @@ -0,0 +1,25 @@ +{- +`equal` checks if two Integers are equal. +-} +let Natural/equal = + ../Natural/equal sha256:7f108edfa35ddc7cebafb24dc073478e93a802e13b5bc3fd22f4768c9b066e60 + ? ../Natural/equal + +let equal + : Integer → Integer → Bool + = λ(a : Integer) + → λ(b : Integer) + → Natural/equal (Integer/clamp a) (Integer/clamp b) + && Natural/equal + (Integer/clamp (Integer/negate a)) + (Integer/clamp (Integer/negate b)) + +let example0 = assert : equal +5 +5 ≡ True + +let example1 = assert : equal +5 +6 ≡ False + +let example2 = assert : equal +5 -5 ≡ False + +let example3 = assert : equal -5 -5 ≡ True + +in equal diff --git a/buildkite/src/External/prelude/Integer/greaterThan b/buildkite/src/External/prelude/Integer/greaterThan new file mode 100644 index 000000000000..72a7202b0032 --- /dev/null +++ b/buildkite/src/External/prelude/Integer/greaterThan @@ -0,0 +1,30 @@ +{- +`greaterThan` checks if one Integer is greater than another. +-} +let Bool/not = + ../Bool/not sha256:723df402df24377d8a853afed08d9d69a0a6d86e2e5b2bac8960b0d4756c7dc4 + ? ../Bool/not + +let lessThanEqual = + ./lessThanEqual sha256:e3cca9f3942f81fa78a2bea23c0c24519c67cfe438116c38e797e12dcd26f6bc + ? ./lessThanEqual + +let greaterThan + : Integer → Integer → Bool + = λ(x : Integer) → λ(y : Integer) → Bool/not (lessThanEqual x y) + +let example0 = assert : greaterThan +5 +6 ≡ False + +let example1 = assert : greaterThan +5 +5 ≡ False + +let example2 = assert : greaterThan +5 +4 ≡ True + +let example3 = assert : greaterThan -5 +8 ≡ False + +let example4 = assert : greaterThan -5 -3 ≡ False + +let example5 = assert : greaterThan -3 -5 ≡ True + +let example6 = assert : greaterThan -3 -3 ≡ False + +in greaterThan diff --git a/buildkite/src/External/prelude/Integer/greaterThanEqual b/buildkite/src/External/prelude/Integer/greaterThanEqual new file mode 100644 index 000000000000..00ea4ef894ae --- /dev/null +++ b/buildkite/src/External/prelude/Integer/greaterThanEqual @@ -0,0 +1,26 @@ +{- +`greaterThanEqual` checks if one Integer is greater than or equal to another. +-} +let lessThanEqual = + ./lessThanEqual sha256:e3cca9f3942f81fa78a2bea23c0c24519c67cfe438116c38e797e12dcd26f6bc + ? ./lessThanEqual + +let greaterThanEqual + : Integer → Integer → Bool + = λ(x : Integer) → λ(y : Integer) → lessThanEqual y x + +let example0 = assert : greaterThanEqual +5 +6 ≡ False + +let example1 = assert : greaterThanEqual +5 +5 ≡ True + +let example2 = assert : greaterThanEqual +5 +4 ≡ True + +let example3 = assert : greaterThanEqual -5 +8 ≡ False + +let example4 = assert : greaterThanEqual -5 -3 ≡ False + +let example5 = assert : greaterThanEqual -3 -5 ≡ True + +let example6 = assert : greaterThanEqual -3 -3 ≡ True + +in greaterThanEqual diff --git a/buildkite/src/External/prelude/Integer/lessThan b/buildkite/src/External/prelude/Integer/lessThan new file mode 100644 index 000000000000..c4b54cae09c0 --- /dev/null +++ b/buildkite/src/External/prelude/Integer/lessThan @@ -0,0 +1,26 @@ +{- +`lessThan` checks if one Integer is less than another. +-} +let greaterThan = + ./greaterThan sha256:d23affd73029fc9aaf867c2c7b86510ca2802d3f0d1f3e1d1a93ffd87b7cb64b + ? ./greaterThan + +let lessThan + : Integer → Integer → Bool + = λ(x : Integer) → λ(y : Integer) → greaterThan y x + +let example0 = assert : lessThan +5 +6 ≡ True + +let example1 = assert : lessThan +5 +5 ≡ False + +let example2 = assert : lessThan +5 +4 ≡ False + +let example3 = assert : lessThan -5 +8 ≡ True + +let example4 = assert : lessThan -5 -3 ≡ True + +let example5 = assert : lessThan -3 -5 ≡ False + +let example6 = assert : lessThan -3 -3 ≡ False + +in lessThan diff --git a/buildkite/src/External/prelude/Integer/lessThanEqual b/buildkite/src/External/prelude/Integer/lessThanEqual new file mode 100644 index 000000000000..88868d20139d --- /dev/null +++ b/buildkite/src/External/prelude/Integer/lessThanEqual @@ -0,0 +1,47 @@ +{- +`lessThanEqual` checks if one Integer is less than or equal to another. +-} +let Natural/greaterThanEqual = + ../Natural/greaterThanEqual sha256:30ebfab0febd7aa0ccccfdf3dc36ee6d50f0117f35dd4a9b034750b7e885a1a4 + ? ../Natural/greaterThanEqual + +let Natural/lessThanEqual = + ../Natural/lessThanEqual sha256:1a5caa2b80a42b9f58fff58e47ac0d9a9946d0b2d36c54034b8ddfe3cb0f3c99 + ? ../Natural/lessThanEqual + +let nonPositive = + ./nonPositive sha256:e00a852eed5b84ff60487097d8aadce53c9e5301f53ff4954044bd68949fac3b + ? ./nonPositive + +let nonNegative = + ./nonNegative sha256:b463373f070df6b1c8c7082051e0810fee38b360bab35256187c8c2b6af5c663 + ? ./nonNegative + +let lessThanEqual + : Integer → Integer → Bool + = λ(x : Integer) + → λ(y : Integer) + → if nonPositive x + + then nonNegative y + || Natural/greaterThanEqual + (Integer/clamp (Integer/negate x)) + (Integer/clamp (Integer/negate y)) + + else Natural/lessThanEqual (Integer/clamp x) (Integer/clamp y) + +let example0 = assert : lessThanEqual +5 +6 ≡ True + +let example1 = assert : lessThanEqual +5 +5 ≡ True + +let example2 = assert : lessThanEqual +5 +4 ≡ False + +let example3 = assert : lessThanEqual -5 +8 ≡ True + +let example4 = assert : lessThanEqual -5 -3 ≡ True + +let example5 = assert : lessThanEqual -3 -5 ≡ False + +let example6 = assert : lessThanEqual -3 -3 ≡ True + +in lessThanEqual diff --git a/buildkite/src/External/prelude/Integer/multiply b/buildkite/src/External/prelude/Integer/multiply new file mode 100644 index 000000000000..08a97db01f19 --- /dev/null +++ b/buildkite/src/External/prelude/Integer/multiply @@ -0,0 +1,48 @@ +{- +`multiply m n` computes `m * n`. +-} + +let nonPositive = + ./nonPositive sha256:e00a852eed5b84ff60487097d8aadce53c9e5301f53ff4954044bd68949fac3b + ? ./nonPositive + +let multiplyNonNegative = + λ(x : Integer) + → λ(y : Integer) + → Natural/toInteger (Integer/clamp x * Integer/clamp y) + +let multiply + : Integer → Integer → Integer + = λ(m : Integer) + → λ(n : Integer) + → if nonPositive m + + then if nonPositive n + + then multiplyNonNegative (Integer/negate m) (Integer/negate n) + + else Integer/negate (multiplyNonNegative (Integer/negate m) n) + + else if nonPositive n + + then Integer/negate (multiplyNonNegative m (Integer/negate n)) + + else multiplyNonNegative m n + +let example0 = assert : multiply +3 +5 ≡ +15 + +let example1 = assert : multiply -3 +5 ≡ -15 + +let example2 = assert : multiply -3 -5 ≡ +15 + +let example3 = assert : multiply +0 +5 ≡ +0 + +let example4 = assert : multiply +5 +0 ≡ +0 + +let example5 = assert : multiply +0 +0 ≡ +0 + +let example6 = assert : multiply +1 +5 ≡ +5 + +let example7 = assert : multiply +3 -1 ≡ -3 + +in multiply diff --git a/buildkite/src/External/prelude/Integer/negate b/buildkite/src/External/prelude/Integer/negate new file mode 100644 index 000000000000..0790a55784f4 --- /dev/null +++ b/buildkite/src/External/prelude/Integer/negate @@ -0,0 +1,14 @@ +{- +Invert the sign of an `Integer`, with zero remaining unchanged. +-} +let negate + : Integer → Integer + = Integer/negate + +let example0 = assert : negate -3 ≡ +3 + +let example2 = assert : negate +7 ≡ -7 + +let example3 = assert : negate +0 ≡ +0 + +in negate diff --git a/buildkite/src/External/prelude/Integer/negative b/buildkite/src/External/prelude/Integer/negative new file mode 100644 index 000000000000..2542c26fb94c --- /dev/null +++ b/buildkite/src/External/prelude/Integer/negative @@ -0,0 +1,20 @@ +{- +Returns `True` for any `Integer` less than `+0`. + +`negative` is more efficient than `./lessThan +0` or `./lessThanEqual -1`. +-} +let positive = + ./positive sha256:7bdbf50fcdb83d01f74c7e2a92bf5c9104eff5d8c5b4587e9337f0caefcfdbe3 + ? ./positive + +let negative + : Integer → Bool + = λ(n : Integer) → positive (Integer/negate n) + +let example0 = assert : negative +1 ≡ False + +let example1 = assert : negative +0 ≡ False + +let example2 = assert : negative -1 ≡ True + +in negative diff --git a/buildkite/src/External/prelude/Integer/nonNegative b/buildkite/src/External/prelude/Integer/nonNegative new file mode 100644 index 000000000000..e9f6d373c01b --- /dev/null +++ b/buildkite/src/External/prelude/Integer/nonNegative @@ -0,0 +1,20 @@ +{- +Returns `True` for `+0` and any positive `Integer`. + +`nonNegative` is more efficient than `./greaterThanEqual +0` or `./greaterThan -1`. +-} +let nonPositive = + ./nonPositive sha256:e00a852eed5b84ff60487097d8aadce53c9e5301f53ff4954044bd68949fac3b + ? ./nonPositive + +let nonNegative + : Integer → Bool + = λ(n : Integer) → nonPositive (Integer/negate n) + +let example0 = assert : nonNegative +1 ≡ True + +let example1 = assert : nonNegative +0 ≡ True + +let example2 = assert : nonNegative -1 ≡ False + +in nonNegative diff --git a/buildkite/src/External/prelude/Integer/nonPositive b/buildkite/src/External/prelude/Integer/nonPositive new file mode 100644 index 000000000000..0b64cfc88dd2 --- /dev/null +++ b/buildkite/src/External/prelude/Integer/nonPositive @@ -0,0 +1,16 @@ +{- +Returns `True` for `+0` and any negative `Integer`. + +`nonPositive` is more efficient than `./lessThanEqual +0` or `./lessThan +1`. +-} +let nonPositive + : Integer → Bool + = λ(n : Integer) → Natural/isZero (Integer/clamp n) + +let example0 = assert : nonPositive +1 ≡ False + +let example1 = assert : nonPositive +0 ≡ True + +let example2 = assert : nonPositive -1 ≡ True + +in nonPositive diff --git a/buildkite/src/External/prelude/Integer/package.dhall b/buildkite/src/External/prelude/Integer/package.dhall new file mode 100644 index 000000000000..8c55b88a6b7b --- /dev/null +++ b/buildkite/src/External/prelude/Integer/package.dhall @@ -0,0 +1,55 @@ +{ abs = + ./abs sha256:35212fcbe1e60cb95b033a4a9c6e45befca4a298aa9919915999d09e69ddced1 + ? ./abs +, add = + ./add sha256:7da1306a0bf87c5668beead2a1db1b18861e53d7ce1f38057b2964b649f59c3b + ? ./add +, clamp = + ./clamp sha256:ea42096cf3e024fadfaf910e0b839005b0ea7514fff11e5a3950a77694d9c5d2 + ? ./clamp +, equal = + ./equal sha256:2d99a205086aa77eea17ae1dab22c275f3eb007bccdc8d9895b93497ebfc39f8 + ? ./equal +, greaterThan = + ./greaterThan sha256:d23affd73029fc9aaf867c2c7b86510ca2802d3f0d1f3e1d1a93ffd87b7cb64b + ? ./greaterThan +, greaterThanEqual = + ./greaterThanEqual sha256:a9fa2dc5cd6067a23b39d7fe8d14a63109583b320429fb0e446658a5aae0a958 + ? ./greaterThanEqual +, lessThan = + ./lessThan sha256:eeaa0081d10c6c97464ef193c40f1aa5cbb12f0202972ab42f3d310c2fd6a3f0 + ? ./lessThan +, lessThanEqual = + ./lessThanEqual sha256:e3cca9f3942f81fa78a2bea23c0c24519c67cfe438116c38e797e12dcd26f6bc + ? ./lessThanEqual +, multiply = + ./multiply sha256:dcb1ed7c8475ece8d67db92cd249fc728541778ff82509e28c3760e341880e4d + ? ./multiply +, negate = + ./negate sha256:2373c992e1de93634bc6a8781eb073b2a92a70170133e49762a785f3a136df5d + ? ./negate +, negative = + ./negative sha256:23e4b3c61eea9e878a7f83bf25fd0ea2c6a6d60174890d65be885828b690a570 + ? ./negative +, nonNegative = + ./nonNegative sha256:b463373f070df6b1c8c7082051e0810fee38b360bab35256187c8c2b6af5c663 + ? ./nonNegative +, nonPositive = + ./nonPositive sha256:e00a852eed5b84ff60487097d8aadce53c9e5301f53ff4954044bd68949fac3b + ? ./nonPositive +, positive = + ./positive sha256:7bdbf50fcdb83d01f74c7e2a92bf5c9104eff5d8c5b4587e9337f0caefcfdbe3 + ? ./positive +, show = + ./show sha256:ecf8b0594cd5181bc45d3b7ea0d44d3ba9ad5dac6ec17bb8968beb65f4b1baa9 + ? ./show +, subtract = + ./subtract sha256:a34d36272fa8ae4f1ec8b56222fe8dc8a2ec55ec6538b840de0cbe207b006fda + ? ./subtract +, toDouble = + ./toDouble sha256:77bc5d635dc4d952f37cc96f2a681d5ac503b4e8b21fc00055b1946adb5beda7 + ? ./toDouble +, toNatural = + ./toNatural sha256:4d128730d74e7f832e53873cb5204aa91b79758be5ce4e1aa991fe1951304a0e + ? ./toNatural +} diff --git a/buildkite/src/External/prelude/Integer/positive b/buildkite/src/External/prelude/Integer/positive new file mode 100644 index 000000000000..b0f573e1dd05 --- /dev/null +++ b/buildkite/src/External/prelude/Integer/positive @@ -0,0 +1,24 @@ +{- +Returns `True` for any `Integer` greater than `+0`. + +`positive` is more efficient than `./greaterThan +0` or `./greaterThanEqual +1`. +-} +let not = + ../Bool/not sha256:723df402df24377d8a853afed08d9d69a0a6d86e2e5b2bac8960b0d4756c7dc4 + ? ../Bool/not + +let nonPositive = + ./nonPositive sha256:e00a852eed5b84ff60487097d8aadce53c9e5301f53ff4954044bd68949fac3b + ? ./nonPositive + +let positive + : Integer → Bool + = λ(n : Integer) → not (nonPositive n) + +let example0 = assert : positive +1 ≡ True + +let example1 = assert : positive +0 ≡ False + +let example2 = assert : positive -1 ≡ False + +in positive diff --git a/buildkite/src/External/prelude/Integer/show b/buildkite/src/External/prelude/Integer/show new file mode 100644 index 000000000000..f012594633ad --- /dev/null +++ b/buildkite/src/External/prelude/Integer/show @@ -0,0 +1,14 @@ +{- +Render an `Integer` as `Text` using the same representation as Dhall source +code (i.e. a decimal number with a leading `-` sign if negative and a leading +`+` sign if non-negative) +-} +let show + : Integer → Text + = Integer/show + +let example0 = assert : show -3 ≡ "-3" + +let example1 = assert : show +0 ≡ "+0" + +in show diff --git a/buildkite/src/External/prelude/Integer/subtract b/buildkite/src/External/prelude/Integer/subtract new file mode 100644 index 000000000000..21b78b7cf592 --- /dev/null +++ b/buildkite/src/External/prelude/Integer/subtract @@ -0,0 +1,63 @@ +{- +`subtract m n` computes `n - m`. +-} +let nonPositive = + ./nonPositive sha256:e00a852eed5b84ff60487097d8aadce53c9e5301f53ff4954044bd68949fac3b + ? ./nonPositive + +let subtractNonNegative = + λ(xi : Integer) + → λ(yi : Integer) + → let xn = Integer/clamp xi + + let yn = Integer/clamp yi + + let dn = Natural/subtract xn yn + + in if Natural/isZero dn + + then Integer/negate (Natural/toInteger (Natural/subtract yn xn)) + + else Natural/toInteger dn + +let subtract + : Integer → Integer → Integer + = λ(m : Integer) + → λ(n : Integer) + → if nonPositive m + + then if nonPositive n + + then subtractNonNegative (Integer/negate n) (Integer/negate m) + + else Natural/toInteger + (Integer/clamp (Integer/negate m) + Integer/clamp n) + + else if nonPositive n + + then Integer/negate + ( Natural/toInteger + (Integer/clamp m + Integer/clamp (Integer/negate n)) + ) + + else subtractNonNegative m n + +let example0 = assert : subtract +3 +5 ≡ +2 + +let example1 = assert : subtract +4 +4 ≡ +0 + +let example2 = assert : subtract +5 +3 ≡ -2 + +let example3 = assert : subtract -3 -5 ≡ -2 + +let example4 = assert : subtract -4 -4 ≡ +0 + +let example5 = assert : subtract -5 -3 ≡ +2 + +let example6 = assert : subtract -3 +5 ≡ +8 + +let example7 = assert : subtract +3 -5 ≡ -8 + +let example8 = assert : subtract +0 -3 ≡ -3 + +in subtract diff --git a/buildkite/src/External/prelude/Integer/toDouble b/buildkite/src/External/prelude/Integer/toDouble new file mode 100644 index 000000000000..612e4689f61e --- /dev/null +++ b/buildkite/src/External/prelude/Integer/toDouble @@ -0,0 +1,12 @@ +{- +Convert an `Integer` to the corresponding `Double` +-} +let toDouble + : Integer → Double + = Integer/toDouble + +let example0 = assert : toDouble -3 ≡ -3.0 + +let example1 = assert : toDouble +2 ≡ 2.0 + +in toDouble diff --git a/buildkite/src/External/prelude/Integer/toNatural b/buildkite/src/External/prelude/Integer/toNatural new file mode 100644 index 000000000000..03504f5ee5fc --- /dev/null +++ b/buildkite/src/External/prelude/Integer/toNatural @@ -0,0 +1,19 @@ +{- +Convert an `Integer` to an `Optional Natural`, with negative numbers becoming `None Natural`. +-} +let nonNegative = + ./nonNegative sha256:b463373f070df6b1c8c7082051e0810fee38b360bab35256187c8c2b6af5c663 + ? ./nonNegative + +let toNatural + : Integer → Optional Natural + = λ(n : Integer) + → if nonNegative n then Some (Integer/clamp n) else None Natural + +let example0 = assert : toNatural +7 ≡ Some 7 + +let example2 = assert : toNatural +0 ≡ Some 0 + +let example3 = assert : toNatural -3 ≡ None Natural + +in toNatural diff --git a/buildkite/src/External/prelude/JSON/Format b/buildkite/src/External/prelude/JSON/Format new file mode 100644 index 000000000000..efc710240202 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/Format @@ -0,0 +1,7 @@ +{- An internal type used by `./renderAs` to select the output format. + + You should not need to use this type directly, simply use `./render` + or `./renderYAML` as appropriate. +-} + +< YAML | JSON > diff --git a/buildkite/src/External/prelude/JSON/Nesting b/buildkite/src/External/prelude/JSON/Nesting new file mode 100644 index 000000000000..626696a9de39 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/Nesting @@ -0,0 +1,35 @@ +{- +This type is used as part of `dhall-json`'s support for preserving alternative +names + +For example, this Dhall code: + +``` +let Example = < Left : { foo : Natural } | Right : { bar : Bool } > + +let Nesting = < Inline | Nested : Text > + +in { field = + "name" + , nesting = + Nesting.Inline + , contents = + Example.Left { foo = 2 } + } +``` + +... generates this JSON: + +``` +{ + "foo": 2, + "name": "Left" + } +``` + +-} +let Nesting + : Type + = < Inline | Nested : Text > + +in Nesting diff --git a/buildkite/src/External/prelude/JSON/Tagged b/buildkite/src/External/prelude/JSON/Tagged new file mode 100644 index 000000000000..bb75e2b31512 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/Tagged @@ -0,0 +1,73 @@ +{- +This is a convenient type-level function when using `dhall-to-json`'s support +for preserving alternative names + +For example, this code: + +``` +let map = ../List/map + +let Provisioner = + < shell : + { inline : List Text } + | file : + { source : Text, destination : Text } + > + +let Tagged = ./Tagged + +let Nesting = ./Nesting + +let wrap + : Provisioner → Tagged Provisioner + = λ(x : Provisioner) + → { field = "type", nesting = Nesting.Nested "params", contents = x } + +in { provisioners = + map + Provisioner + (Tagged Provisioner) + wrap + [ Provisioner.shell { inline = [ "echo foo" ] } + , Provisioner.file + { source = "app.tar.gz", destination = "/tmp/app.tar.gz" } + ] + } +``` + +... produces this JSON: + +``` +{ + "provisioners": [ + { + "params": { + "inline": [ + "echo foo" + ] + }, + "type": "shell" + }, + { + "params": { + "destination": "/tmp/app.tar.gz", + "source": "app.tar.gz" + }, + "type": "file" + } + ] +} +``` + +-} +let Tagged + : Type → Type + = λ(a : Type) + → { field : Text + , nesting : + ./Nesting sha256:6284802edd41d5d725aa1ec7687e614e21ad1be7e14dd10996bfa9625105c335 + ? ./Nesting + , contents : a + } + +in Tagged diff --git a/buildkite/src/External/prelude/JSON/Type b/buildkite/src/External/prelude/JSON/Type new file mode 100644 index 000000000000..1712c186d08b --- /dev/null +++ b/buildkite/src/External/prelude/JSON/Type @@ -0,0 +1,73 @@ +{- Dhall encoding of an arbitrary JSON value + + For example, the following JSON value: + +``` +[ { "foo": null, "bar": [ 1.0, true ] } ] +``` + + ... corresponds to the following Dhall expression: + +``` + λ(JSON : Type) +→ λ ( json + : { array : + List JSON → JSON + , bool : + Bool → JSON + , null : + JSON + , double : + Double → JSON + , integer : + Integer → JSON + , object : + List { mapKey : Text, mapValue : JSON } → JSON + , string : + Text → JSON + } + ) +→ json.object + [ { mapKey = "foo", mapValue = json.null } + , { mapKey = + "bar" + , mapValue = + json.array [ json.double 1.0, json.bool True ] + } + ] +``` + + You do not need to create these values directly, though. You can use + the utilities exported by `./package.dhall` to create values of this type, + such as: + +``` +let JSON = ./package.dhall + +in JSON.object + [ { mapKey = "foo", mapValue = JSON.null } + , { mapKey = + "bar" + , mapValue = + JSON.array [ JSON.double 1.0, JSON.bool True ] + } + ] +``` + +-} +let JSON/Type + : Type + = ∀(JSON : Type) + → ∀ ( json + : { array : List JSON → JSON + , bool : Bool → JSON + , double : Double → JSON + , integer : Integer → JSON + , null : JSON + , object : List { mapKey : Text, mapValue : JSON } → JSON + , string : Text → JSON + } + ) + → JSON + +in JSON/Type diff --git a/buildkite/src/External/prelude/JSON/array b/buildkite/src/External/prelude/JSON/array new file mode 100644 index 000000000000..981d47557821 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/array @@ -0,0 +1,38 @@ +{- Create a JSON array from a `List` of JSON values + +``` +let JSON = ./package.dhall +in JSON.render (JSON.array [ JSON.double 1.0, JSON.bool True ]) += "[ 1.0, true ]" + +let JSON/Type = ./Type +let JSON = ./package.dhall +in JSON.render (JSON.array ([] : List JSON/Type)) += "[ ]" +``` +-} +let JSON = + ./Type sha256:40edbc9371979426df63e064333b02689b969c4cfbbccfa481216d2d1a6e9759 + ? ./Type + +let List/map = + ../List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 + ? ../List/map + +let array + : List JSON → JSON + = λ(x : List JSON) + → λ(JSON : Type) + → λ ( json + : { array : List JSON → JSON + , bool : Bool → JSON + , double : Double → JSON + , integer : Integer → JSON + , null : JSON + , object : List { mapKey : Text, mapValue : JSON } → JSON + , string : Text → JSON + } + ) + → json.array (List/map JSON@1 JSON (λ(j : JSON@1) → j JSON json) x) + +in array diff --git a/buildkite/src/External/prelude/JSON/bool b/buildkite/src/External/prelude/JSON/bool new file mode 100644 index 000000000000..d1ad6e5f44d6 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/bool @@ -0,0 +1,33 @@ +{- Create a JSON bool from a Dhall `Bool` + +``` +let JSON = ./package.dhall +in JSON.render (JSON.bool True) += "true" + +let JSON = ./package.dhall +in JSON.render (JSON.bool False) += "false" +``` +-} +let JSON = + ./Type sha256:40edbc9371979426df63e064333b02689b969c4cfbbccfa481216d2d1a6e9759 + ? ./Type + +let bool + : Bool → JSON + = λ(x : Bool) + → λ(JSON : Type) + → λ ( json + : { array : List JSON → JSON + , bool : Bool → JSON + , double : Double → JSON + , integer : Integer → JSON + , null : JSON + , object : List { mapKey : Text, mapValue : JSON } → JSON + , string : Text → JSON + } + ) + → json.bool x + +in bool diff --git a/buildkite/src/External/prelude/JSON/core.dhall b/buildkite/src/External/prelude/JSON/core.dhall new file mode 100644 index 000000000000..eb8fd443a17f --- /dev/null +++ b/buildkite/src/External/prelude/JSON/core.dhall @@ -0,0 +1,56 @@ +{- A record of functions useful for constructing `JSON` values. + + This is only a subset of what `package.dhall` exports. If you are + not writing a JSON prelude function, you should use the + `package.dhall` file instead. + + It is used internally by `render`, `renderYAML` and + `omitNullFields` instead of `package.dhall` to avoid import + cycles. +-} +{ Type = + ./Type sha256:40edbc9371979426df63e064333b02689b969c4cfbbccfa481216d2d1a6e9759 + ? ./Type +, Tagged = + ./Tagged sha256:21feca7d2b23f210d0696131d792e18a7d24fdcc85d41a49ba85b98670eba194 + ? ./Tagged +, Nesting = + ./Nesting sha256:6284802edd41d5d725aa1ec7687e614e21ad1be7e14dd10996bfa9625105c335 + ? ./Nesting +, keyText = + ./keyText sha256:f7b6c802ca5764d03d5e9a6e48d9cb167c01392f775d9c2c87b83cdaa60ea0cc + ? ./keyText +, keyValue = + ./keyValue sha256:a0a97199d280c4cce72ffcbbf93b7ceda0a569cf4d173ac98e0aaaa78034b98c + ? ./keyValue +, string = + ./string sha256:7ddb3a3b9f3ed09ed011d621a10ad9825185cd03503be98a81d42f6afb77940e + ? ./string +, number = + ./number sha256:e70162c73c4978ad0d0d99505f61c7d990f3abadfcc08b34388b29c0934a7a32 + ? ./number +, double = + ./double sha256:e70162c73c4978ad0d0d99505f61c7d990f3abadfcc08b34388b29c0934a7a32 + ? ./double +, integer = + ./integer sha256:c81a417397fc6f62155ec71fdd8d2047f981f0881295b307de3dd88747bf7e40 + ? ./integer +, natural = + ./natural sha256:a839dc6789f19f820e9cbf70c60f41f3b057c59ece1d226d04db5aca447eb0e5 + ? ./natural +, object = + ./object sha256:869aede785c34798be9f9fd457ece73e7f683f352ae4555f791516a365faf4ac + ? ./object +, array = + ./array sha256:fb6346a9c63638fe3c59f8108e19eebdbddc51389ec5570bab4c25f890ccccc8 + ? ./array +, bool = + ./bool sha256:e043d9ed01e5b45899059e128243f3dae7ce65f293f0015ce816fc36d30f7f39 + ? ./bool +, null = + ./null sha256:1eeb9aee38eb8dde0e64efbaf60f24612c8194cc00b510bfb627c2ee2e1877b8 + ? ./null +, renderInteger = + ./renderInteger.dhall sha256:15b8d2ae46d5002832741927af787761df49798c911e2bf85db7a7b9cb5c078c + ? ./renderInteger.dhall +} diff --git a/buildkite/src/External/prelude/JSON/double b/buildkite/src/External/prelude/JSON/double new file mode 100644 index 000000000000..eddfee17aa53 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/double @@ -0,0 +1,33 @@ +{- Create a JSON number from a Dhall `Double` + +``` +let JSON = ./package.dhall +in JSON.render (JSON.double 42.0) += "42.0" + +let JSON = ./package.dhall +in JSON.render (JSON.double -1.5e-10) += "-1.5e-10" +``` +-} +let JSON = + ./Type sha256:40edbc9371979426df63e064333b02689b969c4cfbbccfa481216d2d1a6e9759 + ? ./Type + +let double + : Double → JSON + = λ(x : Double) + → λ(JSON : Type) + → λ ( json + : { array : List JSON → JSON + , bool : Bool → JSON + , double : Double → JSON + , integer : Integer → JSON + , null : JSON + , object : List { mapKey : Text, mapValue : JSON } → JSON + , string : Text → JSON + } + ) + → json.double x + +in double diff --git a/buildkite/src/External/prelude/JSON/integer b/buildkite/src/External/prelude/JSON/integer new file mode 100644 index 000000000000..9e4166d4c234 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/integer @@ -0,0 +1,33 @@ +{- Create a JSON number from a Dhall `Integer` + +``` +let JSON = ./package.dhall +in JSON.render (JSON.integer -1) += "-1" + +let JSON = ./package.dhall +in JSON.render (JSON.integer +2) += "+2" +``` +-} +let JSON = + ./Type sha256:40edbc9371979426df63e064333b02689b969c4cfbbccfa481216d2d1a6e9759 + ? ./Type + +let integer + : Integer → JSON + = λ(x : Integer) + → λ(JSON : Type) + → λ ( json + : { array : List JSON → JSON + , bool : Bool → JSON + , double : Double → JSON + , integer : Integer → JSON + , null : JSON + , object : List { mapKey : Text, mapValue : JSON } → JSON + , string : Text → JSON + } + ) + → json.integer x + +in integer diff --git a/buildkite/src/External/prelude/JSON/keyText b/buildkite/src/External/prelude/JSON/keyText new file mode 100644 index 000000000000..00761a63b1c3 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/keyText @@ -0,0 +1,2 @@ + ../Map/keyText sha256:f7b6c802ca5764d03d5e9a6e48d9cb167c01392f775d9c2c87b83cdaa60ea0cc +? ../Map/keyText diff --git a/buildkite/src/External/prelude/JSON/keyValue b/buildkite/src/External/prelude/JSON/keyValue new file mode 100644 index 000000000000..7ddfe7e0a92c --- /dev/null +++ b/buildkite/src/External/prelude/JSON/keyValue @@ -0,0 +1,2 @@ + ../Map/keyValue sha256:a0a97199d280c4cce72ffcbbf93b7ceda0a569cf4d173ac98e0aaaa78034b98c +? ../Map/keyValue diff --git a/buildkite/src/External/prelude/JSON/natural b/buildkite/src/External/prelude/JSON/natural new file mode 100644 index 000000000000..6d9b210fb52d --- /dev/null +++ b/buildkite/src/External/prelude/JSON/natural @@ -0,0 +1,29 @@ +{- Create a JSON number from a Dhall `Natural` + +``` +let JSON = ./package.dhall +in JSON.render (JSON.natural 42) += "42" +``` +-} +let JSON = + ./Type sha256:40edbc9371979426df63e064333b02689b969c4cfbbccfa481216d2d1a6e9759 + ? ./Type + +let natural + : Natural → JSON + = λ(x : Natural) + → λ(JSON : Type) + → λ ( json + : { array : List JSON → JSON + , bool : Bool → JSON + , double : Double → JSON + , integer : Integer → JSON + , null : JSON + , object : List { mapKey : Text, mapValue : JSON } → JSON + , string : Text → JSON + } + ) + → json.integer (Natural/toInteger x) + +in natural diff --git a/buildkite/src/External/prelude/JSON/null b/buildkite/src/External/prelude/JSON/null new file mode 100644 index 000000000000..69c9d0acba1f --- /dev/null +++ b/buildkite/src/External/prelude/JSON/null @@ -0,0 +1,28 @@ +{- Create a JSON null + +``` +let JSON = ./package.dhall +in JSON.render JSON.null += "null" +``` +-} +let JSON = + ./Type sha256:40edbc9371979426df63e064333b02689b969c4cfbbccfa481216d2d1a6e9759 + ? ./Type + +let null + : JSON + = λ(JSON : Type) + → λ ( json + : { array : List JSON → JSON + , bool : Bool → JSON + , double : Double → JSON + , integer : Integer → JSON + , null : JSON + , object : List { mapKey : Text, mapValue : JSON } → JSON + , string : Text → JSON + } + ) + → json.null + +in null diff --git a/buildkite/src/External/prelude/JSON/number b/buildkite/src/External/prelude/JSON/number new file mode 100644 index 000000000000..9deb5c0bb9e1 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/number @@ -0,0 +1,25 @@ +{- Create a JSON number from a Dhall `Double` + +``` +let JSON = ./package.dhall +in JSON.render (JSON.number 42.0) += "42.0" + +let JSON = ./package.dhall +in JSON.render (JSON.number -1.5e-10) += "-1.5e-10" +``` +-} +let JSON = + ./Type sha256:40edbc9371979426df63e064333b02689b969c4cfbbccfa481216d2d1a6e9759 + ? ./Type + +let double = + ./double sha256:e70162c73c4978ad0d0d99505f61c7d990f3abadfcc08b34388b29c0934a7a32 + ? ./double + +let number + : Double → JSON + = double + +in number diff --git a/buildkite/src/External/prelude/JSON/object b/buildkite/src/External/prelude/JSON/object new file mode 100644 index 000000000000..0f8b9ad33343 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/object @@ -0,0 +1,52 @@ +{- Create a JSON object from a Dhall `Map` + +``` +let JSON = ./package.dhall +in JSON.render + ( JSON.object + [ { mapKey = "foo", mapValue = JSON.double 1.0 } + , { mapKey = "bar", mapValue = JSON.bool True } + ] + ) += "{ \"foo\": 1.0, \"bar\": true }" + +let JSON/Type = ./Type +let JSON = ./package.dhall +in JSON.render + (JSON.object ([] : List { mapKey : Text, mapValue : JSON/Type })) += "{ }" +``` +-} +let JSON = + ./Type sha256:40edbc9371979426df63e064333b02689b969c4cfbbccfa481216d2d1a6e9759 + ? ./Type + +let List/map = + ../List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 + ? ../List/map + +let object + : List { mapKey : Text, mapValue : JSON } → JSON + = λ(x : List { mapKey : Text, mapValue : JSON }) + → λ(JSON : Type) + → λ ( json + : { array : List JSON → JSON + , bool : Bool → JSON + , double : Double → JSON + , integer : Integer → JSON + , null : JSON + , object : List { mapKey : Text, mapValue : JSON } → JSON + , string : Text → JSON + } + ) + → json.object + ( List/map + { mapKey : Text, mapValue : JSON@1 } + { mapKey : Text, mapValue : JSON } + ( λ(kv : { mapKey : Text, mapValue : JSON@1 }) + → { mapKey = kv.mapKey, mapValue = kv.mapValue JSON json } + ) + x + ) + +in object diff --git a/buildkite/src/External/prelude/JSON/omitNullFields b/buildkite/src/External/prelude/JSON/omitNullFields new file mode 100644 index 000000000000..4dd579a6b370 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/omitNullFields @@ -0,0 +1,144 @@ +{- +This utility omits all `null` record fields, which is often the idiomatic way +for a configuration to encode absent fields +-} +let JSON = + ./core.dhall sha256:5dc1135d5481cfd6fde625aaed9fcbdb7aa7c14f2e76726aa5fdef028a5c10f5 + ? ./core.dhall + +let List/concatMap = + ../List/concatMap sha256:3b2167061d11fda1e4f6de0522cbe83e0d5ac4ef5ddf6bb0b2064470c5d3fb64 + ? ../List/concatMap + +let List/map = + ../List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 + ? ../List/map + +let omitNullFields + : JSON.Type → JSON.Type + = λ(old : JSON.Type) + → λ(JSON : Type) + → λ ( json + : { array : List JSON → JSON + , bool : Bool → JSON + , double : Double → JSON + , integer : Integer → JSON + , null : JSON + , object : List { mapKey : Text, mapValue : JSON } → JSON + , string : Text → JSON + } + ) + → let result = + old + { value : JSON, isNull : Bool } + { string = + λ(x : Text) → { value = json.string x, isNull = False } + , double = + λ(x : Double) → { value = json.double x, isNull = False } + , integer = + λ(x : Integer) → { value = json.integer x, isNull = False } + , object = + λ ( keyValues + : List + { mapKey : Text + , mapValue : { value : JSON, isNull : Bool } + } + ) + → let value = + json.object + ( List/concatMap + { mapKey : Text + , mapValue : { value : JSON, isNull : Bool } + } + { mapKey : Text, mapValue : JSON } + ( λ ( keyValue + : { mapKey : Text + , mapValue : + { value : JSON, isNull : Bool } + } + ) + → if keyValue.mapValue.isNull + + then [] : List + { mapKey : Text + , mapValue : JSON + } + + else [ keyValue.{ mapKey } + ∧ { mapValue = + keyValue.mapValue.value + } + ] + ) + keyValues + ) + + in { value = value, isNull = False } + , array = + λ(xs : List { value : JSON, isNull : Bool }) + → let value = + json.array + ( List/map + { value : JSON, isNull : Bool } + JSON + ( λ(x : { value : JSON, isNull : Bool }) + → x.value + ) + xs + ) + + in { value = value, isNull = False } + , bool = λ(x : Bool) → { value = json.bool x, isNull = False } + , null = { value = json.null, isNull = True } + } + + in result.value + +let property = + λ(a : Text) + → λ(b : Double) + → λ(c : Bool) + → assert + : omitNullFields + ( JSON.object + ( toMap + { string = JSON.string a + , double = JSON.double b + , bool = JSON.bool c + , null = JSON.null + } + ) + ) + ≡ JSON.object + ( toMap + { string = JSON.string a + , double = JSON.double b + , bool = JSON.bool c + } + ) + +let example = + assert + : omitNullFields + ( JSON.object + ( toMap + { array = + JSON.array [ JSON.object (toMap { null = JSON.null }) ] + } + ) + ) + ≡ JSON.object + ( toMap + { array = + JSON.array + [ JSON.object + ([] : List { mapKey : Text, mapValue : JSON.Type }) + ] + } + ) + +let example = + assert + : omitNullFields (JSON.array [ JSON.null ]) ≡ JSON.array [ JSON.null ] + +in omitNullFields diff --git a/buildkite/src/External/prelude/JSON/package.dhall b/buildkite/src/External/prelude/JSON/package.dhall new file mode 100644 index 000000000000..c299cae53842 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/package.dhall @@ -0,0 +1,19 @@ + { render = + ./render sha256:eb26e0a4eee530dcda9d73974e9e9256fbad264916101866406a1647e28e280d + ? ./render + , renderYAML = + ./renderYAML sha256:d406a8744b81ced6a485da3cdb40a357fdd37338f4f134b00e7da3684054ebd3 + ? ./renderYAML + , omitNullFields = + ./omitNullFields sha256:e6850e70094540b75edeb46f4d6038324a62def8d63544a1e9541f79739db6f0 + ? ./omitNullFields + , tagInline = + ./tagInline sha256:49559ac11906ba6cc9eac25753e31e7addb13bc760df108024174c55523984c4 + ? ./tagInline + , tagNested = + ./tagNested sha256:93a7415853b7677c832246efadc8e880c1b641a23589286a836a384ca311d26f + ? ./tagNested + } +/\ ( ./core.dhall sha256:5dc1135d5481cfd6fde625aaed9fcbdb7aa7c14f2e76726aa5fdef028a5c10f5 + ? ./core.dhall + ) diff --git a/buildkite/src/External/prelude/JSON/render b/buildkite/src/External/prelude/JSON/render new file mode 100644 index 000000000000..b67e9b8cf528 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/render @@ -0,0 +1,49 @@ +{- Render a `JSON` value as `Text` + + This is useful for debugging `JSON` values or for tests. For anything + more sophisticated you should use `dhall-to-json` or `dhall-to-yaml` + +-} +let JSON = + ./core.dhall sha256:5dc1135d5481cfd6fde625aaed9fcbdb7aa7c14f2e76726aa5fdef028a5c10f5 + ? ./core.dhall + +let renderAs = + ./renderAs sha256:f16238edec4c6dd846f19677c6675b27c579999dcff91db6193c10ade1d83174 + ? ./renderAs + +let Format = + ./Format sha256:d7936b510cfc091faa994652af0eb5feb889cd44bc989edbe4f1eb8c5623caac + ? ./Format + +let render + : JSON.Type → Text + = renderAs Format.JSON + +let example0 = + let data = + assert + : render + ( JSON.array + [ JSON.bool True + , JSON.string "Hello" + , JSON.object + [ { mapKey = "foo", mapValue = JSON.null } + , { mapKey = "bar", mapValue = JSON.double 1.0 } + ] + ] + ) + ≡ '' + [ + true, + "Hello", + { + "foo": null, + "bar": 1.0 + } + ] + '' + + in True + +in render diff --git a/buildkite/src/External/prelude/JSON/renderAs b/buildkite/src/External/prelude/JSON/renderAs new file mode 100644 index 000000000000..7a2d263aaf46 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/renderAs @@ -0,0 +1,443 @@ +{- Render a `JSON` value as `Text` in either JSON or YAML format. -} + +let JSON = + ./core.dhall sha256:5dc1135d5481cfd6fde625aaed9fcbdb7aa7c14f2e76726aa5fdef028a5c10f5 + ? ./core.dhall + +let Function/identity = + ../Function/identity sha256:f78b96792b459cb664f41c6119bd8897dd04353a3343521d436cd82ad71cb4d4 + ? ../Function/identity + +let Text/concatMap = + ../Text/concatMap sha256:7a0b0b99643de69d6f94ba49441cd0fa0507cbdfa8ace0295f16097af37e226f + ? ../Text/concatMap + +let List/take = + ../List/take sha256:b3e08ee8c3a5bf3d8ccee6b2b2008fbb8e51e7373aef6f1af67ad10078c9fbfa + ? ../List/take + +let List/drop = + ../List/drop sha256:af983ba3ead494dd72beed05c0f3a17c36a4244adedf7ced502c6512196ed0cf + ? ../List/drop + +let List/null = + ../List/null sha256:2338e39637e9a50d66ae1482c0ed559bbcc11e9442bfca8f8c176bbcd9c4fc80 + ? ../List/null + +let List/map = + ../List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 + ? ../List/map + +let List/concatMap = + ../List/concatMap sha256:3b2167061d11fda1e4f6de0522cbe83e0d5ac4ef5ddf6bb0b2064470c5d3fb64 + ? ../List/concatMap + +let Optional/map = + ../Optional/map sha256:501534192d988218d43261c299cc1d1e0b13d25df388937add784778ab0054fa + ? ../Optional/map + +let NonEmpty + : Type → Type + = λ(a : Type) → { head : a, tail : List a } + +let List/uncons + : ∀(a : Type) → List a → Optional (NonEmpty a) + = λ(a : Type) + → λ(ls : List a) + → Optional/map + a + (NonEmpty a) + (λ(head : a) → { head = head, tail = List/drop 1 a ls }) + (List/head a ls) + +let NonEmpty/singleton + : ∀(a : Type) → a → NonEmpty a + = λ(a : Type) → λ(x : a) → { head = x, tail = [] : List a } + +let NonEmpty/toList + : ∀(a : Type) → NonEmpty a → List a + = λ(a : Type) → λ(nonEmpty : NonEmpty a) → [ nonEmpty.head ] # nonEmpty.tail + +let NonEmpty/concat + : ∀(a : Type) → NonEmpty (NonEmpty a) → NonEmpty a + = λ(a : Type) + → λ(lss : NonEmpty (NonEmpty a)) + → { head = lss.head.head + , tail = + lss.head.tail + # List/concatMap (NonEmpty a) a (NonEmpty/toList a) lss.tail + } + +let NonEmpty/map + : ∀(a : Type) → ∀(b : Type) → (a → b) → NonEmpty a → NonEmpty b + = λ(a : Type) + → λ(b : Type) + → λ(fn : a → b) + → λ(ls : NonEmpty a) + → { head = fn ls.head, tail = List/map a b fn ls.tail } + +let NonEmpty/mapHead + : ∀(a : Type) → (a → a) → NonEmpty a → NonEmpty a + = λ(a : Type) + → λ(fn : a → a) + → λ(ls : NonEmpty a) + → ls ⫽ { head = fn ls.head } + +let NonEmpty/mapTail + : ∀(a : Type) → (a → a) → NonEmpty a → NonEmpty a + = λ(a : Type) + → λ(fn : a → a) + → λ(ls : NonEmpty a) + → ls ⫽ { tail = List/map a a fn ls.tail } + +let List/splitAt + : Natural → ∀(a : Type) → List a → { head : List a, tail : List a } + = λ(index : Natural) + → λ(a : Type) + → λ(ls : List a) + → { head = List/take index a ls, tail = List/drop index a ls } + +let _testSplitAt0 = + assert + : List/splitAt 0 Natural [ 1, 2, 3 ] + ≡ { head = [] : List Natural, tail = [ 1, 2, 3 ] } + +let _testSplitAt1 = + assert + : List/splitAt 1 Natural [ 1, 2, 3 ] ≡ { head = [ 1 ], tail = [ 2, 3 ] } + +let _testSplitAt3 = + assert + : List/splitAt 3 Natural [ 1, 2, 3 ] + ≡ { head = [ 1, 2, 3 ], tail = [] : List Natural } + +let _testSplitAt = + assert + : List/splitAt 1 Natural ([] : List Natural) + ≡ { head = [] : List Natural, tail = [] : List Natural } + +let List/splitLast = + λ(a : Type) + → λ(ls : List a) + → List/splitAt (Natural/subtract 1 (List/length a ls)) a ls + +let NonEmpty/prepend + : ∀(a : Type) → a → NonEmpty a → NonEmpty a + = λ(a : Type) + → λ(prefix : a) + → λ(ls : NonEmpty a) + → { head = prefix, tail = NonEmpty/toList a ls } + +let NonEmpty/append + : ∀(a : Type) → a → NonEmpty a → NonEmpty a + = λ(a : Type) + → λ(suffix : a) + → λ(ls : NonEmpty a) + → { head = ls.head, tail = ls.tail # [ suffix ] } + +let NonEmpty/mapLast + : ∀(a : Type) → (a → a) → NonEmpty a → NonEmpty a + = λ(a : Type) + → λ(fn : a → a) + → λ(ls : NonEmpty a) + → if List/null a ls.tail + + then { head = fn ls.head, tail = [] : List a } + + else let split = List/splitLast a ls.tail + + in { head = ls.head + , tail = split.head # List/map a a fn split.tail + } + +let NonEmpty/mapLeading + : ∀(a : Type) → (a → a) → NonEmpty a → NonEmpty a + = λ(a : Type) + → λ(fn : a → a) + → λ(ls : NonEmpty a) + → if List/null a ls.tail + + then ls + + else let split = List/splitLast a ls.tail + + in { head = fn ls.head + , tail = List/map a a fn split.head # split.tail + } + +let Lines + : Type + = NonEmpty Text + +let Block + : Type + = < Simple : Text | Complex : Lines > + +let Block/toLines + : Block → Lines + = λ(block : Block) + → merge + { Simple = NonEmpty/singleton Text + , Complex = Function/identity Lines + } + block + +let manyBlocks + : ∀(a : Type) → Text → (NonEmpty a → Lines) → List a → Block + = λ(a : Type) + → λ(ifEmpty : Text) + → λ(render : NonEmpty a → Lines) + → λ(inputs : List a) + → merge + { Some = λ(inputs : NonEmpty a) → Block.Complex (render inputs) + , None = Block.Simple ifEmpty + } + (List/uncons a inputs) + +let blockToText + : Block → Text + = λ(block : Block) + → Text/concatMap + Text + (λ(line : Text) → line ++ "\n") + (NonEmpty/toList Text (Block/toLines block)) + +let addPrefix = λ(prefix : Text) → λ(line : Text) → prefix ++ line + +let addIndent = addPrefix " " + +let indentTail = NonEmpty/mapTail Text addIndent + +let Format = + ./Format sha256:d7936b510cfc091faa994652af0eb5feb889cd44bc989edbe4f1eb8c5623caac + ? ./Format + +let ObjectField = { mapKey : Text, mapValue : Block } + +let renderJSONStruct = + λ(prefix : Text) + → λ(suffix : Text) + → λ(blocks : NonEmpty Lines) + → let indent = NonEmpty/map Text Text addIndent + + let appendComma + : Lines → Lines + = NonEmpty/mapLast Text (λ(line : Text) → line ++ ",") + + let blocks = NonEmpty/mapLeading Lines appendComma blocks + + let block = NonEmpty/concat Text blocks + + in if List/null Text block.tail + + then NonEmpty/singleton Text "${prefix} ${block.head} ${suffix}" + + else NonEmpty/prepend + Text + prefix + (NonEmpty/append Text suffix (indent block)) + +let renderObject = + λ(format : Format) + → λ(fields : NonEmpty ObjectField) + → let keystr = λ(field : ObjectField) → "${Text/show field.mapKey}:" + + let prefixKeyOnFirst = + λ(field : ObjectField) + → NonEmpty/mapHead + Text + (addPrefix "${keystr field} ") + (Block/toLines field.mapValue) + + let prependKeyLine = + λ(field : ObjectField) + → NonEmpty/prepend + Text + (keystr field) + (Block/toLines field.mapValue) + + let renderYAMLField = + λ(field : ObjectField) + → merge + { Simple = + λ(line : Text) + → NonEmpty/singleton Text "${keystr field} ${line}" + , Complex = λ(_ : Lines) → indentTail (prependKeyLine field) + } + field.mapValue + + in merge + { JSON = + renderJSONStruct + "{" + "}" + (NonEmpty/map ObjectField Lines prefixKeyOnFirst fields) + , YAML = + NonEmpty/concat + Text + (NonEmpty/map ObjectField Lines renderYAMLField fields) + } + format + +let renderYAMLArrayField = + λ(block : Block) + → NonEmpty/mapHead + Text + (addPrefix "- ") + (indentTail (Block/toLines block)) + +let renderArray = + λ(format : Format) + → λ(fields : NonEmpty Block) + → merge + { JSON = + renderJSONStruct + "[" + "]" + (NonEmpty/map Block Lines Block/toLines fields) + , YAML = + NonEmpty/concat + Text + (NonEmpty/map Block Lines renderYAMLArrayField fields) + } + format + +let renderAs + : Format → JSON.Type → Text + = λ(format : Format) + → λ(json : JSON.Type) + → blockToText + ( json + Block + { string = λ(x : Text) → Block.Simple (Text/show x) + , double = λ(x : Double) → Block.Simple (Double/show x) + , integer = λ(x : Integer) → Block.Simple (JSON.renderInteger x) + , object = manyBlocks ObjectField "{}" (renderObject format) + , array = manyBlocks Block "[]" (renderArray format) + , bool = + λ(x : Bool) → Block.Simple (if x then "true" else "false") + , null = Block.Simple "null" + } + ) + +let example0 = + let data = + JSON.array + [ JSON.bool True + , JSON.string "Hello" + , JSON.object + [ { mapKey = "foo", mapValue = JSON.null } + , { mapKey = "bar", mapValue = JSON.double 1.0 } + ] + ] + + let yaml = + assert + : renderAs Format.YAML data + ≡ '' + - true + - "Hello" + - "foo": null + "bar": 1.0 + '' + + let json = + assert + : renderAs Format.JSON data + ≡ '' + [ + true, + "Hello", + { + "foo": null, + "bar": 1.0 + } + ] + '' + + in True + +let example1 = + let data = + JSON.object + [ { mapKey = "zero", mapValue = JSON.array ([] : List JSON.Type) } + , { mapKey = "one", mapValue = JSON.array [ JSON.string "a" ] } + , { mapKey = "two" + , mapValue = JSON.array [ JSON.string "a", JSON.string "b" ] + } + ] + + let yaml = + assert + : renderAs Format.YAML data + ≡ '' + "zero": [] + "one": + - "a" + "two": + - "a" + - "b" + '' + + let json = + assert + : renderAs Format.JSON data + ≡ '' + { + "zero": [], + "one": [ "a" ], + "two": [ + "a", + "b" + ] + } + '' + + in True + +let example2 = + let data = + JSON.object + [ { mapKey = "zero" + , mapValue = + JSON.object + (toMap {=} : List { mapKey : Text, mapValue : JSON.Type }) + } + , { mapKey = "one" + , mapValue = JSON.object (toMap { a = JSON.null }) + } + , { mapKey = "two" + , mapValue = + JSON.object (toMap { a = JSON.null, b = JSON.null }) + } + ] + + let yaml = + assert + : renderAs Format.YAML data + ≡ '' + "zero": {} + "one": + "a": null + "two": + "a": null + "b": null + '' + + let json = + assert + : renderAs Format.JSON data + ≡ '' + { + "zero": {}, + "one": { "a": null }, + "two": { + "a": null, + "b": null + } + } + '' + + in True + +in renderAs diff --git a/buildkite/src/External/prelude/JSON/renderInteger.dhall b/buildkite/src/External/prelude/JSON/renderInteger.dhall new file mode 100644 index 000000000000..b9f94ce2a0b3 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/renderInteger.dhall @@ -0,0 +1,24 @@ +{- Render an `Integer` value as a `JSON number`, according to the JSON + standard, in which a number may not start with a plus sign (`+`). +-} + +let Integer/nonNegative = + ../Integer/nonNegative sha256:b463373f070df6b1c8c7082051e0810fee38b360bab35256187c8c2b6af5c663 + ? ../Integer/nonNegative + +let renderInteger + : Integer -> Text + = \(integer : Integer) + -> if Integer/nonNegative integer + + then Natural/show (Integer/clamp integer) + + else Integer/show integer + +let positive = assert : renderInteger +1 === "1" + +let zero = assert : renderInteger +0 === "0" + +let negative = assert : renderInteger -1 === "-1" + +in renderInteger diff --git a/buildkite/src/External/prelude/JSON/renderYAML b/buildkite/src/External/prelude/JSON/renderYAML new file mode 100644 index 000000000000..893f90ad3271 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/renderYAML @@ -0,0 +1,47 @@ +{- Render a `JSON` value as `Text` in YAML format. + + The generated YAML text will only contain escaped object keys and + string values and might therefore not be very human readable. + + However, it is useful for debugging `JSON` values or for tests. + For anything more sophisticated you should use `dhall-to-json` or + `dhall-to-yaml`. + +-} + +let JSON = + ./core.dhall sha256:5dc1135d5481cfd6fde625aaed9fcbdb7aa7c14f2e76726aa5fdef028a5c10f5 + ? ./core.dhall + +let renderAs = + ./renderAs sha256:f16238edec4c6dd846f19677c6675b27c579999dcff91db6193c10ade1d83174 + ? ./renderAs + +let Format = + ./Format sha256:d7936b510cfc091faa994652af0eb5feb889cd44bc989edbe4f1eb8c5623caac + ? ./Format + +let renderYAML + : JSON.Type → Text + = renderAs Format.YAML + +let example0 = + assert + : renderYAML + ( JSON.array + [ JSON.bool True + , JSON.string "Hello" + , JSON.object + [ { mapKey = "foo", mapValue = JSON.null } + , { mapKey = "bar", mapValue = JSON.double 1.0 } + ] + ] + ) + ≡ '' + - true + - "Hello" + - "foo": null + "bar": 1.0 + '' + +in renderYAML diff --git a/buildkite/src/External/prelude/JSON/string b/buildkite/src/External/prelude/JSON/string new file mode 100644 index 000000000000..44ab39777825 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/string @@ -0,0 +1,33 @@ +{- Create a JSON string from Dhall `Text` + +``` +let JSON = ./package.dhall +in JSON.render (JSON.string "ABC $ \" 🙂") += "\"ABC \\u0024 \\\" 🙂\"" + +let JSON = ./package.dhall +in JSON.render (JSON.string "") += "\"\"" +``` +-} +let JSON = + ./Type sha256:40edbc9371979426df63e064333b02689b969c4cfbbccfa481216d2d1a6e9759 + ? ./Type + +let string + : Text → JSON + = λ(x : Text) + → λ(JSON : Type) + → λ ( json + : { array : List JSON → JSON + , bool : Bool → JSON + , double : Double → JSON + , integer : Integer → JSON + , null : JSON + , object : List { mapKey : Text, mapValue : JSON } → JSON + , string : Text → JSON + } + ) + → json.string x + +in string diff --git a/buildkite/src/External/prelude/JSON/tagInline b/buildkite/src/External/prelude/JSON/tagInline new file mode 100644 index 000000000000..0a900c9dea8d --- /dev/null +++ b/buildkite/src/External/prelude/JSON/tagInline @@ -0,0 +1,28 @@ +{- Prepare a union value for JSON- or YAML-encoding with the inline layout +-} +let Nesting = + ./Nesting sha256:6284802edd41d5d725aa1ec7687e614e21ad1be7e14dd10996bfa9625105c335 + ? ./Nesting + +let Tagged = + ./Tagged sha256:21feca7d2b23f210d0696131d792e18a7d24fdcc85d41a49ba85b98670eba194 + ? ./Tagged + +let tagInline + : Text → ∀(a : Type) → a → Tagged a + = λ(tagFieldName : Text) + → λ(a : Type) + → λ(contents : a) + → { nesting = Nesting.Inline, field = tagFieldName, contents = contents } + +let example0 = + let Example = < Left : { foo : Natural } | Right : { bar : Bool } > + + in assert + : tagInline "name" Example (Example.Left { foo = 2 }) + ≡ { field = "name" + , nesting = Nesting.Inline + , contents = Example.Left { foo = 2 } + } + +in tagInline diff --git a/buildkite/src/External/prelude/JSON/tagNested b/buildkite/src/External/prelude/JSON/tagNested new file mode 100644 index 000000000000..557423572c57 --- /dev/null +++ b/buildkite/src/External/prelude/JSON/tagNested @@ -0,0 +1,32 @@ +{- Prepare a union value for JSON- or YAML-encoding with the nested layout +-} +let Nesting = + ./Nesting sha256:6284802edd41d5d725aa1ec7687e614e21ad1be7e14dd10996bfa9625105c335 + ? ./Nesting + +let Tagged = + ./Tagged sha256:21feca7d2b23f210d0696131d792e18a7d24fdcc85d41a49ba85b98670eba194 + ? ./Tagged + +let tagNested + : Text → Text → ∀(a : Type) → a → Tagged a + = λ(contentsFieldName : Text) + → λ(tagFieldName : Text) + → λ(a : Type) + → λ(contents : a) + → { nesting = Nesting.Nested contentsFieldName + , field = tagFieldName + , contents = contents + } + +let example0 = + let Example = < Left : { foo : Natural } | Right : { bar : Bool } > + + in assert + : tagNested "value" "name" Example (Example.Left { foo = 2 }) + ≡ { field = "name" + , nesting = Nesting.Nested "value" + , contents = Example.Left { foo = 2 } + } + +in tagNested diff --git a/buildkite/src/External/prelude/List/all b/buildkite/src/External/prelude/List/all new file mode 100644 index 000000000000..d647f756d2a4 --- /dev/null +++ b/buildkite/src/External/prelude/List/all @@ -0,0 +1,16 @@ +{- +Returns `True` if the supplied function returns `True` for all elements in the +`List` +-} +let all + : ∀(a : Type) → (a → Bool) → List a → Bool + = λ(a : Type) + → λ(f : a → Bool) + → λ(xs : List a) + → List/fold a xs Bool (λ(x : a) → λ(r : Bool) → f x && r) True + +let example0 = assert : all Natural Natural/even [ 2, 3, 5 ] ≡ False + +let example1 = assert : all Natural Natural/even ([] : List Natural) ≡ True + +in all diff --git a/buildkite/src/External/prelude/List/any b/buildkite/src/External/prelude/List/any new file mode 100644 index 000000000000..34b515b08397 --- /dev/null +++ b/buildkite/src/External/prelude/List/any @@ -0,0 +1,16 @@ +{- +Returns `True` if the supplied function returns `True` for any element in the +`List` +-} +let any + : ∀(a : Type) → (a → Bool) → List a → Bool + = λ(a : Type) + → λ(f : a → Bool) + → λ(xs : List a) + → List/fold a xs Bool (λ(x : a) → λ(r : Bool) → f x || r) False + +let example0 = assert : any Natural Natural/even [ 2, 3, 5 ] ≡ True + +let example1 = assert : any Natural Natural/even ([] : List Natural) ≡ False + +in any diff --git a/buildkite/src/External/prelude/List/build b/buildkite/src/External/prelude/List/build new file mode 100644 index 000000000000..e04eaadeb3c0 --- /dev/null +++ b/buildkite/src/External/prelude/List/build @@ -0,0 +1,32 @@ +{- +`build` is the inverse of `fold` +-} +let build + : ∀(a : Type) + → (∀(list : Type) → ∀(cons : a → list → list) → ∀(nil : list) → list) + → List a + = List/build + +let example0 = + assert + : build + Text + ( λ(list : Type) + → λ(cons : Text → list → list) + → λ(nil : list) + → cons "ABC" (cons "DEF" nil) + ) + ≡ [ "ABC", "DEF" ] + +let example1 = + assert + : build + Text + ( λ(list : Type) + → λ(cons : Text → list → list) + → λ(nil : list) + → nil + ) + ≡ ([] : List Text) + +in build diff --git a/buildkite/src/External/prelude/List/concat b/buildkite/src/External/prelude/List/concat new file mode 100644 index 000000000000..a3897cea538f --- /dev/null +++ b/buildkite/src/External/prelude/List/concat @@ -0,0 +1,36 @@ +{- +Concatenate a `List` of `List`s into a single `List` +-} +let concat + : ∀(a : Type) → List (List a) → List a + = λ(a : Type) + → λ(xss : List (List a)) + → List/build + a + ( λ(list : Type) + → λ(cons : a → list → list) + → λ(nil : list) + → List/fold + (List a) + xss + list + (λ(xs : List a) → λ(ys : list) → List/fold a xs list cons ys) + nil + ) + +let example0 = + assert + : concat Natural [ [ 0, 1, 2 ], [ 3, 4 ], [ 5, 6, 7, 8 ] ] + ≡ [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ] + +let example1 = + assert + : concat + Natural + [ [] : List Natural, [] : List Natural, [] : List Natural ] + ≡ ([] : List Natural) + +let example2 = + assert : concat Natural ([] : List (List Natural)) ≡ ([] : List Natural) + +in concat diff --git a/buildkite/src/External/prelude/List/concatMap b/buildkite/src/External/prelude/List/concatMap new file mode 100644 index 000000000000..5532e70c539f --- /dev/null +++ b/buildkite/src/External/prelude/List/concatMap @@ -0,0 +1,32 @@ +{- +Transform a list by applying a function to each element and flattening the +results +-} +let concatMap + : ∀(a : Type) → ∀(b : Type) → (a → List b) → List a → List b + = λ(a : Type) + → λ(b : Type) + → λ(f : a → List b) + → λ(xs : List a) + → List/build + b + ( λ(list : Type) + → λ(cons : b → list → list) + → List/fold a xs list (λ(x : a) → List/fold b (f x) list cons) + ) + +let example0 = + assert + : concatMap Natural Natural (λ(n : Natural) → [ n, n ]) [ 2, 3, 5 ] + ≡ [ 2, 2, 3, 3, 5, 5 ] + +let example1 = + assert + : concatMap + Natural + Natural + (λ(n : Natural) → [ n, n ]) + ([] : List Natural) + ≡ ([] : List Natural) + +in concatMap diff --git a/buildkite/src/External/prelude/List/default b/buildkite/src/External/prelude/List/default new file mode 100644 index 000000000000..2ac210b2f9f7 --- /dev/null +++ b/buildkite/src/External/prelude/List/default @@ -0,0 +1,15 @@ +{- +Unpack an `Optional` containing a `List`, defaulting to an empty list when the +`Optional` is `None` +-} +let default + : ∀(a : Type) → Optional (List a) → List a + = λ(a : Type) + → λ(o : Optional (List a)) + → merge { Some = λ(l : List a) → l, None = [] : List a } o + +let example0 = assert : default Bool (None (List Bool)) ≡ ([] : List Bool) + +let example1 = assert : default Bool (Some [ True ]) ≡ [ True ] + +in default diff --git a/buildkite/src/External/prelude/List/drop b/buildkite/src/External/prelude/List/drop new file mode 100644 index 000000000000..d3d14e4aecf0 --- /dev/null +++ b/buildkite/src/External/prelude/List/drop @@ -0,0 +1,29 @@ +-- Remove first `n` elements of a list +let Natural/greaterThanEqual = + ../Natural/greaterThanEqual sha256:30ebfab0febd7aa0ccccfdf3dc36ee6d50f0117f35dd4a9b034750b7e885a1a4 + ? ../Natural/greaterThanEqual + +let drop + : ∀(n : Natural) → ∀(a : Type) → List a → List a + = λ(n : Natural) + → λ(a : Type) + → λ(xs : List a) + → List/fold + { index : Natural, value : a } + (List/indexed a xs) + (List a) + ( λ(x : { index : Natural, value : a }) + → λ(xs : List a) + → if Natural/greaterThanEqual x.index n + + then [ x.value ] # xs + + else xs + ) + ([] : List a) + +let example = assert : drop 2 Natural [ 2, 3, 5 ] ≡ [ 5 ] + +let example = assert : drop 5 Natural [ 2, 3, 5 ] ≡ ([] : List Natural) + +in drop diff --git a/buildkite/src/External/prelude/List/empty b/buildkite/src/External/prelude/List/empty new file mode 100644 index 000000000000..6aaee7293450 --- /dev/null +++ b/buildkite/src/External/prelude/List/empty @@ -0,0 +1,10 @@ +{- +An empty list of the given type +-} +let empty + : ∀(a : Type) → List a + = λ(a : Type) → [] : List a + +let example0 = assert : empty Bool ≡ ([] : List Bool) + +in empty diff --git a/buildkite/src/External/prelude/List/filter b/buildkite/src/External/prelude/List/filter new file mode 100644 index 000000000000..e4e0de00d8e1 --- /dev/null +++ b/buildkite/src/External/prelude/List/filter @@ -0,0 +1,26 @@ +{- +Only keep elements of the list where the supplied function returns `True` + +Examples: +-} +let filter + : ∀(a : Type) → (a → Bool) → List a → List a + = λ(a : Type) + → λ(f : a → Bool) + → λ(xs : List a) + → List/build + a + ( λ(list : Type) + → λ(cons : a → list → list) + → List/fold + a + xs + list + (λ(x : a) → λ(xs : list) → if f x then cons x xs else xs) + ) + +let example0 = assert : filter Natural Natural/even [ 2, 3, 5 ] ≡ [ 2 ] + +let example1 = assert : filter Natural Natural/odd [ 2, 3, 5 ] ≡ [ 3, 5 ] + +in filter diff --git a/buildkite/src/External/prelude/List/fold b/buildkite/src/External/prelude/List/fold new file mode 100644 index 000000000000..13fb4f8f1199 --- /dev/null +++ b/buildkite/src/External/prelude/List/fold @@ -0,0 +1,51 @@ +{- +`fold` is the primitive function for consuming `List`s + +If you treat the list `[ x, y, z ]` as `cons x (cons y (cons z nil))`, then a +`fold` just replaces each `cons` and `nil` with something else +-} +let fold + : ∀(a : Type) + → List a + → ∀(list : Type) + → ∀(cons : a → list → list) + → ∀(nil : list) + → list + = List/fold + +let example0 = + assert + : fold + Natural + [ 2, 3, 5 ] + Natural + (λ(x : Natural) → λ(y : Natural) → x + y) + 0 + ≡ 10 + +let example1 = + assert + : ( λ(nil : Natural) + → fold + Natural + [ 2, 3, 5 ] + Natural + (λ(x : Natural) → λ(y : Natural) → x + y) + nil + ) + ≡ (λ(nil : Natural) → 2 + (3 + (5 + nil))) + +let example2 = + assert + : ( λ(list : Type) + → λ(cons : Natural → list → list) + → λ(nil : list) + → fold Natural [ 2, 3, 5 ] list cons nil + ) + ≡ ( λ(list : Type) + → λ(cons : Natural → list → list) + → λ(nil : list) + → cons 2 (cons 3 (cons 5 nil)) + ) + +in fold diff --git a/buildkite/src/External/prelude/List/generate b/buildkite/src/External/prelude/List/generate new file mode 100644 index 000000000000..dbc02ec7e0b0 --- /dev/null +++ b/buildkite/src/External/prelude/List/generate @@ -0,0 +1,35 @@ +{- +Build a list by calling the supplied function on all `Natural` numbers from `0` +up to but not including the supplied `Natural` number +-} +let generate + : Natural → ∀(a : Type) → (Natural → a) → List a + = λ(n : Natural) + → λ(a : Type) + → λ(f : Natural → a) + → List/build + a + ( λ(list : Type) + → λ(cons : a → list → list) + → List/fold + { index : Natural, value : {} } + ( List/indexed + {} + ( List/build + {} + ( λ(list : Type) + → λ(cons : {} → list → list) + → Natural/fold n list (cons {=}) + ) + ) + ) + list + (λ(x : { index : Natural, value : {} }) → cons (f x.index)) + ) + +let example0 = + assert : generate 5 Bool Natural/even ≡ [ True, False, True, False, True ] + +let example1 = assert : generate 0 Bool Natural/even ≡ ([] : List Bool) + +in generate diff --git a/buildkite/src/External/prelude/List/head b/buildkite/src/External/prelude/List/head new file mode 100644 index 000000000000..3c175a947b05 --- /dev/null +++ b/buildkite/src/External/prelude/List/head @@ -0,0 +1,12 @@ +{- +Retrieve the first element of the list +-} +let head + : ∀(a : Type) → List a → Optional a + = List/head + +let example0 = assert : head Natural [ 0, 1, 2 ] ≡ Some 0 + +let example1 = assert : head Natural ([] : List Natural) ≡ None Natural + +in head diff --git a/buildkite/src/External/prelude/List/indexed b/buildkite/src/External/prelude/List/indexed new file mode 100644 index 000000000000..b91e35833d77 --- /dev/null +++ b/buildkite/src/External/prelude/List/indexed @@ -0,0 +1,21 @@ +{- +Tag each element of the list with its index +-} +let indexed + : ∀(a : Type) → List a → List { index : Natural, value : a } + = List/indexed + +let example0 = + assert + : indexed Bool [ True, False, True ] + ≡ [ { index = 0, value = True } + , { index = 1, value = False } + , { index = 2, value = True } + ] + +let example1 = + assert + : indexed Bool ([] : List Bool) + ≡ ([] : List { index : Natural, value : Bool }) + +in indexed diff --git a/buildkite/src/External/prelude/List/iterate b/buildkite/src/External/prelude/List/iterate new file mode 100644 index 000000000000..2afb2dd34c28 --- /dev/null +++ b/buildkite/src/External/prelude/List/iterate @@ -0,0 +1,42 @@ +{- +Generate a list of the specified length given a seed value and transition +function +-} +let iterate + : Natural → ∀(a : Type) → (a → a) → a → List a + = λ(n : Natural) + → λ(a : Type) + → λ(f : a → a) + → λ(x : a) + → List/build + a + ( λ(list : Type) + → λ(cons : a → list → list) + → List/fold + { index : Natural, value : {} } + ( List/indexed + {} + ( List/build + {} + ( λ(list : Type) + → λ(cons : {} → list → list) + → Natural/fold n list (cons {=}) + ) + ) + ) + list + ( λ(y : { index : Natural, value : {} }) + → cons (Natural/fold y.index a f x) + ) + ) + +let example0 = + assert + : iterate 10 Natural (λ(x : Natural) → x * 2) 1 + ≡ [ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 ] + +let example1 = + assert + : iterate 0 Natural (λ(x : Natural) → x * 2) 1 ≡ ([] : List Natural) + +in iterate diff --git a/buildkite/src/External/prelude/List/last b/buildkite/src/External/prelude/List/last new file mode 100644 index 000000000000..38a3bfcbefbf --- /dev/null +++ b/buildkite/src/External/prelude/List/last @@ -0,0 +1,12 @@ +{- +Retrieve the last element of the list +-} +let last + : ∀(a : Type) → List a → Optional a + = List/last + +let example0 = assert : last Natural [ 0, 1, 2 ] ≡ Some 2 + +let example1 = assert : last Natural ([] : List Natural) ≡ None Natural + +in last diff --git a/buildkite/src/External/prelude/List/length b/buildkite/src/External/prelude/List/length new file mode 100644 index 000000000000..e9b96d7d8e62 --- /dev/null +++ b/buildkite/src/External/prelude/List/length @@ -0,0 +1,12 @@ +{- +Returns the number of elements in a list +-} +let length + : ∀(a : Type) → List a → Natural + = List/length + +let example0 = assert : length Natural [ 0, 1, 2 ] ≡ 3 + +let example1 = assert : length Natural ([] : List Natural) ≡ 0 + +in length diff --git a/buildkite/src/External/prelude/List/map b/buildkite/src/External/prelude/List/map new file mode 100644 index 000000000000..cd16f9a0b59a --- /dev/null +++ b/buildkite/src/External/prelude/List/map @@ -0,0 +1,25 @@ +{- +Transform a list by applying a function to each element +-} +let map + : ∀(a : Type) → ∀(b : Type) → (a → b) → List a → List b + = λ(a : Type) + → λ(b : Type) + → λ(f : a → b) + → λ(xs : List a) + → List/build + b + ( λ(list : Type) + → λ(cons : b → list → list) + → List/fold a xs list (λ(x : a) → cons (f x)) + ) + +let example0 = + assert + : map Natural Bool Natural/even [ 2, 3, 5 ] ≡ [ True, False, False ] + +let example1 = + assert + : map Natural Bool Natural/even ([] : List Natural) ≡ ([] : List Bool) + +in map diff --git a/buildkite/src/External/prelude/List/null b/buildkite/src/External/prelude/List/null new file mode 100644 index 000000000000..93cb1833b81a --- /dev/null +++ b/buildkite/src/External/prelude/List/null @@ -0,0 +1,12 @@ +{- +Returns `True` if the `List` is empty and `False` otherwise +-} +let null + : ∀(a : Type) → List a → Bool + = λ(a : Type) → λ(xs : List a) → Natural/isZero (List/length a xs) + +let example0 = assert : null Natural [ 0, 1, 2 ] ≡ False + +let example1 = assert : null Natural ([] : List Natural) ≡ True + +in null diff --git a/buildkite/src/External/prelude/List/package.dhall b/buildkite/src/External/prelude/List/package.dhall new file mode 100644 index 000000000000..abd911dd7b88 --- /dev/null +++ b/buildkite/src/External/prelude/List/package.dhall @@ -0,0 +1,73 @@ +{ all = + ./all sha256:7ac5bb6f77e9ffe9e2356d90968d39764a9a32f75980206e6b12f815bb83dd15 + ? ./all +, any = + ./any sha256:b8e9e13b25e799f342a81f6eda4075906eb1a19dfdcb10a0ca25925eba4033b8 + ? ./any +, build = + ./build sha256:8cf73fc1e115cfcb79bb9cd490bfcbd45c824e93c57a0e64c86c0c72e9ebbe42 + ? ./build +, concat = + ./concat sha256:54e43278be13276e03bd1afa89e562e94a0a006377ebea7db14c7562b0de292b + ? ./concat +, concatMap = + ./concatMap sha256:3b2167061d11fda1e4f6de0522cbe83e0d5ac4ef5ddf6bb0b2064470c5d3fb64 + ? ./concatMap +, default = + ./default sha256:fd77809e497227403f42848ffcda05a3efab442d961027c34f3e31d5d24e6379 + ? ./default +, drop = + ./drop sha256:af983ba3ead494dd72beed05c0f3a17c36a4244adedf7ced502c6512196ed0cf + ? ./drop +, empty = + ./empty sha256:b2f561f35098c457353723c93a22bd5de28d26ecc5370814bef9dfda421e0147 + ? ./empty +, filter = + ./filter sha256:8ebfede5bbfe09675f246c33eb83964880ac615c4b1be8d856076fdbc4b26ba6 + ? ./filter +, fold = + ./fold sha256:10bb945c25ab3943bd9df5a32e633cbfae112b7d3af38591784687e436a8d814 + ? ./fold +, generate = + ./generate sha256:78ff1ad96c08b88a8263eea7bc8381c078225cfcb759c496f792edb5a5e0b1a4 + ? ./generate +, head = + ./head sha256:0d2e65ba0aea908377e46d22020dc3ad970284f4ee4eb8e6b8c51e53038c0026 + ? ./head +, indexed = + ./indexed sha256:58bb44457fa81adf26f5123c1b2e8bef0c5aa22dac5fa5ebdfb7da84563b027f + ? ./indexed +, iterate = + ./iterate sha256:e4999ccce190a2e2a6ab9cb188e3af6c40df474087827153005293f11bfe1d26 + ? ./iterate +, last = + ./last sha256:741226b741af152a1638491cdff7f3aa74baf080ada2e63429483f3d195a984d + ? ./last +, length = + ./length sha256:42c6812c7a9e3c6e6fad88f77c5b3849503964e071cb784e22c38c888a401461 + ? ./length +, map = + ./map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 + ? ./map +, null = + ./null sha256:2338e39637e9a50d66ae1482c0ed559bbcc11e9442bfca8f8c176bbcd9c4fc80 + ? ./null +, partition = + ./partition sha256:38147ac6d750a6492736dd90cc967bf09aa405c499de943c64fab7b86ae02f03 + ? ./partition +, replicate = + ./replicate sha256:d4250b45278f2d692302489ac3e78280acb238d27541c837ce46911ff3baa347 + ? ./replicate +, reverse = + ./reverse sha256:ad99d224d61852de6696da5a7d04c98dbe676fe67d5e4ef4f19e9aaa27006e9d + ? ./reverse +, shifted = + ./shifted sha256:54fb22c7e952ebce1cfc0fcdd33ce4cfa817bff9d6564af268dea6685f8b5dfe + ? ./shifted +, take = + ./take sha256:b3e08ee8c3a5bf3d8ccee6b2b2008fbb8e51e7373aef6f1af67ad10078c9fbfa + ? ./take +, unzip = + ./unzip sha256:4d6003e9e683a289fe33f4c90f958eb1e08ea0bbb474210fcd90d1885c9660e9 + ? ./unzip +} diff --git a/buildkite/src/External/prelude/List/partition b/buildkite/src/External/prelude/List/partition new file mode 100644 index 000000000000..061d5338f5af --- /dev/null +++ b/buildkite/src/External/prelude/List/partition @@ -0,0 +1,33 @@ +{- +`partition` divides a `List` of elements into those that satisfy a predicate +and those that do not +-} +let Partition + : Type → Type + = λ(a : Type) → { true : List a, false : List a } + +let partition + : ∀(a : Type) → (a → Bool) → List a → Partition a + = λ(a : Type) + → λ(f : a → Bool) + → λ(xs : List a) + → List/fold + a + xs + (Partition a) + ( λ(x : a) + → λ(p : Partition a) + → if f x + + then { true = [ x ] # p.true, false = p.false } + + else { true = p.true, false = [ x ] # p.false } + ) + { true = [] : List a, false = [] : List a } + +let example0 = + assert + : partition Natural Natural/even [ 0, 1, 2, 3 ] + ≡ { true = [ 0, 2 ], false = [ 1, 3 ] } + +in partition diff --git a/buildkite/src/External/prelude/List/replicate b/buildkite/src/External/prelude/List/replicate new file mode 100644 index 000000000000..0fe379cd8bff --- /dev/null +++ b/buildkite/src/External/prelude/List/replicate @@ -0,0 +1,20 @@ +{- +Build a list by copying the given element the specified number of times +-} +let replicate + : Natural → ∀(a : Type) → a → List a + = λ(n : Natural) + → λ(a : Type) + → λ(x : a) + → List/build + a + ( λ(list : Type) + → λ(cons : a → list → list) + → Natural/fold n list (cons x) + ) + +let example0 = assert : replicate 9 Natural 1 ≡ [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ] + +let example1 = assert : replicate 0 Natural 1 ≡ ([] : List Natural) + +in replicate diff --git a/buildkite/src/External/prelude/List/reverse b/buildkite/src/External/prelude/List/reverse new file mode 100644 index 000000000000..d92e16b6dd56 --- /dev/null +++ b/buildkite/src/External/prelude/List/reverse @@ -0,0 +1,13 @@ +{- +Reverse a list +-} +let reverse + : ∀(a : Type) → List a → List a + = List/reverse + +let example0 = assert : reverse Natural [ 0, 1, 2 ] ≡ [ 2, 1, 0 ] + +let example1 = + assert : reverse Natural ([] : List Natural) ≡ ([] : List Natural) + +in reverse diff --git a/buildkite/src/External/prelude/List/shifted b/buildkite/src/External/prelude/List/shifted new file mode 100644 index 000000000000..cafb51201f66 --- /dev/null +++ b/buildkite/src/External/prelude/List/shifted @@ -0,0 +1,83 @@ +{- +Combine a `List` of `List`s, offsetting the `index` of each element by the +number of elements in preceding lists +-} +let shifted + : ∀(a : Type) + → List (List { index : Natural, value : a }) + → List { index : Natural, value : a } + = λ(a : Type) + → λ(kvss : List (List { index : Natural, value : a })) + → List/build + { index : Natural, value : a } + ( λ(list : Type) + → λ(cons : { index : Natural, value : a } → list → list) + → λ(nil : list) + → let result = + List/fold + (List { index : Natural, value : a }) + kvss + { count : Natural, diff : Natural → list } + ( λ(kvs : List { index : Natural, value : a }) + → λ(y : { count : Natural, diff : Natural → list }) + → let length = + List/length { index : Natural, value : a } kvs + + in { count = y.count + length + , diff = + λ(n : Natural) + → List/fold + { index : Natural, value : a } + kvs + list + ( λ ( kvOld + : { index : Natural, value : a } + ) + → λ(z : list) + → let kvNew = + { index = kvOld.index + n + , value = kvOld.value + } + + in cons kvNew z + ) + (y.diff (n + length)) + } + ) + { count = 0, diff = λ(_ : Natural) → nil } + + in result.diff 0 + ) + +let example0 = + assert + : shifted + Bool + [ [ { index = 0, value = True } + , { index = 1, value = True } + , { index = 2, value = True } + ] + , [ { index = 0, value = False }, { index = 1, value = False } ] + , [ { index = 0, value = True } + , { index = 1, value = True } + , { index = 2, value = True } + , { index = 3, value = True } + ] + ] + ≡ [ { index = 0, value = True } + , { index = 1, value = True } + , { index = 2, value = True } + , { index = 3, value = False } + , { index = 4, value = False } + , { index = 5, value = True } + , { index = 6, value = True } + , { index = 7, value = True } + , { index = 8, value = True } + ] + +let example1 = + assert + : shifted Bool ([] : List (List { index : Natural, value : Bool })) + ≡ ([] : List { index : Natural, value : Bool }) + +in shifted diff --git a/buildkite/src/External/prelude/List/take b/buildkite/src/External/prelude/List/take new file mode 100644 index 000000000000..5bb0a9c4a746 --- /dev/null +++ b/buildkite/src/External/prelude/List/take @@ -0,0 +1,25 @@ +-- Truncate a list to the first `n` elements +let Natural/lessThan = + ../Natural/lessThan sha256:3381b66749290769badf8855d8a3f4af62e8de52d1364d838a9d1e20c94fa70c + ? ../Natural/lessThan + +let take + : ∀(n : Natural) → ∀(a : Type) → List a → List a + = λ(n : Natural) + → λ(a : Type) + → λ(xs : List a) + → List/fold + { index : Natural, value : a } + (List/indexed a xs) + (List a) + ( λ(x : { index : Natural, value : a }) + → λ(xs : List a) + → if Natural/lessThan x.index n then [ x.value ] # xs else xs + ) + ([] : List a) + +let example = assert : take 2 Natural [ 2, 3, 5 ] ≡ [ 2, 3 ] + +let example = assert : take 5 Natural [ 2, 3, 5 ] ≡ [ 2, 3, 5 ] + +in take diff --git a/buildkite/src/External/prelude/List/unzip b/buildkite/src/External/prelude/List/unzip new file mode 100644 index 000000000000..3d76d0d1f660 --- /dev/null +++ b/buildkite/src/External/prelude/List/unzip @@ -0,0 +1,52 @@ +{- +Unzip a `List` into two separate `List`s +-} +let unzip + : ∀(a : Type) + → ∀(b : Type) + → List { _1 : a, _2 : b } + → { _1 : List a, _2 : List b } + = λ(a : Type) + → λ(b : Type) + → λ(xs : List { _1 : a, _2 : b }) + → { _1 = + List/build + a + ( λ(list : Type) + → λ(cons : a → list → list) + → List/fold + { _1 : a, _2 : b } + xs + list + (λ(x : { _1 : a, _2 : b }) → cons x._1) + ) + , _2 = + List/build + b + ( λ(list : Type) + → λ(cons : b → list → list) + → List/fold + { _1 : a, _2 : b } + xs + list + (λ(x : { _1 : a, _2 : b }) → cons x._2) + ) + } + +let example0 = + assert + : unzip + Text + Bool + [ { _1 = "ABC", _2 = True } + , { _1 = "DEF", _2 = False } + , { _1 = "GHI", _2 = True } + ] + ≡ { _1 = [ "ABC", "DEF", "GHI" ], _2 = [ True, False, True ] } + +let example1 = + assert + : unzip Text Bool ([] : List { _1 : Text, _2 : Bool }) + ≡ { _1 = [] : List Text, _2 = [] : List Bool } + +in unzip diff --git a/buildkite/src/External/prelude/Location/Type b/buildkite/src/External/prelude/Location/Type new file mode 100644 index 000000000000..662d1ad1d10f --- /dev/null +++ b/buildkite/src/External/prelude/Location/Type @@ -0,0 +1,18 @@ +{- This is the union type returned when you import something `as Location` +-} +let Location + : Type + = < Environment : Text | Local : Text | Missing | Remote : Text > + +let example0 = + assert + : ( missing sha256:f428188ff9d77ea15bc2bcd0da3f8ed81b304e175b07ade42a3b0fb02941b2aa as Location + ? missing as Location + ) + ≡ < Environment : Text + | Local : Text + | Missing + | Remote : Text + >.Missing + +in Location diff --git a/buildkite/src/External/prelude/Location/package.dhall b/buildkite/src/External/prelude/Location/package.dhall new file mode 100644 index 000000000000..105aa3b04f09 --- /dev/null +++ b/buildkite/src/External/prelude/Location/package.dhall @@ -0,0 +1,4 @@ +{ Type = + ./Type sha256:613ebb491aeef4ff06368058b4f0e6e3bb8a58d8c145131fc0b947aac045a529 + ? ./Type +} diff --git a/buildkite/src/External/prelude/Map/Entry b/buildkite/src/External/prelude/Map/Entry new file mode 100644 index 000000000000..dff7c94f6e5c --- /dev/null +++ b/buildkite/src/External/prelude/Map/Entry @@ -0,0 +1,7 @@ +{- The type of each key-value pair in a `Map` +-} +let Entry + : Type → Type → Type + = λ(k : Type) → λ(v : Type) → { mapKey : k, mapValue : v } + +in Entry diff --git a/buildkite/src/External/prelude/Map/Type b/buildkite/src/External/prelude/Map/Type new file mode 100644 index 000000000000..fad4fbe45171 --- /dev/null +++ b/buildkite/src/External/prelude/Map/Type @@ -0,0 +1,24 @@ +{- This is the canonical way to encode a dynamic list of key-value pairs. + + Tools (such as `dhall-to-json`/`dhall-to-yaml` will recognize values of this + type and convert them to maps/dictionaries/hashes in the target language + + For example, `dhall-to-json` converts a Dhall value like this: + + ``` + [ { mapKey = "foo", mapValue = 1 } + , { mapKey = "bar", mapValue = 2 } + ] : ./Map Text Natural + ``` + + ... to a JSON value like this: + + ``` + { "foo": 1, "bar", 2 } + ``` +-} +let Map + : Type → Type → Type + = λ(k : Type) → λ(v : Type) → List { mapKey : k, mapValue : v } + +in Map diff --git a/buildkite/src/External/prelude/Map/empty b/buildkite/src/External/prelude/Map/empty new file mode 100644 index 000000000000..90e51398c022 --- /dev/null +++ b/buildkite/src/External/prelude/Map/empty @@ -0,0 +1,15 @@ +{- +An empty `Map` of the given key and value types +-} +let Map = + ./Type sha256:210c7a9eba71efbb0f7a66b3dcf8b9d3976ffc2bc0e907aadfb6aa29c333e8ed + ? ./Type + +let empty + : ∀(k : Type) → ∀(v : Type) → Map k v + = λ(k : Type) → λ(v : Type) → [] : Map k v + +let example0 = + assert : empty Text Bool ≡ ([] : List { mapKey : Text, mapValue : Bool }) + +in empty diff --git a/buildkite/src/External/prelude/Map/keyText b/buildkite/src/External/prelude/Map/keyText new file mode 100644 index 000000000000..9973c08d544b --- /dev/null +++ b/buildkite/src/External/prelude/Map/keyText @@ -0,0 +1,15 @@ +{- +Builds a key-value record such that a `List` of them will be converted to a +homogeneous record by dhall-to-json and dhall-to-yaml. + +Both key and value are fixed to `Text`. + +Take a look at `./keyValue` for a polymorphic version. +-} +let keyText = + λ(key : Text) → λ(value : Text) → { mapKey = key, mapValue = value } + +let example0 = + assert : keyText "foo" "bar" ≡ { mapKey = "foo", mapValue = "bar" } + +in keyText diff --git a/buildkite/src/External/prelude/Map/keyValue b/buildkite/src/External/prelude/Map/keyValue new file mode 100644 index 000000000000..0c92c8f16fec --- /dev/null +++ b/buildkite/src/External/prelude/Map/keyValue @@ -0,0 +1,17 @@ +{- +Builds a key-value record such that a List of them will be converted to a +homogeneous record by dhall-to-json and dhall-to-yaml. +-} +let keyValue = + λ(v : Type) + → λ(key : Text) + → λ(value : v) + → { mapKey = key, mapValue = value } + +let example0 = + assert : keyValue Natural "foo" 2 ≡ { mapKey = "foo", mapValue = 2 } + +let example1 = + assert : keyValue Text "bar" "baz" ≡ { mapKey = "bar", mapValue = "baz" } + +in keyValue diff --git a/buildkite/src/External/prelude/Map/keys b/buildkite/src/External/prelude/Map/keys new file mode 100644 index 000000000000..f3bab507c450 --- /dev/null +++ b/buildkite/src/External/prelude/Map/keys @@ -0,0 +1,38 @@ +{- +Get all of the keys of a `Map` as a `List` +-} +let Map = + ./Type sha256:210c7a9eba71efbb0f7a66b3dcf8b9d3976ffc2bc0e907aadfb6aa29c333e8ed + ? ./Type + +let Entry = + ./Entry sha256:f334283bdd9cd88e6ea510ca914bc221fc2dab5fb424d24514b2e0df600d5346 + ? ./Entry + +let List/map = + ../List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 + ? ../List/map + +let keys + : ∀(k : Type) → ∀(v : Type) → Map k v → List k + = λ(k : Type) + → λ(v : Type) + → List/map (Entry k v) k (λ(x : Entry k v) → x.mapKey) + +let example0 = + assert + : keys + Text + Natural + [ { mapKey = "A", mapValue = 2 } + , { mapKey = "B", mapValue = 3 } + , { mapKey = "C", mapValue = 5 } + ] + ≡ [ "A", "B", "C" ] + +let example1 = + assert + : keys Text Natural ([] : List { mapKey : Text, mapValue : Natural }) + ≡ ([] : List Text) + +in keys diff --git a/buildkite/src/External/prelude/Map/map b/buildkite/src/External/prelude/Map/map new file mode 100644 index 000000000000..d337e093a5b6 --- /dev/null +++ b/buildkite/src/External/prelude/Map/map @@ -0,0 +1,57 @@ +{- +Transform a `Map` by applying a function to each value +-} +let Map = + ./Type sha256:210c7a9eba71efbb0f7a66b3dcf8b9d3976ffc2bc0e907aadfb6aa29c333e8ed + ? ./Type + +let Entry = + ./Entry sha256:f334283bdd9cd88e6ea510ca914bc221fc2dab5fb424d24514b2e0df600d5346 + ? ./Entry + +let List/map = + ../List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 + ? ../List/map + +let map + : ∀(k : Type) → ∀(a : Type) → ∀(b : Type) → (a → b) → Map k a → Map k b + = λ(k : Type) + → λ(a : Type) + → λ(b : Type) + → λ(f : a → b) + → λ(m : Map k a) + → List/map + (Entry k a) + (Entry k b) + ( λ(before : Entry k a) + → { mapKey = before.mapKey, mapValue = f before.mapValue } + ) + m + +let example0 = + assert + : map + Text + Natural + Bool + Natural/even + [ { mapKey = "A", mapValue = 2 } + , { mapKey = "B", mapValue = 3 } + , { mapKey = "C", mapValue = 5 } + ] + ≡ [ { mapKey = "A", mapValue = True } + , { mapKey = "B", mapValue = False } + , { mapKey = "C", mapValue = False } + ] + +let example1 = + assert + : map + Text + Natural + Bool + Natural/even + ([] : List { mapKey : Text, mapValue : Natural }) + ≡ ([] : List { mapKey : Text, mapValue : Bool }) + +in map diff --git a/buildkite/src/External/prelude/Map/package.dhall b/buildkite/src/External/prelude/Map/package.dhall new file mode 100644 index 000000000000..bd6add3ec311 --- /dev/null +++ b/buildkite/src/External/prelude/Map/package.dhall @@ -0,0 +1,25 @@ +{ Type = + ./Type sha256:210c7a9eba71efbb0f7a66b3dcf8b9d3976ffc2bc0e907aadfb6aa29c333e8ed + ? ./Type +, Entry = + ./Entry sha256:f334283bdd9cd88e6ea510ca914bc221fc2dab5fb424d24514b2e0df600d5346 + ? ./Entry +, empty = + ./empty sha256:4c612558b8bbe8f955550ed3fb295d57b1b864c85cd52615b52d0ee0e9682e52 + ? ./empty +, keyText = + ./keyText sha256:f7b6c802ca5764d03d5e9a6e48d9cb167c01392f775d9c2c87b83cdaa60ea0cc + ? ./keyText +, keyValue = + ./keyValue sha256:a0a97199d280c4cce72ffcbbf93b7ceda0a569cf4d173ac98e0aaaa78034b98c + ? ./keyValue +, keys = + ./keys sha256:d13ec34e6acf7c349d82272ef09a37c7bdf37f0dab489e9df47a1ff215d9f5e7 + ? ./keys +, map = + ./map sha256:23e09b0b9f08649797dfe1ca39755d5e1c7cad2d0944bdd36c7a0bf804bde8d0 + ? ./map +, values = + ./values sha256:ae02cfb06a9307cbecc06130e84fd0c7b96b7f1f11648961e1b030ec00940be8 + ? ./values +} diff --git a/buildkite/src/External/prelude/Map/values b/buildkite/src/External/prelude/Map/values new file mode 100644 index 000000000000..f1e710b0f32c --- /dev/null +++ b/buildkite/src/External/prelude/Map/values @@ -0,0 +1,38 @@ +{- +Get all of the values of a `Map` as a `List` +-} +let Map = + ./Type sha256:210c7a9eba71efbb0f7a66b3dcf8b9d3976ffc2bc0e907aadfb6aa29c333e8ed + ? ./Type + +let Entry = + ./Entry sha256:f334283bdd9cd88e6ea510ca914bc221fc2dab5fb424d24514b2e0df600d5346 + ? ./Entry + +let List/map = + ../List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 + ? ../List/map + +let values + : ∀(k : Type) → ∀(v : Type) → Map k v → List v + = λ(k : Type) + → λ(v : Type) + → List/map (Entry k v) v (λ(x : Entry k v) → x.mapValue) + +let example0 = + assert + : values + Text + Natural + [ { mapKey = "A", mapValue = 2 } + , { mapKey = "B", mapValue = 3 } + , { mapKey = "C", mapValue = 5 } + ] + ≡ [ 2, 3, 5 ] + +let example1 = + assert + : values Text Natural ([] : List { mapKey : Text, mapValue : Natural }) + ≡ ([] : List Natural) + +in values diff --git a/buildkite/src/External/prelude/Monoid b/buildkite/src/External/prelude/Monoid new file mode 100644 index 000000000000..fef2ffb6baf4 --- /dev/null +++ b/buildkite/src/External/prelude/Monoid @@ -0,0 +1,43 @@ +{- +Any function `f` that is a `Monoid` must satisfy the following law: + +``` +t : Type +f : ./Monoid t +xs : List (List t) + +f (./List/concat t xs) = f (./map (List t) t f xs) +``` + +Examples: + +``` +./Bool/and + : ./Monoid Bool +./Bool/or + : ./Monoid Bool +./Bool/even + : ./Monoid Bool +./Bool/odd + : ./Monoid Bool +./List/concat + : ∀(a : Type) → ./Monoid (List a) +./List/shifted + : ∀(a : Type) → ./Monoid (List { index : Natural, value : a }) +./Natural/sum + : ./Monoid Natural +./Natural/product + : ./Monoid Natural +./Optional/head + : ∀(a : Type) → ./Monoid (Optional a) +./Optional/last + : ∀(a : Type) → ./Monoid (Optional a) +./Text/concat + : ./Monoid Text +``` +-} +let Monoid + : ∀(m : Type) → Type + = λ(m : Type) → List m → m + +in Monoid diff --git a/buildkite/src/External/prelude/Natural/build b/buildkite/src/External/prelude/Natural/build new file mode 100644 index 000000000000..cf65f49817c4 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/build @@ -0,0 +1,33 @@ +{- +`build` is the inverse of `fold` +-} +let build + : ( ∀(natural : Type) + → ∀(succ : natural → natural) + → ∀(zero : natural) + → natural + ) + → Natural + = Natural/build + +let example0 = + assert + : build + ( λ(natural : Type) + → λ(succ : natural → natural) + → λ(zero : natural) + → succ (succ (succ zero)) + ) + ≡ 3 + +let example1 = + assert + : build + ( λ(natural : Type) + → λ(succ : natural → natural) + → λ(zero : natural) + → zero + ) + ≡ 0 + +in build diff --git a/buildkite/src/External/prelude/Natural/enumerate b/buildkite/src/External/prelude/Natural/enumerate new file mode 100644 index 000000000000..7d8834d39ef2 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/enumerate @@ -0,0 +1,32 @@ +{- +Generate a list of numbers from `0` up to but not including the specified +number +-} +let enumerate + : Natural → List Natural + = λ(n : Natural) + → List/build + Natural + ( λ(list : Type) + → λ(cons : Natural → list → list) + → List/fold + { index : Natural, value : {} } + ( List/indexed + {} + ( List/build + {} + ( λ(list : Type) + → λ(cons : {} → list → list) + → Natural/fold n list (cons {=}) + ) + ) + ) + list + (λ(x : { index : Natural, value : {} }) → cons x.index) + ) + +let example0 = assert : enumerate 10 ≡ [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] + +let example1 = assert : enumerate 0 ≡ ([] : List Natural) + +in enumerate diff --git a/buildkite/src/External/prelude/Natural/equal b/buildkite/src/External/prelude/Natural/equal new file mode 100644 index 000000000000..4d3117dff704 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/equal @@ -0,0 +1,18 @@ +{- +`equal` checks if two Naturals are equal. +-} +let lessThanEqual = + ./lessThanEqual sha256:1a5caa2b80a42b9f58fff58e47ac0d9a9946d0b2d36c54034b8ddfe3cb0f3c99 + ? ./lessThanEqual + +let equal + : Natural → Natural → Bool + = λ(a : Natural) → λ(b : Natural) → lessThanEqual a b && lessThanEqual b a + +let example0 = assert : equal 5 5 ≡ True + +let example1 = assert : equal 5 6 ≡ False + +let property0 = λ(n : Natural) → assert : equal n n ≡ True + +in equal diff --git a/buildkite/src/External/prelude/Natural/even b/buildkite/src/External/prelude/Natural/even new file mode 100644 index 000000000000..da70cfd57312 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/even @@ -0,0 +1,12 @@ +{- +Returns `True` if a number if even and returns `False` otherwise +-} +let even + : Natural → Bool + = Natural/even + +let example0 = assert : even 3 ≡ False + +let example1 = assert : even 0 ≡ True + +in even diff --git a/buildkite/src/External/prelude/Natural/fold b/buildkite/src/External/prelude/Natural/fold new file mode 100644 index 000000000000..b1f0715560a3 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/fold @@ -0,0 +1,35 @@ +{- +`fold` is the primitive function for consuming `Natural` numbers + +If you treat the number `3` as `succ (succ (succ zero))` then a `fold` just +replaces each `succ` and `zero` with something else +-} +let fold + : Natural + → ∀(natural : Type) + → ∀(succ : natural → natural) + → ∀(zero : natural) + → natural + = Natural/fold + +let example0 = assert : fold 3 Natural (λ(x : Natural) → 5 * x) 1 ≡ 125 + +let example1 = + assert + : (λ(zero : Natural) → fold 3 Natural (λ(x : Natural) → 5 * x) zero) + ≡ (λ(zero : Natural) → 5 * (5 * (5 * zero))) + +let example2 = + assert + : ( λ(natural : Type) + → λ(succ : natural → natural) + → λ(zero : natural) + → fold 3 natural succ zero + ) + ≡ ( λ(natural : Type) + → λ(succ : natural → natural) + → λ(zero : natural) + → succ (succ (succ zero)) + ) + +in fold diff --git a/buildkite/src/External/prelude/Natural/greaterThan b/buildkite/src/External/prelude/Natural/greaterThan new file mode 100644 index 000000000000..750c7bd512e6 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/greaterThan @@ -0,0 +1,22 @@ +{- +`greaterThan` checks if one Natural is strictly greater than another. +-} +let lessThan = + ./lessThan sha256:3381b66749290769badf8855d8a3f4af62e8de52d1364d838a9d1e20c94fa70c + ? ./lessThan + +let greaterThan + : Natural → Natural → Bool + = λ(x : Natural) → λ(y : Natural) → lessThan y x + +let example0 = assert : greaterThan 5 6 ≡ False + +let example1 = assert : greaterThan 5 5 ≡ False + +let example2 = assert : greaterThan 5 4 ≡ True + +let property0 = λ(n : Natural) → assert : greaterThan 0 n ≡ False + +let property1 = λ(n : Natural) → assert : greaterThan n n ≡ False + +in greaterThan diff --git a/buildkite/src/External/prelude/Natural/greaterThanEqual b/buildkite/src/External/prelude/Natural/greaterThanEqual new file mode 100644 index 000000000000..34456c30536b --- /dev/null +++ b/buildkite/src/External/prelude/Natural/greaterThanEqual @@ -0,0 +1,22 @@ +{- +`greaterThanEqual` checks if one Natural is greater than or equal to another. +-} +let lessThanEqual = + ./lessThanEqual sha256:1a5caa2b80a42b9f58fff58e47ac0d9a9946d0b2d36c54034b8ddfe3cb0f3c99 + ? ./lessThanEqual + +let greaterThanEqual + : Natural → Natural → Bool + = λ(x : Natural) → λ(y : Natural) → lessThanEqual y x + +let example0 = assert : greaterThanEqual 5 6 ≡ False + +let example1 = assert : greaterThanEqual 5 5 ≡ True + +let example2 = assert : greaterThanEqual 5 4 ≡ True + +let property0 = λ(n : Natural) → assert : greaterThanEqual n 0 ≡ True + +let property1 = λ(n : Natural) → assert : greaterThanEqual n n ≡ True + +in greaterThanEqual diff --git a/buildkite/src/External/prelude/Natural/isZero b/buildkite/src/External/prelude/Natural/isZero new file mode 100644 index 000000000000..50a75009709e --- /dev/null +++ b/buildkite/src/External/prelude/Natural/isZero @@ -0,0 +1,12 @@ +{- +Returns `True` if a number is `0` and returns `False` otherwise +-} +let isZero + : Natural → Bool + = Natural/isZero + +let example0 = assert : isZero 2 ≡ False + +let example1 = assert : isZero 0 ≡ True + +in isZero diff --git a/buildkite/src/External/prelude/Natural/lessThan b/buildkite/src/External/prelude/Natural/lessThan new file mode 100644 index 000000000000..0b5310f568c6 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/lessThan @@ -0,0 +1,26 @@ +{- +`lessThan` checks if one Natural is strictly less than another. +-} +let greaterThanEqual = + ./greaterThanEqual sha256:30ebfab0febd7aa0ccccfdf3dc36ee6d50f0117f35dd4a9b034750b7e885a1a4 + ? ./greaterThanEqual + +let Bool/not = + ../Bool/not sha256:723df402df24377d8a853afed08d9d69a0a6d86e2e5b2bac8960b0d4756c7dc4 + ? ../Bool/not + +let lessThan + : Natural → Natural → Bool + = λ(x : Natural) → λ(y : Natural) → Bool/not (greaterThanEqual x y) + +let example0 = assert : lessThan 5 6 ≡ True + +let example1 = assert : lessThan 5 5 ≡ False + +let example2 = assert : lessThan 5 4 ≡ False + +let property0 = λ(n : Natural) → assert : lessThan n 0 ≡ False + +let property1 = λ(n : Natural) → assert : lessThan n n ≡ False + +in lessThan diff --git a/buildkite/src/External/prelude/Natural/lessThanEqual b/buildkite/src/External/prelude/Natural/lessThanEqual new file mode 100644 index 000000000000..c2e03eb12d3f --- /dev/null +++ b/buildkite/src/External/prelude/Natural/lessThanEqual @@ -0,0 +1,18 @@ +{- +`lessThanEqual` checks if one Natural is less than or equal to another. +-} +let lessThanEqual + : Natural → Natural → Bool + = λ(x : Natural) → λ(y : Natural) → Natural/isZero (Natural/subtract y x) + +let example0 = assert : lessThanEqual 5 6 ≡ True + +let example1 = assert : lessThanEqual 5 5 ≡ True + +let example2 = assert : lessThanEqual 5 4 ≡ False + +let property0 = λ(n : Natural) → assert : lessThanEqual 0 n ≡ True + +let property1 = λ(n : Natural) → assert : lessThanEqual n n ≡ True + +in lessThanEqual diff --git a/buildkite/src/External/prelude/Natural/listMax b/buildkite/src/External/prelude/Natural/listMax new file mode 100644 index 000000000000..d202cf978697 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/listMax @@ -0,0 +1,28 @@ +{- +`listMax` returns the largest element of a `List` or `None Natural` if the +`List` is empty +-} +let max = + ./max sha256:1f3b18da330223ab039fad11693da72c7e68d516f50502c73f41a89a097b62f7 + ? ./max + +let Optional/map = + ../Optional/map sha256:501534192d988218d43261c299cc1d1e0b13d25df388937add784778ab0054fa + ? ../Optional/map + +let listMax + : List Natural → Optional Natural + = λ(xs : List Natural) + → Optional/map + Natural + Natural + (λ(n : Natural) → List/fold Natural xs Natural max n) + (List/head Natural xs) + +let example0 = assert : listMax [ 1, 2 ] ≡ Some 2 + +let example1 = assert : listMax ([] : List Natural) ≡ None Natural + +let property0 = λ(n : Natural) → assert : listMax [ n ] ≡ Some n + +in listMax diff --git a/buildkite/src/External/prelude/Natural/listMin b/buildkite/src/External/prelude/Natural/listMin new file mode 100644 index 000000000000..22942e8d6790 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/listMin @@ -0,0 +1,32 @@ +{- +`listMin` returns the smallest element of a `List` or `None Natural` if the +`List` is empty +-} +let min = + ./min sha256:f25f9c462e4dbf0eb15f9ff6ac840c6e9c82255a7f4f2ab408bdab338e028710 + ? ./min + +let Optional/map = + ../Optional/map sha256:501534192d988218d43261c299cc1d1e0b13d25df388937add784778ab0054fa + ? ../Optional/map + +let listMin + : List Natural → Optional Natural + = λ(xs : List Natural) + → Optional/map + Natural + Natural + ( λ(n : Natural) + → if Natural/isZero n then n else List/fold Natural xs Natural min n + ) + (List/head Natural xs) + +let example0 = assert : listMin [ 0, 1 ] ≡ Some 0 + +let example1 = assert : listMin ([] : List Natural) ≡ None Natural + +let example2 = assert : listMin [ 3, 2, 1 ] ≡ Some 1 + +let property0 = λ(n : Natural) → assert : listMin [ n ] ≡ Some n + +in listMin diff --git a/buildkite/src/External/prelude/Natural/max b/buildkite/src/External/prelude/Natural/max new file mode 100644 index 000000000000..545286675304 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/max @@ -0,0 +1,20 @@ +{- +`max a b` returns the larger of `a` or `b` +-} +let lessThanEqual = + ./lessThanEqual sha256:1a5caa2b80a42b9f58fff58e47ac0d9a9946d0b2d36c54034b8ddfe3cb0f3c99 + ? ./lessThanEqual + +let max + : Natural → Natural → Natural + = λ(a : Natural) → λ(b : Natural) → if lessThanEqual a b then b else a + +let example0 = assert : max 1 2 ≡ 2 + +let example1 = assert : max 2 1 ≡ 2 + +let property0 = λ(n : Natural) → assert : max n n ≡ n + +let property1 = λ(n : Natural) → assert : max 0 n ≡ n + +in max diff --git a/buildkite/src/External/prelude/Natural/min b/buildkite/src/External/prelude/Natural/min new file mode 100644 index 000000000000..4b884ebeca4f --- /dev/null +++ b/buildkite/src/External/prelude/Natural/min @@ -0,0 +1,18 @@ +{- +`min a b` returns the smaller of `a` or `b` +-} +let lessThanEqual = + ./lessThanEqual sha256:1a5caa2b80a42b9f58fff58e47ac0d9a9946d0b2d36c54034b8ddfe3cb0f3c99 + ? ./lessThanEqual + +let min + : Natural → Natural → Natural + = λ(a : Natural) → λ(b : Natural) → if lessThanEqual a b then a else b + +let example0 = assert : min 1 2 ≡ 1 + +let example1 = assert : min 2 1 ≡ 1 + +let property0 = λ(n : Natural) → assert : min n n ≡ n + +in min diff --git a/buildkite/src/External/prelude/Natural/odd b/buildkite/src/External/prelude/Natural/odd new file mode 100644 index 000000000000..702fd34392f5 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/odd @@ -0,0 +1,12 @@ +{- +Returns `True` if a number is odd and returns `False` otherwise +-} +let odd + : Natural → Bool + = Natural/odd + +let example0 = assert : odd 3 ≡ True + +let example1 = assert : odd 0 ≡ False + +in odd diff --git a/buildkite/src/External/prelude/Natural/package.dhall b/buildkite/src/External/prelude/Natural/package.dhall new file mode 100644 index 000000000000..ab76f45e2ca4 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/package.dhall @@ -0,0 +1,67 @@ +{ build = + ./build sha256:e7e25e6c4f1d8e573606ed1bef725396ac2de5c68f7c5d329ffc5822085b984c + ? ./build +, enumerate = + ./enumerate sha256:0cf083980a752b21ce0df9fc2222a4c139f50909e2353576e26a191002aa1ce3 + ? ./enumerate +, even = + ./even sha256:b85b8b56892dfef881e1c0e79eade0b949528f792aac0ea42432b315ede4ee66 + ? ./even +, fold = + ./fold sha256:fd01c931e585a8f5fd049af7b076b862ea164f1813b34800c7616a49e549ee06 + ? ./fold +, isZero = + ./isZero sha256:1be98236800ed2d5cff44f16ca02b34b0c37dfa239d9e0d63d9d2c6eeae3d1d1 + ? ./isZero +, odd = + ./odd sha256:ab3c729262c642ec1cdb72a81e910fcfaf2aea13e3961d0bf1bec83efea5aac5 + ? ./odd +, product = + ./product sha256:e3e6fd76207875b81d39f79fdbc90b5e640444c04fb3d84c2c9326748f0b26e6 + ? ./product +, sum = + ./sum sha256:33f7f4c3aff62e5ecf4848f964363133452d420dcde045784518fb59fa970037 + ? ./sum +, show = + ./show sha256:684ed560ad86f438efdea229eca122c29e8e14f397ed32ec97148d578ca5aa21 + ? ./show +, toDouble = + ./toDouble sha256:d5eb52143dcd35b46a6f0cdb2d3cbf31a14b6daeba56e29066f8e344c9fb6e81 + ? ./toDouble +, toInteger = + ./toInteger sha256:160d2d278619f3da34a1f4f02e739a447e4f2aa5a2978c45b710515b41491e1f + ? ./toInteger +, lessThan = + ./lessThan sha256:3381b66749290769badf8855d8a3f4af62e8de52d1364d838a9d1e20c94fa70c + ? ./lessThan +, lessThanEqual = + ./lessThanEqual sha256:1a5caa2b80a42b9f58fff58e47ac0d9a9946d0b2d36c54034b8ddfe3cb0f3c99 + ? ./lessThanEqual +, equal = + ./equal sha256:7f108edfa35ddc7cebafb24dc073478e93a802e13b5bc3fd22f4768c9b066e60 + ? ./equal +, greaterThanEqual = + ./greaterThanEqual sha256:30ebfab0febd7aa0ccccfdf3dc36ee6d50f0117f35dd4a9b034750b7e885a1a4 + ? ./greaterThanEqual +, greaterThan = + ./greaterThan sha256:f702abcdfcd7ad73619b9285d7e41c3a1d017fb6b8d037cf40bd93bf30c09b2c + ? ./greaterThan +, min = + ./min sha256:f25f9c462e4dbf0eb15f9ff6ac840c6e9c82255a7f4f2ab408bdab338e028710 + ? ./min +, max = + ./max sha256:1f3b18da330223ab039fad11693da72c7e68d516f50502c73f41a89a097b62f7 + ? ./max +, listMin = + ./listMin sha256:ee70b0d010bbca6012162e8ae1f6e9d9bd10a152675509b0f23145b98b5d43c6 + ? ./listMin +, listMax = + ./listMax sha256:20906ffcc9970f740106d4516cb7868b43d75ff8c9f00ff8a9680ae68c48a472 + ? ./listMax +, sort = + ./sort sha256:36ce8b3e5538454763987ca904d8d7c5ba34c2147434a19eddd51f684432b260 + ? ./sort +, subtract = + ./subtract sha256:b9277ac637d09142a3a3ac79137ef5955c42f8b33b6746d59db2c9d75ccdd745 + ? ./subtract +} diff --git a/buildkite/src/External/prelude/Natural/product b/buildkite/src/External/prelude/Natural/product new file mode 100644 index 000000000000..a2945dfe259f --- /dev/null +++ b/buildkite/src/External/prelude/Natural/product @@ -0,0 +1,13 @@ +{- +Multiply all the numbers in a `List` +-} +let product + : List Natural → Natural + = λ(xs : List Natural) + → List/fold Natural xs Natural (λ(l : Natural) → λ(r : Natural) → l * r) 1 + +let example0 = assert : product [ 2, 3, 5 ] ≡ 30 + +let example1 = assert : product ([] : List Natural) ≡ 1 + +in product diff --git a/buildkite/src/External/prelude/Natural/show b/buildkite/src/External/prelude/Natural/show new file mode 100644 index 000000000000..b943180fe106 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/show @@ -0,0 +1,13 @@ +{- +Render a `Natural` number as `Text` using the same representation as Dhall +source code (i.e. a decimal number) +-} +let show + : Natural → Text + = Natural/show + +let example0 = assert : show 3 ≡ "3" + +let example1 = assert : show 0 ≡ "0" + +in show diff --git a/buildkite/src/External/prelude/Natural/sort b/buildkite/src/External/prelude/Natural/sort new file mode 100644 index 000000000000..bb88d6eaa0e6 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/sort @@ -0,0 +1,60 @@ +{- +`sort` sorts a `List` of `Natural`s in ascending order +-} +let greaterThanEqual = + ./greaterThanEqual sha256:30ebfab0febd7aa0ccccfdf3dc36ee6d50f0117f35dd4a9b034750b7e885a1a4 + ? ./greaterThanEqual + +let listMin = + ./listMin sha256:ee70b0d010bbca6012162e8ae1f6e9d9bd10a152675509b0f23145b98b5d43c6 + ? ./listMin + +let List/partition = + ../List/partition sha256:38147ac6d750a6492736dd90cc967bf09aa405c499de943c64fab7b86ae02f03 + ? ../List/partition + +let Accumulator = { sorted : List Natural, rest : List Natural } + +let partitionMinima = + λ(xs : List Natural) + → merge + { Some = + λ(m : Natural) → List/partition Natural (greaterThanEqual m) xs + , None = { true = [] : List Natural, false = [] : List Natural } + } + (listMin xs) + +let test0 = + assert + : partitionMinima [ 2, 1, 1, 3 ] ≡ { true = [ 1, 1 ], false = [ 2, 3 ] } + +let step = + λ(x : Accumulator) + → let p = partitionMinima x.rest + + in { sorted = x.sorted # p.true, rest = p.false } + +let test1 = + assert + : step { sorted = [ 1, 1 ], rest = [ 2, 3 ] } + ≡ { sorted = [ 1, 1, 2 ], rest = [ 3 ] } + +let sort + : List Natural → List Natural + = λ(xs : List Natural) + → let x = + Natural/fold + (List/length Natural xs) + Accumulator + step + { sorted = [] : List Natural, rest = xs } + + in x.sorted + +let example0 = assert : sort ([] : List Natural) ≡ ([] : List Natural) + +let example1 = assert : sort [ 1 ] ≡ [ 1 ] + +let example2 = assert : sort [ 3, 2, 1, 3, 2, 1 ] ≡ [ 1, 1, 2, 2, 3, 3 ] + +in sort diff --git a/buildkite/src/External/prelude/Natural/subtract b/buildkite/src/External/prelude/Natural/subtract new file mode 100644 index 000000000000..31a0d77f8f68 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/subtract @@ -0,0 +1,20 @@ +{- +`subtract m n` computes `n - m`, truncating to `0` if `m > n` +-} +let subtract + : Natural → Natural → Natural + = Natural/subtract + +let example0 = assert : subtract 1 2 ≡ 1 + +let example1 = assert : subtract 1 1 ≡ 0 + +let example2 = assert : subtract 2 1 ≡ 0 + +let property0 = λ(n : Natural) → assert : subtract 0 n ≡ n + +let property1 = λ(n : Natural) → assert : subtract n 0 ≡ 0 + +let property2 = λ(n : Natural) → assert : subtract n n ≡ 0 + +in subtract diff --git a/buildkite/src/External/prelude/Natural/sum b/buildkite/src/External/prelude/Natural/sum new file mode 100644 index 000000000000..f6a0873162ab --- /dev/null +++ b/buildkite/src/External/prelude/Natural/sum @@ -0,0 +1,13 @@ +{- +Add all the numbers in a `List` +-} +let sum + : List Natural → Natural + = λ(xs : List Natural) + → List/fold Natural xs Natural (λ(l : Natural) → λ(r : Natural) → l + r) 0 + +let example = assert : sum [ 2, 3, 5 ] ≡ 10 + +let example = assert : sum ([] : List Natural) ≡ 0 + +in sum diff --git a/buildkite/src/External/prelude/Natural/toDouble b/buildkite/src/External/prelude/Natural/toDouble new file mode 100644 index 000000000000..77d43b19cb66 --- /dev/null +++ b/buildkite/src/External/prelude/Natural/toDouble @@ -0,0 +1,12 @@ +{- +Convert a `Natural` number to the corresponding `Double` +-} +let toDouble + : Natural → Double + = λ(n : Natural) → Integer/toDouble (Natural/toInteger n) + +let example0 = assert : toDouble 3 ≡ 3.0 + +let example1 = assert : toDouble 0 ≡ 0.0 + +in toDouble diff --git a/buildkite/src/External/prelude/Natural/toInteger b/buildkite/src/External/prelude/Natural/toInteger new file mode 100644 index 000000000000..8f52340fb78e --- /dev/null +++ b/buildkite/src/External/prelude/Natural/toInteger @@ -0,0 +1,12 @@ +{- +Convert a `Natural` number to the corresponding `Integer` +-} +let toInteger + : Natural → Integer + = Natural/toInteger + +let example0 = assert : toInteger 3 ≡ +3 + +let example1 = assert : toInteger 0 ≡ +0 + +in toInteger diff --git a/buildkite/src/External/prelude/Optional/all b/buildkite/src/External/prelude/Optional/all new file mode 100644 index 000000000000..deff65129739 --- /dev/null +++ b/buildkite/src/External/prelude/Optional/all @@ -0,0 +1,16 @@ +{- +Returns `False` if the supplied function returns `False` for a present element +and `True` otherwise: +-} +let all + : ∀(a : Type) → (a → Bool) → Optional a → Bool + = λ(a : Type) + → λ(f : a → Bool) + → λ(xs : Optional a) + → merge { Some = f, None = True } xs + +let example0 = assert : all Natural Natural/even (Some 3) ≡ False + +let example1 = assert : all Natural Natural/even (None Natural) ≡ True + +in all diff --git a/buildkite/src/External/prelude/Optional/any b/buildkite/src/External/prelude/Optional/any new file mode 100644 index 000000000000..f49cc4003040 --- /dev/null +++ b/buildkite/src/External/prelude/Optional/any @@ -0,0 +1,16 @@ +{- +Returns `True` if the supplied function returns `True` for a present element and +`False` otherwise +-} +let any + : ∀(a : Type) → (a → Bool) → Optional a → Bool + = λ(a : Type) + → λ(f : a → Bool) + → λ(xs : Optional a) + → merge { Some = f, None = False } xs + +let example0 = assert : any Natural Natural/even (Some 2) ≡ True + +let example1 = assert : any Natural Natural/even (None Natural) ≡ False + +in any diff --git a/buildkite/src/External/prelude/Optional/build b/buildkite/src/External/prelude/Optional/build new file mode 100644 index 000000000000..b78b2d449db8 --- /dev/null +++ b/buildkite/src/External/prelude/Optional/build @@ -0,0 +1,43 @@ +{- +`build` is the inverse of `fold` +-} +let build + : ∀(a : Type) + → ( ∀(optional : Type) + → ∀(some : a → optional) + → ∀(none : optional) + → optional + ) + → Optional a + = λ(a : Type) + → λ ( build + : ∀(optional : Type) + → ∀(some : a → optional) + → ∀(none : optional) + → optional + ) + → build (Optional a) (λ(x : a) → Some x) (None a) + +let example0 = + assert + : build + Natural + ( λ(optional : Type) + → λ(some : Natural → optional) + → λ(none : optional) + → some 1 + ) + ≡ Some 1 + +let example1 = + assert + : build + Natural + ( λ(optional : Type) + → λ(some : Natural → optional) + → λ(none : optional) + → none + ) + ≡ None Natural + +in build diff --git a/buildkite/src/External/prelude/Optional/concat b/buildkite/src/External/prelude/Optional/concat new file mode 100644 index 000000000000..046e0e44a329 --- /dev/null +++ b/buildkite/src/External/prelude/Optional/concat @@ -0,0 +1,16 @@ +{- +Flatten two `Optional` layers into a single `Optional` layer +-} +let concat + : ∀(a : Type) → Optional (Optional a) → Optional a + = λ(a : Type) + → λ(x : Optional (Optional a)) + → merge { Some = λ(y : Optional a) → y, None = None a } x + +let example0 = assert : concat Natural (Some (Some 1)) ≡ Some 1 + +let example1 = assert : concat Natural (Some (None Natural)) ≡ None Natural + +let example2 = assert : concat Natural (None (Optional Natural)) ≡ None Natural + +in concat diff --git a/buildkite/src/External/prelude/Optional/default b/buildkite/src/External/prelude/Optional/default new file mode 100644 index 000000000000..fbb6af1e477f --- /dev/null +++ b/buildkite/src/External/prelude/Optional/default @@ -0,0 +1,15 @@ +{- +Unpack an `Optional`, returning the default when it's `None`. +-} +let default + : ∀(a : Type) → a → Optional a → a + = λ(a : Type) + → λ(default : a) + → λ(o : Optional a) + → merge { Some = λ(x : a) → x, None = default } o + +let example0 = assert : default Bool False (None Bool) ≡ False + +let example1 = assert : default Bool False (Some True) ≡ True + +in default diff --git a/buildkite/src/External/prelude/Optional/filter b/buildkite/src/External/prelude/Optional/filter new file mode 100644 index 000000000000..1995a9050c25 --- /dev/null +++ b/buildkite/src/External/prelude/Optional/filter @@ -0,0 +1,31 @@ +{- +Only keep an `Optional` element if the supplied function returns `True` +-} +let filter + : ∀(a : Type) → (a → Bool) → Optional a → Optional a + = λ(a : Type) + → λ(f : a → Bool) + → λ(xs : Optional a) + → ( λ(a : Type) + → λ ( build + : ∀(optional : Type) + → ∀(some : a → optional) + → ∀(none : optional) + → optional + ) + → build (Optional a) (λ(x : a) → Some x) (None a) + ) + a + ( λ(optional : Type) + → λ(some : a → optional) + → λ(none : optional) + → merge + { Some = λ(x : a) → if f x then some x else none, None = none } + xs + ) + +let example0 = assert : filter Natural Natural/even (Some 2) ≡ Some 2 + +let example1 = assert : filter Natural Natural/odd (Some 2) ≡ None Natural + +in filter diff --git a/buildkite/src/External/prelude/Optional/fold b/buildkite/src/External/prelude/Optional/fold new file mode 100644 index 000000000000..a22ce22b88dd --- /dev/null +++ b/buildkite/src/External/prelude/Optional/fold @@ -0,0 +1,23 @@ +{- +`fold` is the primitive function for consuming `Optional` values +-} +let fold + : ∀(a : Type) + → Optional a + → ∀(optional : Type) + → ∀(some : a → optional) + → ∀(none : optional) + → optional + = λ(a : Type) + → λ(o : Optional a) + → λ(optional : Type) + → λ(some : a → optional) + → λ(none : optional) + → merge { Some = some, None = none } o + +let example0 = assert : fold Natural (Some 2) Natural (λ(x : Natural) → x) 0 ≡ 2 + +let example1 = + assert : fold Natural (None Natural) Natural (λ(x : Natural) → x) 0 ≡ 0 + +in fold diff --git a/buildkite/src/External/prelude/Optional/head b/buildkite/src/External/prelude/Optional/head new file mode 100644 index 000000000000..30563a478cd8 --- /dev/null +++ b/buildkite/src/External/prelude/Optional/head @@ -0,0 +1,26 @@ +{- +Returns the first non-empty `Optional` value in a `List` +-} +let head + : ∀(a : Type) → List (Optional a) → Optional a + = λ(a : Type) + → λ(xs : List (Optional a)) + → List/fold + (Optional a) + xs + (Optional a) + ( λ(l : Optional a) + → λ(r : Optional a) + → merge { Some = λ(x : a) → Some x, None = r } l + ) + (None a) + +let example0 = assert : head Natural [ None Natural, Some 1, Some 2 ] ≡ Some 1 + +let example1 = + assert : head Natural [ None Natural, None Natural ] ≡ None Natural + +let example2 = + assert : head Natural ([] : List (Optional Natural)) ≡ None Natural + +in head diff --git a/buildkite/src/External/prelude/Optional/last b/buildkite/src/External/prelude/Optional/last new file mode 100644 index 000000000000..e99f9fb406af --- /dev/null +++ b/buildkite/src/External/prelude/Optional/last @@ -0,0 +1,26 @@ +{- +Returns the last non-empty `Optional` value in a `List` +-} +let last + : ∀(a : Type) → List (Optional a) → Optional a + = λ(a : Type) + → λ(xs : List (Optional a)) + → List/fold + (Optional a) + xs + (Optional a) + ( λ(l : Optional a) + → λ(r : Optional a) + → merge { Some = λ(x : a) → Some x, None = l } r + ) + (None a) + +let example0 = assert : last Natural [ None Natural, Some 1, Some 2 ] ≡ Some 2 + +let example1 = + assert : last Natural [ None Natural, None Natural ] ≡ None Natural + +let example2 = + assert : last Natural ([] : List (Optional Natural)) ≡ None Natural + +in last diff --git a/buildkite/src/External/prelude/Optional/length b/buildkite/src/External/prelude/Optional/length new file mode 100644 index 000000000000..16584e98a5f2 --- /dev/null +++ b/buildkite/src/External/prelude/Optional/length @@ -0,0 +1,14 @@ +{- +Returns `1` if the `Optional` value is present and `0` if the value is absent +-} +let length + : ∀(a : Type) → Optional a → Natural + = λ(a : Type) + → λ(xs : Optional a) + → merge { Some = λ(_ : a) → 1, None = 0 } xs + +let example0 = assert : length Natural (Some 2) ≡ 1 + +let example1 = assert : length Natural (None Natural) ≡ 0 + +in length diff --git a/buildkite/src/External/prelude/Optional/map b/buildkite/src/External/prelude/Optional/map new file mode 100644 index 000000000000..b337bc3c7c61 --- /dev/null +++ b/buildkite/src/External/prelude/Optional/map @@ -0,0 +1,16 @@ +{- +Transform an `Optional` value with a function +-} +let map + : ∀(a : Type) → ∀(b : Type) → (a → b) → Optional a → Optional b + = λ(a : Type) + → λ(b : Type) + → λ(f : a → b) + → λ(o : Optional a) + → merge { Some = λ(x : a) → Some (f x), None = None b } o + +let example0 = assert : map Natural Bool Natural/even (Some 3) ≡ Some False + +let example1 = assert : map Natural Bool Natural/even (None Natural) ≡ None Bool + +in map diff --git a/buildkite/src/External/prelude/Optional/null b/buildkite/src/External/prelude/Optional/null new file mode 100644 index 000000000000..58ce726434bd --- /dev/null +++ b/buildkite/src/External/prelude/Optional/null @@ -0,0 +1,14 @@ +{- +Returns `True` if the `Optional` value is absent and `False` if present +-} +let null + : ∀(a : Type) → Optional a → Bool + = λ(a : Type) + → λ(xs : Optional a) + → merge { Some = λ(_ : a) → False, None = True } xs + +let example0 = assert : null Natural (Some 2) ≡ False + +let example1 = assert : null Natural (None Natural) ≡ True + +in null diff --git a/buildkite/src/External/prelude/Optional/package.dhall b/buildkite/src/External/prelude/Optional/package.dhall new file mode 100644 index 000000000000..dc180e0c9cd8 --- /dev/null +++ b/buildkite/src/External/prelude/Optional/package.dhall @@ -0,0 +1,43 @@ +{ all = + ./all sha256:a303004b6def0a2a05bf5f0a8d54e84dd45d8bef581789186ac04924956a1695 + ? ./all +, any = + ./any sha256:96a5cf4f31b3c598b09161dd3082f0a09f4328a4cefda6a7e09894b37b17b435 + ? ./any +, build = + ./build sha256:28e61294bf2dd59dc57cf74f719d1568e60b5ba46c28eac586bc937eff4a2af1 + ? ./build +, concat = + ./concat sha256:b7736bd3ebeab14c3912dfb534d0c970a025b001d06c2d5461d4b0e289e3cb7a + ? ./concat +, default = + ./default sha256:5bd665b0d6605c374b3c4a7e2e2bd3b9c1e39323d41441149ed5e30d86e889ad + ? ./default +, filter = + ./filter sha256:54f0a487d578801819613fe000050c038c632edf1f9ccc57677e98ae0ef56b83 + ? ./filter +, fold = + ./fold sha256:c5b9d72f6f62bdaa0e196ac1c742cc175cd67a717b880fb8aec1333a5a4132cf + ? ./fold +, head = + ./head sha256:4f256c9338b60a1933f41f2a8fafd861930a1e41770a644cdbac0622676fa34c + ? ./head +, last = + ./last sha256:50400771ae19e9b75efa6581feec318ae1ade0b6a60e215df428c66c4b052707 + ? ./last +, length = + ./length sha256:f168337c5244ded68c05ecf32ce068b6b87158881d07e87b8cb6853fc6982a85 + ? ./length +, map = + ./map sha256:501534192d988218d43261c299cc1d1e0b13d25df388937add784778ab0054fa + ? ./map +, null = + ./null sha256:3871180b87ecaba8b53fffb2a8b52d3fce98098fab09a6f759358b9e8042eedc + ? ./null +, toList = + ./toList sha256:d78f160c619119ef12389e48a629ce293d69f7624c8d016b7a4767ab400344c4 + ? ./toList +, unzip = + ./unzip sha256:d016c01ba91657a2f35609aa29087963d0f506bab0f41d5e8b7cd289dff39708 + ? ./unzip +} diff --git a/buildkite/src/External/prelude/Optional/toList b/buildkite/src/External/prelude/Optional/toList new file mode 100644 index 000000000000..24c7804e6b1d --- /dev/null +++ b/buildkite/src/External/prelude/Optional/toList @@ -0,0 +1,14 @@ +{- +Convert an `Optional` value into the equivalent `List` +-} +let toList + : ∀(a : Type) → Optional a → List a + = λ(a : Type) + → λ(o : Optional a) + → merge { Some = λ(x : a) → [ x ] : List a, None = [] : List a } o + +let example0 = assert : toList Natural (Some 1) ≡ [ 1 ] + +let example1 = assert : toList Natural (None Natural) ≡ ([] : List Natural) + +in toList diff --git a/buildkite/src/External/prelude/Optional/unzip b/buildkite/src/External/prelude/Optional/unzip new file mode 100644 index 000000000000..f0bb857d8a6a --- /dev/null +++ b/buildkite/src/External/prelude/Optional/unzip @@ -0,0 +1,32 @@ +{- +Unzip an `Optional` value into two separate `Optional` values +-} +let unzip + : ∀(a : Type) + → ∀(b : Type) + → Optional { _1 : a, _2 : b } + → { _1 : Optional a, _2 : Optional b } + = λ(a : Type) + → λ(b : Type) + → λ(xs : Optional { _1 : a, _2 : b }) + → { _1 = + merge + { Some = λ(x : { _1 : a, _2 : b }) → Some x._1, None = None a } + xs + , _2 = + merge + { Some = λ(x : { _1 : a, _2 : b }) → Some x._2, None = None b } + xs + } + +let example0 = + assert + : unzip Text Bool (Some { _1 = "ABC", _2 = True }) + ≡ { _1 = Some "ABC", _2 = Some True } + +let example1 = + assert + : unzip Text Bool (None { _1 : Text, _2 : Bool }) + ≡ { _1 = None Text, _2 = None Bool } + +in unzip diff --git a/buildkite/src/External/prelude/README.md b/buildkite/src/External/prelude/README.md new file mode 100644 index 000000000000..94b9665b55fb --- /dev/null +++ b/buildkite/src/External/prelude/README.md @@ -0,0 +1,79 @@ +# Prelude + +This package contains useful utilities for getting started with the Dhall +configuration language. The Prelude is unique in that changes are approved by +the same process as changes to the language standard. + +## Usage + +The Prelude is hosted at: + +* [https://prelude.dhall-lang.org/](https://prelude.dhall-lang.org) + +... which you can use in several ways: + +* To browse the latest release of the Prelude package, you can visit: + + [https://prelude.dhall-lang.org/](https://prelude.dhall-lang.org) + +* To import a specific expression add the path to that expression to the URL + + For example, the URL for the `./Bool/not` expression is: + + [https://prelude.dhall-lang.org/Bool/not](https://prelude.dhall-lang.org/Bool/not) + + Here is an example of using the [`./Bool/not`](./Bool/not) expression: + + ```dhall + let Bool/not = https://prelude.dhall-lang.org/Bool/not + + in Bool/not True + ``` + +* To import the entire Prelude as a nested record, use the following import + within your Dhall code: + + [https://prelude.dhall-lang.org/package.dhall](https://prelude.dhall-lang.org/package.dhall) + + Here is an example of accessing the [`./Bool/not`](./Bool/not) expression as a + field of that record: + + ```dhall + let Prelude = https://prelude.dhall-lang.org/package.dhall + + in Prelude.Bool.not True + ``` + +* You can pin an expression to a specific version of the Prelude by prefixing the + path with the Prelude version + + For example, you could use the following URL to import version `10.0.0` of the + Prelude: + + [https://prelude.dhall-lang.org/v10.0.0/package.dhall](https://prelude.dhall-lang.org/v10.0.0/package.dhall) + + This also works for individual expressions, too, such as: + + [https://prelude.dhall-lang.org/v10.0.0/Bool/not](https://prelude.dhall-lang.org/v10.0.0/Bool/not) + + ... or for browsing a specific release of the Prelude: + + [https://prelude.dhall-lang.org/v10.0.0](https://prelude.dhall-lang.org/v10.0.0) + +The `prelude.dhall-lang.org` domain is CORS-enabled so the Prelude can be used +as a transitive import of other packages without violating the Dhall language's +CORS check. + +## Scope + +There is no hard rule for what belongs in the Prelude, but we can document what +we have included so far: + +* General purpose utilities (like [`./List/filter`](./List/filter)) + +* Re-exports of language built-ins (like [`./Natural/fold`](./Natural/fold)) + +* Integrations with other configuration formats (like [`./JSON/package.dhall`](./JSON/package.dhall)) + +The [contributing instructions](../.github/CONTRIBUTING.md#how-do-i-change-the-language) +provide more details about how to discuss or propose changes if you would like to contribute to the Prelude. diff --git a/buildkite/src/External/prelude/Text/concat b/buildkite/src/External/prelude/Text/concat new file mode 100644 index 000000000000..83d1065f2b8c --- /dev/null +++ b/buildkite/src/External/prelude/Text/concat @@ -0,0 +1,13 @@ +{- +Concatenate all the `Text` values in a `List` +-} +let concat + : List Text → Text + = λ(xs : List Text) + → List/fold Text xs Text (λ(x : Text) → λ(y : Text) → x ++ y) "" + +let example0 = assert : concat [ "ABC", "DEF", "GHI" ] ≡ "ABCDEFGHI" + +let example1 = assert : concat ([] : List Text) ≡ "" + +in concat diff --git a/buildkite/src/External/prelude/Text/concatMap b/buildkite/src/External/prelude/Text/concatMap new file mode 100644 index 000000000000..d1389f458658 --- /dev/null +++ b/buildkite/src/External/prelude/Text/concatMap @@ -0,0 +1,24 @@ +{- +Transform each value in a `List` into `Text` and concatenate the result +-} +let concatMap + : ∀(a : Type) → (a → Text) → List a → Text + = λ(a : Type) + → λ(f : a → Text) + → λ(xs : List a) + → List/fold a xs Text (λ(x : a) → λ(y : Text) → f x ++ y) "" + +let example0 = + assert + : concatMap Natural (λ(n : Natural) → "${Natural/show n} ") [ 0, 1, 2 ] + ≡ "0 1 2 " + +let example1 = + assert + : concatMap + Natural + (λ(n : Natural) → "${Natural/show n} ") + ([] : List Natural) + ≡ "" + +in concatMap diff --git a/buildkite/src/External/prelude/Text/concatMapSep b/buildkite/src/External/prelude/Text/concatMapSep new file mode 100644 index 000000000000..952bd75b3797 --- /dev/null +++ b/buildkite/src/External/prelude/Text/concatMapSep @@ -0,0 +1,38 @@ +{- +Transform each value in a `List` to `Text` and then concatenate them with a +separator in between each value +-} +let Status = < Empty | NonEmpty : Text > + +let concatMapSep + : ∀(separator : Text) → ∀(a : Type) → (a → Text) → List a → Text + = λ(separator : Text) + → λ(a : Type) + → λ(f : a → Text) + → λ(elements : List a) + → let status = + List/fold + a + elements + Status + ( λ(x : a) + → λ(status : Status) + → merge + { Empty = Status.NonEmpty (f x) + , NonEmpty = + λ(result : Text) + → Status.NonEmpty (f x ++ separator ++ result) + } + status + ) + Status.Empty + + in merge { Empty = "", NonEmpty = λ(result : Text) → result } status + +let example0 = + assert : concatMapSep ", " Natural Natural/show [ 0, 1, 2 ] ≡ "0, 1, 2" + +let example1 = + assert : concatMapSep ", " Natural Natural/show ([] : List Natural) ≡ "" + +in concatMapSep diff --git a/buildkite/src/External/prelude/Text/concatSep b/buildkite/src/External/prelude/Text/concatSep new file mode 100644 index 000000000000..d3fa33630c1a --- /dev/null +++ b/buildkite/src/External/prelude/Text/concatSep @@ -0,0 +1,33 @@ +{- +Concatenate a `List` of `Text` values with a separator in between each value +-} +let Status = < Empty | NonEmpty : Text > + +let concatSep + : ∀(separator : Text) → ∀(elements : List Text) → Text + = λ(separator : Text) + → λ(elements : List Text) + → let status = + List/fold + Text + elements + Status + ( λ(element : Text) + → λ(status : Status) + → merge + { Empty = Status.NonEmpty element + , NonEmpty = + λ(result : Text) + → Status.NonEmpty (element ++ separator ++ result) + } + status + ) + Status.Empty + + in merge { Empty = "", NonEmpty = λ(result : Text) → result } status + +let example0 = assert : concatSep ", " [ "ABC", "DEF", "GHI" ] ≡ "ABC, DEF, GHI" + +let example1 = assert : concatSep ", " ([] : List Text) ≡ "" + +in concatSep diff --git a/buildkite/src/External/prelude/Text/default b/buildkite/src/External/prelude/Text/default new file mode 100644 index 000000000000..5192ea953e01 --- /dev/null +++ b/buildkite/src/External/prelude/Text/default @@ -0,0 +1,12 @@ +{- +Unwrap an `Optional` `Text` value, defaulting `None` to `""` +-} +let default + : Optional Text → Text + = λ(o : Optional Text) → merge { Some = λ(t : Text) → t, None = "" } o + +let example0 = assert : default (Some "ABC") ≡ "ABC" + +let example1 = assert : default (None Text) ≡ "" + +in default diff --git a/buildkite/src/External/prelude/Text/defaultMap b/buildkite/src/External/prelude/Text/defaultMap new file mode 100644 index 000000000000..aaedcd76c78b --- /dev/null +++ b/buildkite/src/External/prelude/Text/defaultMap @@ -0,0 +1,15 @@ +{- +Transform the value in an `Optional` into `Text`, defaulting `None` to `""` +-} +let defaultMap + : ∀(a : Type) → (a → Text) → Optional a → Text + = λ(a : Type) + → λ(f : a → Text) + → λ(o : Optional a) + → merge { Some = f, None = "" } o + +let example0 = assert : defaultMap Natural Natural/show (Some 0) ≡ "0" + +let example1 = assert : defaultMap Natural Natural/show (None Natural) ≡ "" + +in defaultMap diff --git a/buildkite/src/External/prelude/Text/package.dhall b/buildkite/src/External/prelude/Text/package.dhall new file mode 100644 index 000000000000..fe210e4633ec --- /dev/null +++ b/buildkite/src/External/prelude/Text/package.dhall @@ -0,0 +1,22 @@ +{ concat = + ./concat sha256:731265b0288e8a905ecff95c97333ee2db614c39d69f1514cb8eed9259745fc0 + ? ./concat +, concatMap = + ./concatMap sha256:7a0b0b99643de69d6f94ba49441cd0fa0507cbdfa8ace0295f16097af37e226f + ? ./concatMap +, concatMapSep = + ./concatMapSep sha256:c272aca80a607bc5963d1fcb38819e7e0d3e72ac4d02b1183b1afb6a91340840 + ? ./concatMapSep +, concatSep = + ./concatSep sha256:e4401d69918c61b92a4c0288f7d60a6560ca99726138ed8ebc58dca2cd205e58 + ? ./concatSep +, default = + ./default sha256:f532c8891b1e427d90a6cc07cf7e793a4c84b0765e1bfe69f186ee2ec91c1edf + ? ./default +, defaultMap = + ./defaultMap sha256:3a3fa1264f6198800c27483cb144de2c5366484876d60b9c739a710ce0288588 + ? ./defaultMap +, show = + ./show sha256:c9dc5de3e5f32872dbda57166804865e5e80785abe358ff61f1d8ac45f1f4784 + ? ./show +} diff --git a/buildkite/src/External/prelude/Text/show b/buildkite/src/External/prelude/Text/show new file mode 100644 index 000000000000..93858d973717 --- /dev/null +++ b/buildkite/src/External/prelude/Text/show @@ -0,0 +1,19 @@ +{- +Render a `Text` literal as its own representation as Dhall source code (i.e. a +double-quoted string literal) +-} +let show + : Text → Text + = Text/show + +let example0 = assert : show "ABC" ≡ "\"ABC\"" + +let example1 = + assert + : show + '' + ${"\u0000"} $ \ + ${" "}☺'' + ≡ "\"\\u0000 \\u0024 \\\\ \\n ☺\"" + +in show diff --git a/buildkite/src/External/prelude/XML/Type b/buildkite/src/External/prelude/XML/Type new file mode 100644 index 000000000000..910d0483464c --- /dev/null +++ b/buildkite/src/External/prelude/XML/Type @@ -0,0 +1,62 @@ +{- Dhall encoding of an arbitrary XML element + + For example, the following XML element: + +``` +baz +``` + + ... corresponds to the following Dhall expression: + + +``` +λ(XML : Type) + → λ ( xml + : { text : + Text → XML + , element : + { attributes : + List { mapKey : Text, mapValue : Text } + , content : + List XML + , name : + Text + } + → XML + } + ) + → xml.element + { attributes = + [ { mapKey = "n", mapValue = "1" } ] + , content = + [ xml.element + { attributes = + [] : List { mapKey : Text, mapValue : Text } + , content = + [ xml.text "baz" ] + , name = + "bar" + } + ] + , name = + "foo" + } +``` +-} + +let XML/Type + : Type + = ∀(XML : Type) + → ∀ ( xml + : { text : Text → XML + , element : + { attributes : List { mapKey : Text, mapValue : Text } + , content : List XML + , name : Text + } + → XML + } + ) + → XML + +in XML/Type diff --git a/buildkite/src/External/prelude/XML/attribute b/buildkite/src/External/prelude/XML/attribute new file mode 100644 index 000000000000..085bc0611c73 --- /dev/null +++ b/buildkite/src/External/prelude/XML/attribute @@ -0,0 +1,7 @@ +{- Builds a key-value record with a Text key and value. -} + +let attribute + : Text → Text → { mapKey : Text, mapValue : Text } + = λ(key : Text) → λ(value : Text) → { mapKey = key, mapValue = value } + +in attribute diff --git a/buildkite/src/External/prelude/XML/element b/buildkite/src/External/prelude/XML/element new file mode 100644 index 000000000000..930d3d52a4c9 --- /dev/null +++ b/buildkite/src/External/prelude/XML/element @@ -0,0 +1,57 @@ +{- Create an XML element value. + +``` +let XML = ./package.dhall + +in XML.render + ( XML.element + { name = "foo" + , attributes = XML.emptyAttributes + , content = + [ XML.leaf { name = "bar", attributes = [ XML.attribute "n" "1" ] } + , XML.leaf { name = "baz", attributes = [ XML.attribute "n" "2" ] } + ] + } + ) + += "" +``` +-} + + +let XML = + ./Type sha256:461930f3aab769ba537d1a4fd71f411504b0c8d1c1a78d65177be8ded0df8a5c + ? ./Type + +let List/map = + ../List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 + ? ../List/map + +let Args = + { attributes : List { mapKey : Text, mapValue : Text } + , name : Text + , content : List XML + } + : Type + +let element + : Args → XML + = λ(elem : Args) + → λ(XML : Type) + → λ ( xml + : { text : Text → XML + , element : + { attributes : List { mapKey : Text, mapValue : Text } + , content : List XML + , name : Text + } + → XML + } + ) + → xml.element + { attributes = elem.attributes + , name = elem.name + , content = List/map XML@1 XML (λ(x : XML@1) → x XML xml) elem.content + } + +in element diff --git a/buildkite/src/External/prelude/XML/emptyAttributes b/buildkite/src/External/prelude/XML/emptyAttributes new file mode 100644 index 000000000000..5815007be6e3 --- /dev/null +++ b/buildkite/src/External/prelude/XML/emptyAttributes @@ -0,0 +1,3 @@ +{- Create an empty XML attribute List. -} + +[] : List { mapKey : Text, mapValue : Text } diff --git a/buildkite/src/External/prelude/XML/leaf b/buildkite/src/External/prelude/XML/leaf new file mode 100644 index 000000000000..c0367302116c --- /dev/null +++ b/buildkite/src/External/prelude/XML/leaf @@ -0,0 +1,30 @@ +{- Create an XML element value without child elements. + +``` +let XML = ./package.dhall + +in XML.render (XML.leaf { name = "foobar", attributes = XML.emptyAttributes }) + += "" +``` +-} + +let XML = + ./Type sha256:461930f3aab769ba537d1a4fd71f411504b0c8d1c1a78d65177be8ded0df8a5c + ? ./Type + +let element = + ./element sha256:e0b948053c8cd8ccca9c39244d89e3f42db43d222531c18151551dfc75208b4b + ? ./element + +let leaf + : { attributes : List { mapKey : Text, mapValue : Text }, name : Text } + → XML + = λ ( elem + : { attributes : List { mapKey : Text, mapValue : Text } + , name : Text + } + ) + → element (elem ⫽ { content = [] : List XML }) + +in leaf diff --git a/buildkite/src/External/prelude/XML/package.dhall b/buildkite/src/External/prelude/XML/package.dhall new file mode 100644 index 000000000000..9e701bbd12bf --- /dev/null +++ b/buildkite/src/External/prelude/XML/package.dhall @@ -0,0 +1,22 @@ +{ Type = + ./Type sha256:461930f3aab769ba537d1a4fd71f411504b0c8d1c1a78d65177be8ded0df8a5c + ? ./Type +, attribute = + ./attribute sha256:f7b6c802ca5764d03d5e9a6e48d9cb167c01392f775d9c2c87b83cdaa60ea0cc + ? ./attribute +, render = + ./render sha256:8d034f7f97cded14a96147565d489be840e5678480d175b962b2600d85a3230e + ? ./render +, element = + ./element sha256:e0b948053c8cd8ccca9c39244d89e3f42db43d222531c18151551dfc75208b4b + ? ./element +, leaf = + ./leaf sha256:4383e4fc4bf6a29ac2052776972eb59d5355a1cd067cded80d4ff32840969261 + ? ./leaf +, text = + ./text sha256:c83cd721d32d7dc28c04ce429c0cb22812639e572637ec348578a58ffb68844f + ? ./text +, emptyAttributes = + ./emptyAttributes sha256:11b86e2d3f3c75d47a1d580213d2a03fd2c36d64f3e9b6381de0ba23472f64d5 + ? ./emptyAttributes +} diff --git a/buildkite/src/External/prelude/XML/render b/buildkite/src/External/prelude/XML/render new file mode 100644 index 000000000000..028da41b3f0f --- /dev/null +++ b/buildkite/src/External/prelude/XML/render @@ -0,0 +1,66 @@ +{- Render an `XML` value as `Text` + + *WARNING:* rendering does not include any XML injection mitigations, + therefore it should not be used to process arbitrary strings into + element attributes or element data. + + For indentation and schema validation, see the `xmllint` utility + bundled with libxml2. + +``` +let XML = ./package.dhall + +in XML.render + ( XML.node + { name = "foo" + , attributes = [ XML.attribute "a" "x", XML.attribute "b" (Natural/show 2) ] + , content = [ XML.leaf { name = "bar", attributes = XML.emptyAttributes } ] + } + ) += "" +``` + +-} + +let XML = + ./Type sha256:461930f3aab769ba537d1a4fd71f411504b0c8d1c1a78d65177be8ded0df8a5c + ? ./Type + +let Text/concatMap = + ../Text/concatMap sha256:7a0b0b99643de69d6f94ba49441cd0fa0507cbdfa8ace0295f16097af37e226f + ? ../Text/concatMap + +let Text/concat = + ../Text/concat sha256:731265b0288e8a905ecff95c97333ee2db614c39d69f1514cb8eed9259745fc0 + ? ../Text/concat + +let Attr = { mapKey : Text, mapValue : Text } + +let renderAttr = λ(x : Attr) → " ${x.mapKey}=\"${x.mapValue}\"" + +let render + : XML → Text + = λ(x : XML) + → x + Text + { text = λ(d : Text) → d + , element = + λ ( elem + : { attributes : List { mapKey : Text, mapValue : Text } + , content : List Text + , name : Text + } + ) + → let attribs = Text/concatMap Attr renderAttr elem.attributes + + in "<${elem.name}${attribs}" + ++ ( if Natural/isZero + (List/length Text elem.content) + + then "/>" + + else ">${Text/concat elem.content}" + ) + } + +in render diff --git a/buildkite/src/External/prelude/XML/text b/buildkite/src/External/prelude/XML/text new file mode 100644 index 000000000000..4b306fa3dcc2 --- /dev/null +++ b/buildkite/src/External/prelude/XML/text @@ -0,0 +1,37 @@ +{- Create a Text value to be inserted into an XML element as content. + +``` +let XML = ./package.dhall + +in XML.render + ( XML.node + { name = "location" + , attributes = XML.emptyAttributes + , content = [ XML.text "/foo/bar" ] + } + ) += "/foo/bar" +``` +-} + +let XML = + ./Type sha256:461930f3aab769ba537d1a4fd71f411504b0c8d1c1a78d65177be8ded0df8a5c + ? ./Type + +let text + : Text → XML + = λ(d : Text) + → λ(XML : Type) + → λ ( xml + : { text : Text → XML + , element : + { attributes : List { mapKey : Text, mapValue : Text } + , content : List XML + , name : Text + } + → XML + } + ) + → xml.text d + +in text diff --git a/buildkite/src/External/prelude/package.dhall b/buildkite/src/External/prelude/package.dhall new file mode 100644 index 000000000000..2b946e338730 --- /dev/null +++ b/buildkite/src/External/prelude/package.dhall @@ -0,0 +1,40 @@ +{ Bool = + ./Bool/package.dhall sha256:7ee950e7c2142be5923f76d00263e536b71d96cb9c190d7743c1679501ddeb0a + ? ./Bool/package.dhall +, Double = + ./Double/package.dhall sha256:b8d20ab3216083622ae371fb42a6732bc67bb2d66e84989c8ddba7556a336cf7 + ? ./Double/package.dhall +, Function = + ./Function/package.dhall sha256:6d17cf0fd4fabe1737fb117f87c04b8ff82b299915a5b673c0a543b134b8fffe + ? ./Function/package.dhall +, Integer = + ./Integer/package.dhall sha256:d1a572ca3a764781496847e4921d7d9a881c18ffcfac6ae28d0e5299066938a0 + ? ./Integer/package.dhall +, List = + ./List/package.dhall sha256:67899380860ce07a2d5d9530dc502800f2c11c73c2d64e8c827f4920b5473887 + ? ./List/package.dhall +, Location = + ./Location/package.dhall sha256:0eb4e4a60814018009c720f6820aaa13cf9491eb1b09afb7b832039c6ee4d470 + ? ./Location/package.dhall +, Map = + ./Map/package.dhall sha256:598e9c76103b2686fbbda6cc30078f9e60dd846d9eaf155d0149cf0ae06c21c5 + ? ./Map/package.dhall +, Monoid = + ./Monoid sha256:26fafa098600ef7a54ef9dba5ada416bbbdd21df1af306c052420c61553ad4af + ? ./Monoid +, Natural = + ./Natural/package.dhall sha256:ee9ed2b28a417ed4e9a0c284801b928bf91b3fbdc1a68616347678c1821f1ddf + ? ./Natural/package.dhall +, Optional = + ./Optional/package.dhall sha256:4324b2bf84ded40f67485f14355e4cb7b237a8f173e713c791ec44cebebc552c + ? ./Optional/package.dhall +, JSON = + ./JSON/package.dhall sha256:1b02c5ff4710f90ee3f8dc1a2565f1b52b45e5317e2df4775307e2ba0cadcf21 + ? ./JSON/package.dhall +, Text = + ./Text/package.dhall sha256:3a5e3acde76fe5f90bd296e6c9d2e43e6ae81c56f804029b39352d2f1664b769 + ? ./Text/package.dhall +, XML = + ./XML/package.dhall sha256:137e7b106b2e9743970e5d37b21a165f2e40f56ab593a4dd10605c9acd686fc6 + ? ./XML/package.dhall +} diff --git a/buildkite/src/Jobs/Lint/Dhall.dhall b/buildkite/src/Jobs/Lint/Dhall.dhall index 95b4eaab641e..1fd48f7752e2 100644 --- a/buildkite/src/Jobs/Lint/Dhall.dhall +++ b/buildkite/src/Jobs/Lint/Dhall.dhall @@ -21,13 +21,17 @@ let dump_pipelines_cmd = Cmd.Docker::{ , image = (../../Constants/ContainerImages.dhall).toolchainBase } - "buildkite/scripts/dhall/dump_dhall_to_pipelines.sh ./buildkite/src/ _pipelines" + "buildkite/scripts/dhall/dump_dhall_to_pipelines.sh ./buildkite/src _pipelines" in Pipeline.build Pipeline.Config::{ , spec = JobSpec::{ , dirtyWhen = - [ S.contains "buildkite/src", S.exactly "buildkite/Makefile" "" ] + [ S.contains "buildkite/src" + , S.exactly "buildkite/Makefile" "" + , S.exactly "buildkite/scripts/monorepo" "sh" + , S.exactly "buildkite/scripts/test_monorepo" "sh" + ] , path = "Lint" , name = "Dhall" , tags = @@ -115,5 +119,15 @@ in Pipeline.build , target = Size.Multi , docker = None Docker.Type } + , Command.build + Command.Config::{ + , commands = [ Cmd.run "cd buildkite && make test_monorepo" ] + , label = "Dhall: monorepo tests" + , key = "check-monorepo-tests" + , target = Size.Multi + , docker = Some Docker::{ + , image = (../../Constants/ContainerImages.dhall).toolchainBase + } + } ] } diff --git a/buildkite/src/Jobs/Release/MinaArtifactBullseyeBerkeleyDevnet.dhall b/buildkite/src/Jobs/Release/MinaArtifactBullseyeTestnetGenericDevnet.dhall similarity index 100% rename from buildkite/src/Jobs/Release/MinaArtifactBullseyeBerkeleyDevnet.dhall rename to buildkite/src/Jobs/Release/MinaArtifactBullseyeTestnetGenericDevnet.dhall diff --git a/buildkite/src/Jobs/Release/MinaArtifactBullseyeBerkeleyDevnetInstrumented.dhall b/buildkite/src/Jobs/Release/MinaArtifactBullseyeTestnetGenericDevnetInstrumented.dhall similarity index 100% rename from buildkite/src/Jobs/Release/MinaArtifactBullseyeBerkeleyDevnetInstrumented.dhall rename to buildkite/src/Jobs/Release/MinaArtifactBullseyeTestnetGenericDevnetInstrumented.dhall diff --git a/buildkite/src/Jobs/Release/MinaArtifactBullseyeBerkeleyLightnet.dhall b/buildkite/src/Jobs/Release/MinaArtifactBullseyeTestnetGenericLightnet.dhall similarity index 100% rename from buildkite/src/Jobs/Release/MinaArtifactBullseyeBerkeleyLightnet.dhall rename to buildkite/src/Jobs/Release/MinaArtifactBullseyeTestnetGenericLightnet.dhall diff --git a/buildkite/src/Jobs/Release/MinaArtifactFocalBerkeleyDevnet.dhall b/buildkite/src/Jobs/Release/MinaArtifactFocalBerkeleyDevnet.dhall deleted file mode 100644 index 58e49cabe56b..000000000000 --- a/buildkite/src/Jobs/Release/MinaArtifactFocalBerkeleyDevnet.dhall +++ /dev/null @@ -1,39 +0,0 @@ -let ArtifactPipelines = ../../Command/MinaArtifact.dhall - -let DebianVersions = ../../Constants/DebianVersions.dhall - -let Artifacts = ../../Constants/Artifacts.dhall - -let Pipeline = ../../Pipeline/Dsl.dhall - -let PipelineScope = ../../Pipeline/Scope.dhall - -let PipelineTag = ../../Pipeline/Tag.dhall - -in Pipeline.build - ( ArtifactPipelines.pipeline - ArtifactPipelines.MinaBuildSpec::{ - , artifacts = - [ Artifacts.Type.Daemon - , Artifacts.Type.LogProc - , Artifacts.Type.Archive - , Artifacts.Type.BatchTxn - , Artifacts.Type.TestExecutive - , Artifacts.Type.Rosetta - , Artifacts.Type.ZkappTestTransaction - , Artifacts.Type.CreateLegacyGenesis - ] - , scope = - [ PipelineScope.Type.MainlineNightly, PipelineScope.Type.Release ] - , debVersion = DebianVersions.DebVersion.Focal - , tags = - [ PipelineTag.Type.Long - , PipelineTag.Type.Release - , PipelineTag.Type.Docker - , PipelineTag.Type.Rosetta - , PipelineTag.Type.Devnet - , PipelineTag.Type.Amd64 - , PipelineTag.Type.Focal - ] - } - ) diff --git a/buildkite/src/Jobs/Release/MinaArtifactOnlyDebianBullseyeBerkeleyDevnet.dhall b/buildkite/src/Jobs/Release/MinaArtifactOnlyDebianBullseyeTestnetGenericDevnet.dhall similarity index 100% rename from buildkite/src/Jobs/Release/MinaArtifactOnlyDebianBullseyeBerkeleyDevnet.dhall rename to buildkite/src/Jobs/Release/MinaArtifactOnlyDebianBullseyeTestnetGenericDevnet.dhall diff --git a/buildkite/src/Jobs/Test/ChainIdTestDevnet.dhall b/buildkite/src/Jobs/Test/ChainIdTestDevnet.dhall new file mode 100644 index 000000000000..e2f0a66357c3 --- /dev/null +++ b/buildkite/src/Jobs/Test/ChainIdTestDevnet.dhall @@ -0,0 +1,22 @@ +let Dockers = ../../Constants/DockerVersions.dhall + +let Network = ../../Constants/Network.dhall + +let Profile = ../../Constants/Profiles.dhall + +let ChainIdTest = ../../Command/ChainIdTest.dhall + +let PipelineScope = ../../Pipeline/Scope.dhall + +let scopes = [ PipelineScope.Type.PullRequest ] + +let network = Network.Type.Devnet + +let deps = + Dockers.dependsOn + Dockers.DepsSpec::{ network = network, profile = Profile.Type.Devnet } + +let expectedChainId = + "29936104443aaf264a7f0192ac64b1c7173198c1ed404c1bcff5e562e05eb7f6" + +in ChainIdTest.makeTest "ChainIdTestDevnet" scopes deps network expectedChainId diff --git a/buildkite/src/Jobs/Test/ChainIdTestMainnet.dhall b/buildkite/src/Jobs/Test/ChainIdTestMainnet.dhall new file mode 100644 index 000000000000..1e85dfdd2fbb --- /dev/null +++ b/buildkite/src/Jobs/Test/ChainIdTestMainnet.dhall @@ -0,0 +1,27 @@ +let Dockers = ../../Constants/DockerVersions.dhall + +let Network = ../../Constants/Network.dhall + +let Profile = ../../Constants/Profiles.dhall + +let ChainIdTest = ../../Command/ChainIdTest.dhall + +let PipelineScope = ../../Pipeline/Scope.dhall + +let scopes = [ PipelineScope.Type.MainlineNightly, PipelineScope.Type.Release ] + +let network = Network.Type.Mainnet + +let deps = + Dockers.dependsOn + Dockers.DepsSpec::{ network = network, profile = Profile.Type.Mainnet } + +let expectedChainId = + "a7351abc7ddf2ea92d1b38cc8e636c271c1dfd2c081c637f62ebc2af34eb7cc1" + +in ChainIdTest.makeTest + "ChainIdTestMainnet" + scopes + deps + network + expectedChainId diff --git a/buildkite/src/Jobs/Test/DaemonUnitTest.dhall b/buildkite/src/Jobs/Test/DaemonUnitTest.dhall index 5d64e41e640e..49c8846ad1da 100644 --- a/buildkite/src/Jobs/Test/DaemonUnitTest.dhall +++ b/buildkite/src/Jobs/Test/DaemonUnitTest.dhall @@ -26,7 +26,11 @@ let buildTestCmd , commands = RunInToolchain.runInToolchain [ "DUNE_INSTRUMENT_WITH=bisect_ppx", "COVERALLS_TOKEN" ] - "buildkite/scripts/unit-test.sh ${profile} ${path} && buildkite/scripts/upload-partial-coverage-data.sh ${command_key} dev" + ( "buildkite/scripts/unit-test.sh ${profile} ${path}" + ++ " && buildkite/scripts/upload-partial-coverage-data.sh ${command_key} dev" + ++ " && buildkite/scripts/profile-dependent-tests.sh devnet" + ++ " && buildkite/scripts/profile-dependent-tests.sh mainnet" + ) , label = "${profile} unit-tests" , key = command_key , target = cmd_target @@ -43,6 +47,7 @@ in Pipeline.build , S.exactly "buildkite/src/Jobs/Test/DaemonUnitTest" "dhall" , S.exactly "buildkite/src/Constants/ContainerImages" "dhall" , S.exactly "scripts/link-coredumps" "sh" + , S.exactly "buildkite/scripts/profile-dependent-tests" "sh" , S.exactly "buildkite/scripts/unit-test" "sh" ] diff --git a/buildkite/src/Jobs/Test/DebianModifications.dhall b/buildkite/src/Jobs/Test/DebianModifications.dhall new file mode 100644 index 000000000000..e1a455a901ad --- /dev/null +++ b/buildkite/src/Jobs/Test/DebianModifications.dhall @@ -0,0 +1,29 @@ +let S = ../../Lib/SelectFiles.dhall + +let JobSpec = ../../Pipeline/JobSpec.dhall + +let Pipeline = ../../Pipeline/Dsl.dhall + +let PipelineTag = ../../Pipeline/Tag.dhall + +let DebianModifications = ../../Command/DebianModifications.dhall + +in Pipeline.build + Pipeline.Config::{ + , spec = JobSpec::{ + , dirtyWhen = + [ S.strictlyStart (S.contains "scripts/debian/session") + , S.exactly "buildkite/src/Jobs/Test/DebianModifications" "dhall" + , S.exactly "buildkite/src/Command/DebianModifications" "dhall" + ] + , path = "Test" + , name = "DebianModifications" + , tags = + [ PipelineTag.Type.Fast + , PipelineTag.Type.Test + , PipelineTag.Type.Stable + , PipelineTag.Type.Debian + ] + } + , steps = [ DebianModifications.step ] + } diff --git a/buildkite/src/Jobs/Test/HardforkPackageConversion.dhall b/buildkite/src/Jobs/Test/HardforkPackageConversion.dhall new file mode 100644 index 000000000000..9699b62a6ba5 --- /dev/null +++ b/buildkite/src/Jobs/Test/HardforkPackageConversion.dhall @@ -0,0 +1,54 @@ +let S = ../../Lib/SelectFiles.dhall + +let Pipeline = ../../Pipeline/Dsl.dhall + +let PipelineTag = ../../Pipeline/Tag.dhall + +let JobSpec = ../../Pipeline/JobSpec.dhall + +let Command = ../../Command/Base.dhall + +let Size = ../../Command/Size.dhall + +let RunInToolchain = ../../Command/RunInToolchain.dhall + +let DebianVersions = ../../Constants/DebianVersions.dhall + +let Network = ../../Constants/Network.dhall + +in Pipeline.build + Pipeline.Config::{ + , spec = JobSpec::{ + , dirtyWhen = + [ S.strictlyStart + ( S.contains + "buildkite/scripts/tests/convert-debian-to-hf-test.sh" + ) + , S.strictlyStart + (S.contains "scripts/hardfork/convert-daemon-debian-to-hf.sh") + , S.strictlyStart (S.contains "scripts/debian/session") + ] + , path = "Test" + , name = "HardforkPackageConversion" + , tags = + [ PipelineTag.Type.Fast + , PipelineTag.Type.Test + , PipelineTag.Type.Stable + ] + } + , steps = + [ Command.build + Command.Config::{ + , commands = + RunInToolchain.runInToolchain + ([] : List Text) + "buildkite/scripts/tests/convert-debian-to-hf-test.sh" + , label = "Hardfork: Package Conversion" + , key = "hf-package-conversion-test" + , target = Size.Large + , depends_on = + DebianVersions.dependsOn + DebianVersions.DepsSpec::{ network = Network.Type.Devnet } + } + ] + } diff --git a/buildkite/src/Jobs/Test/HardforkPipelineTest.dhall b/buildkite/src/Jobs/Test/HardforkPipelineTest.dhall new file mode 100644 index 000000000000..d2d7e2d7ea97 --- /dev/null +++ b/buildkite/src/Jobs/Test/HardforkPipelineTest.dhall @@ -0,0 +1,56 @@ +let S = ../../Lib/SelectFiles.dhall + +let Pipeline = ../../Pipeline/Dsl.dhall + +let PipelineTag = ../../Pipeline/Tag.dhall + +let PipelineScope = ../../Pipeline/Scope.dhall + +let JobSpec = ../../Pipeline/JobSpec.dhall + +let Command = ../../Command/Base.dhall + +let Docker = ../../Command/Docker/Type.dhall + +let Size = ../../Command/Size.dhall + +let B = ../../External/Buildkite.dhall + +let RunInToolchain = ../../Command/RunInToolchain.dhall + +let B/SoftFail = B.definitions/commandStep/properties/soft_fail/Type + +in Pipeline.build + Pipeline.Config::{ + , spec = JobSpec::{ + , dirtyWhen = + [ S.strictlyStart (S.contains "src") + , S.exactly "buildkite/src/Jobs/Test/HardforkPipelineTest" "dhall" + , S.strictlyStart (S.contains "buildkite/scripts/pipeline") + ] + , path = "Test" + , name = "HardforkPipelineTest" + , scope = PipelineScope.AllButPullRequest + , tags = + [ PipelineTag.Type.Long + , PipelineTag.Type.Test + , PipelineTag.Type.Stable + , PipelineTag.Type.Hardfork + ] + } + , steps = + [ Command.build + Command.Config::{ + , commands = + RunInToolchain.runInToolchain + [ "BUILDKITE_AGENT_WRITE_TOKEN" ] + "./buildkite/scripts/pipeline/run_for_newest_devnet.sh" + , label = "Hardfork: pipeline test" + , key = "hard-fork-pipeline-test" + , target = Size.Small + , soft_fail = Some (B/SoftFail.Boolean True) + , docker = None Docker.Type + , timeout_in_minutes = Some +65 + } + ] + } diff --git a/buildkite/src/Jobs/Test/ReleaseManagerTest.dhall b/buildkite/src/Jobs/Test/ReleaseManagerTest.dhall new file mode 100644 index 000000000000..c068a18a34fe --- /dev/null +++ b/buildkite/src/Jobs/Test/ReleaseManagerTest.dhall @@ -0,0 +1,53 @@ +let S = ../../Lib/SelectFiles.dhall + +let Pipeline = ../../Pipeline/Dsl.dhall + +let PipelineTag = ../../Pipeline/Tag.dhall + +let JobSpec = ../../Pipeline/JobSpec.dhall + +let Command = ../../Command/Base.dhall + +let Docker = ../../Command/Docker/Type.dhall + +let Size = ../../Command/Size.dhall + +let Cmd = ../../Lib/Cmds.dhall + +let command_key = "release-manager-tests" + +in Pipeline.build + Pipeline.Config::{ + , spec = JobSpec::{ + , dirtyWhen = + [ S.strictlyStart (S.contains "buildkite/scripts/release") + , S.strictlyStart (S.contains "scripts/debian") + , S.strictlyStart (S.contains "scripts/docker") + , S.strictlyStart + (S.contains "buildkite/src/Jobs/Test/ReleaseManagerTest") + , S.exactly "buildkite/scripts/tests/release-manager-test" "sh" + ] + , path = "Test" + , name = "ReleaseManagerTest" + , tags = + [ PipelineTag.Type.Fast + , PipelineTag.Type.Test + , PipelineTag.Type.Stable + , PipelineTag.Type.Release + ] + } + , steps = + [ Command.build + Command.Config::{ + , commands = + [ Cmd.run + "AWS_DEFAULT_REGION=us-west-2 ./buildkite/scripts/tests/release-manager-test.sh" + ] + , label = "Release Manager Tests" + , key = command_key + , target = Size.Small + , docker = None Docker.Type + , artifact_paths = [ S.contains "*.log" ] + } + ] + } diff --git a/buildkite/src/Jobs/Test/RosettaIntegrationTests.dhall b/buildkite/src/Jobs/Test/RosettaIntegrationTests.dhall index ebd7870493fd..9ede29a2ed26 100644 --- a/buildkite/src/Jobs/Test/RosettaIntegrationTests.dhall +++ b/buildkite/src/Jobs/Test/RosettaIntegrationTests.dhall @@ -20,7 +20,7 @@ let Network = ../../Constants/Network.dhall let RunWithPostgres = ../../Command/RunWithPostgres.dhall -let network = Network.Type.Berkeley +let network = Network.Type.TestnetGeneric let dirtyWhen = [ S.strictlyStart (S.contains "src") diff --git a/buildkite/src/Jobs/Test/SingleNodeTest.dhall b/buildkite/src/Jobs/Test/SingleNodeTest.dhall index 3e06b041e2ad..72bd326dec6f 100644 --- a/buildkite/src/Jobs/Test/SingleNodeTest.dhall +++ b/buildkite/src/Jobs/Test/SingleNodeTest.dhall @@ -35,7 +35,11 @@ let buildTestCmd Command.Config::{ , commands = RunInToolchain.runInToolchain - [ "DUNE_INSTRUMENT_WITH=bisect_ppx", "COVERALLS_TOKEN" ] + ( [ "DUNE_INSTRUMENT_WITH=bisect_ppx" + , "COVERALLS_TOKEN" + ] + # DebianVersions.overrideEnvs + ) "buildkite/scripts/single-node-tests.sh && buildkite/scripts/upload-partial-coverage-data.sh ${key}" , label = "single-node-tests" , key = key diff --git a/buildkite/src/Jobs/Test/VersionLint.dhall b/buildkite/src/Jobs/Test/VersionLint.dhall index 5c2b7873bd29..35cd1a222699 100644 --- a/buildkite/src/Jobs/Test/VersionLint.dhall +++ b/buildkite/src/Jobs/Test/VersionLint.dhall @@ -32,13 +32,13 @@ let buildTestCmd Command.Config::{ , commands = RunInToolchain.runInToolchain - ([] : List Text) + DebianVersions.overrideEnvs "buildkite/scripts/dump-mina-type-shapes.sh" # RunInToolchain.runInToolchain - ([] : List Text) + DebianVersions.overrideEnvs "buildkite/scripts/version-linter-patch-missing-type-shapes.sh ${release_branch}" # RunInToolchain.runInToolchain - ([] : List Text) + DebianVersions.overrideEnvs "buildkite/scripts/version-linter.sh ${release_branch}" , label = "Versioned type linter for ${release_branch}" , key = "version-linter-${release_branch}" diff --git a/buildkite/src/Lib/SelectFiles.dhall b/buildkite/src/Lib/SelectFiles.dhall index ef5d73702214..1ae4a04f9985 100644 --- a/buildkite/src/Lib/SelectFiles.dhall +++ b/buildkite/src/Lib/SelectFiles.dhall @@ -108,7 +108,7 @@ let compileFile || P.Bool.not (P.Optional.null (List Text) pattern.exts) - then "\\\$" + then "\$" else "" @@ -126,7 +126,7 @@ let everythingExample = assert : compile [ everything ] === ".*" let exactlyExample = assert : compile [ exactly "scripts/compile" "py" ] - === "^scripts/compile(\\.py)\\\$" + === "^scripts/compile(\\.py)\$" let containsExample = assert @@ -135,7 +135,7 @@ let containsExample = let strictContainsExample = assert : compile [ strictly (contains "buildkite/Makefile") ] - === "^buildkite/Makefile\\\$" + === "^buildkite/Makefile\$" let D = PathPattern @@ -150,7 +150,7 @@ let realisticExample = , strictly (contains "buildkite/Makefile") , exactly "buildkite/scripts/generate-jobs" "sh" ] - === "^buildkite/.*(\\.dhall)\\\$|^buildkite/Makefile\\\$|^buildkite/scripts/generate-jobs(\\.sh)\\\$" + === "^buildkite/.*(\\.dhall)\$|^buildkite/Makefile\$|^buildkite/scripts/generate-jobs(\\.sh)\$" in { compile = compile , everything = everything diff --git a/buildkite/src/Prepare.dhall b/buildkite/src/Prepare.dhall index ae52d204623c..40f010789899 100644 --- a/buildkite/src/Prepare.dhall +++ b/buildkite/src/Prepare.dhall @@ -42,7 +42,7 @@ let config , Cmd.run "export BUILDKITE_PIPELINE_SCOPE=${scopeFilter}" , Cmd.run "export BUILDKITE_PIPELINE_FILTER_MODE=${filterMode}" , Cmd.quietly - "dhall-to-yaml --quoted <<< '(./buildkite/src/Monorepo.dhall) { selection=(./buildkite/src/Pipeline/JobSelection.dhall).Type.${selection}, tagFilter=(./buildkite/src/Pipeline/TagFilter.dhall).Type.${tagFilter}, scopeFilter=(./buildkite/src/Pipeline/ScopeFilter.dhall).Type.${scopeFilter}, filterMode=(./buildkite/src/Pipeline/FilterMode.dhall).Type.${filterMode} }' | buildkite-agent pipeline upload" + "./buildkite/scripts/pipeline/upload.sh '(./buildkite/src/Monorepo.dhall) { selection=(./buildkite/src/Pipeline/JobSelection.dhall).Type.${selection}, tagFilter=(./buildkite/src/Pipeline/TagFilter.dhall).Type.${tagFilter}, scopeFilter=(./buildkite/src/Pipeline/ScopeFilter.dhall).Type.${scopeFilter}, filterMode=(./buildkite/src/Pipeline/FilterMode.dhall).Type.${filterMode} }'" ] , label = "Prepare monorepo triage" , key = "monorepo-${selection}-${tagFilter}-${scopeFilter}" diff --git a/changes/18112.md b/changes/18112.md new file mode 100644 index 000000000000..13164127bb8d --- /dev/null +++ b/changes/18112.md @@ -0,0 +1,11 @@ +Introducing testnet-generic docker/debian packages instead of berkeley. + +This PR introduces changes in packages names and file structure: + +- -berkeley package suffix is renamed to -testnet-generic +- testnet-generic packages does not include magic config (config automatically loaded when starting daemon) only devnet.json ledger. +- devnet package won't include mainnet.json (we don't need them since it is not feasible to connect "cross chains", e.g. connect to mainnet with daemon built for devnet and vice versa) +- mainnet package won't include devnet.json, for the same reason as above + + + diff --git a/changes/18259.md b/changes/18259.md new file mode 100644 index 000000000000..8d52228b3387 --- /dev/null +++ b/changes/18259.md @@ -0,0 +1,3 @@ +Auto hard fork daemons will now avoid keeping migrated Berkeley genesis ledgers +on disk; they will instead migrate these ledgers on-demand when bootstrapping +from genesis. diff --git a/changes/18266.md b/changes/18266.md new file mode 100644 index 000000000000..1cd4981e3e81 --- /dev/null +++ b/changes/18266.md @@ -0,0 +1,2 @@ +Fix incorrect zkApp state vector padding in the account migration method used by +auto hard fork daemon diff --git a/changes/18269.md b/changes/18269.md new file mode 100644 index 000000000000..f6df40c8e080 --- /dev/null +++ b/changes/18269.md @@ -0,0 +1,2 @@ +- Added a `mina internal chain-id --config-file path-to-genesis-file` cli command to print the `chain_id` +- Added a test that makes sure that the `chain_id` doesn't accidentally change \ No newline at end of file diff --git a/changes/18270.md b/changes/18270.md new file mode 100644 index 000000000000..30a6afdae853 --- /dev/null +++ b/changes/18270.md @@ -0,0 +1,3 @@ +Fixed a bug where auto fork mode daemons would use an incorrect hash when +dealing with empty Mesa accounts, causing the names of hard fork genesis ledgers +to be computed incorrectly. diff --git a/changes/18276.md b/changes/18276.md new file mode 100644 index 000000000000..cd9e62af09e6 --- /dev/null +++ b/changes/18276.md @@ -0,0 +1,2 @@ +Fix a memory leak in the daemon caused by unnecessarily retaining references to +RPC response bodies received from the network diff --git a/changes/18281.md b/changes/18281.md new file mode 100644 index 000000000000..5681606cd54a --- /dev/null +++ b/changes/18281.md @@ -0,0 +1,4 @@ +- store `hash` field of in-memory type for `Transaction_with_witness` +- store `hash` field of in-memory type for `Ledger_proof_with_sok_message` +- use stored `hash` fields in computation of scan state hash from in-memory types +- use hash methods in computation of scan state hash from `Stable` types (instead of splicing in `string` values) \ No newline at end of file diff --git a/dockerfiles/stages/1-build-deps b/dockerfiles/stages/1-build-deps index fe09ce38cbee..d092af0f6e4e 100644 --- a/dockerfiles/stages/1-build-deps +++ b/dockerfiles/stages/1-build-deps @@ -57,7 +57,7 @@ ARG GO_CAPNP_VERSION=v3.0.0-alpha.5 # This should stay in line with: # - src/lib/crypto/kimchi_bindings/stubs/rust-toolchain.toml # - src/lib/crypto/proof-systems/rust-toolchain.toml -ARG RUST_VERSION=1.81.0 +ARG RUST_VERSION=1.92.0 # Nightly Rust Version used for WebAssembly builds # This should stay in line with the value of the variable # $NIGHTLY_RUST_VERSION defined in: diff --git a/dockerfiles/stages/3-toolchain b/dockerfiles/stages/3-toolchain index 1083720b9bd0..9433ec10d7b2 100644 --- a/dockerfiles/stages/3-toolchain +++ b/dockerfiles/stages/3-toolchain @@ -78,7 +78,7 @@ RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages. ENV USE_GKE_GCLOUD_AUTH_PLUGIN=True # --- yarn + nodejs, pinned version -RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - \ +RUN curl -sL https://deb.nodesource.com/setup_24.x | bash - \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ && apt-get update --yes \ diff --git a/genesis_ledgers/berkeley.json b/genesis_ledgers/berkeley.json deleted file mode 100644 index 3f2bd6591498..000000000000 --- a/genesis_ledgers/berkeley.json +++ /dev/null @@ -1,45432 +0,0 @@ -{ - "genesis": { - "genesis_state_timestamp": "2024-02-02T14:01:01Z" - }, - "ledger": { - "name": "berkeley", - "accounts": [ - { - "pk": "B62qmQsEHcsPUs5xdtHKjEmWqqhUPRSF2GNmdguqnNvpEZpKftPC69e", - "balance": "100000001.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnJcRzJpdaXvi6ok3iH7BbP3R6oZtT1C9qTyUr9hNHWRf3eUAJxC", - "balance": "2000000.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qobL9BSuCGeuWncu8T3rrYzwHrMJg4vGy4ZmzEqbgo4sBUu6cDa9", - "balance": "2000000.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qovt2YkaWGxnFxNAtXJi6xAFnCk6yZLpcNHVwMuYVhHy7o7ah4Yp", - "balance": "2000000.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkVNSvPaLMGLPVtja3vpJru2CjckhaQm1r3rRtf1in8UVofRKh6q", - "balance": "2000000.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnJMR8E9r1kW1BABo1kvzTxSCgZGjGq2Nt4sRK3AK7RYGYVmupM4", - "balance": "2000000.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqErRkmKkQKy8cfjeNn5V2mdowSM4i9YDXh1uzCGUEcGXgwyqwez", - "balance": "2000000.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qp97TWF2KaZy3Np627YjRyfLSvi8XUn5KG8nY5FZrRQKyycRNmch", - "balance": "2000000.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qipAMnqzJ3nUDu7wsXWUGQsSy6yopGpkMsnqYQNc6KCJhY2Vh2Np", - "balance": "2000000.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qr9t7yE2D3PGFJWWZNG4ovxTpCDjZoQPd2FvT81RcSBHZjhGfbAU", - "balance": "2000000.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqqgYvWCLK8bLibs3WcXa73JCiX3kn9DJt6GayS6tqXmLfx975fs", - "balance": "2000000.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnPcZqH9zrjoJ88AWe19u5kevos8NKRGbgrsTWZYZ1vrsDDFwUQR", - "balance": "2000000.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjfFSzkd68MLyf7RRJpSB6HndXA2XzqzNZZeJM2GWEox7i2GrTZ4", - "balance": "2000000.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkixEdCpes9U935NB469S8DowoydVsoikiTcWK4cTKNbnpAwHNQb", - "balance": "2000000.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qk46VGQCXxYTKGH9sKPcSea4AWgJtLsbbtt5sDZiC1ZhbHjjdWn4", - "balance": "2000000.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnZhmMNUT25QDT6uKVyVUWeg8dzXFgaW2TQdLoFzSpiKNYXTVz7W", - "balance": "2000000.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkj9ZW27j8GycaMJhQ89nhTxd197gD8iePi4BMwPAzsthgHscuLc", - "balance": "2000000.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qo9jgf8hpnr9Wr5V7hTJ21Ac1nd4fgzA5Atid5Z4hj6vSNJEVJp2", - "balance": "2000000.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkvTry3nuFd4J89zqncRZKV8a5FM6DXkLx9b9dYnpnVippjwZ37Z", - "balance": "2000000.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpkRoLggipEQpXgiNkRHQX7LsVh9pysps83sTtRvTJnuqrzQcK1i", - "balance": "2000000.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjj13XhsfbhYEW4zhtuN7RiQauCynBXqXLDG7kcRk3HiL9XXmmZ1", - "balance": "2000000.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qm2BLp9WswVBVhJFJyacZAAGLx29n56ps9ohmHSzfnAAbvk2SVwF", - "balance": "2000000.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qq3V3LDC8v9uPk9m9qVQR35oEtaex2WL85U9RhJATjc5fab5WDmw", - "balance": "2000000.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnnbDZoLjA6D7khU9smkpKn2o4Jnmz7MCB9U8mhZaKkJwa4EewNm", - "balance": "2000000.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qisxtEohMhyHW3F1Uej5MKtrNZMd4eCqghF418LbRovVC9TrM6EP", - "balance": "2000000.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkRveGnKAxE4Z1WcWTMp2w4ASotWWWwiKkQKEQdKaaM16aB2uDcK", - "balance": "2000000.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkE533zn6p7pwewjR5RnogRjvuEqKNYz4pQPJ6bCuqZnUrSk38Bw", - "balance": "2000000.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qr93USkNn5Qhs83EZyLcN4JKJUtdviP7Dzs4TwUvH3KipSajpmi7", - "balance": "2000000.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnPvNkPiQyjXdjJfwkfMimjb6BQu72kpMBcNY9ewLpjEKFEcq1UD", - "balance": "2000000.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmLKNTueHUy8Bem3NEYTuZwxUioxZWRsXKxBYCJZPc647884bsKF", - "balance": "2000000.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qphedMTo1RceHEs4Qkyr9tyMbGuu6zUAgxgxhRpyNg19UL6DE4Ji", - "balance": "2000000.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qppMZCxz78wUvVaZbRQrPKkZ2rqW4hwiPF9nSiaBi5qKe1vGSuPr", - "balance": "2000000.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrinKxsdxnaaxwfyF278maTfTJNxP9wrkK5NaFWTPqPyTxm8TTPe", - "balance": "2000000.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjpasNXin3xQBtEtLA8mqozjMNc56diDLbAAqyHSukC2m4k5w61T", - "balance": "2000000.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkLvCGyS3wd9C8kyAJf7oS4HybGMZe1aiGRzbUjnkxnv2qvyYqJh", - "balance": "2000000.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qq1FYu9c4s85vRCjsJxAmgkZTLh5yziUYDfPo7xshMpv1oCYm8xa", - "balance": "2000000.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkuQ3C9yCqJ6qwXJPKYv1QQWFiJgLnWfACSLmErw7WEKFSYzS3TL", - "balance": "2000000.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnVeyfGrHeSLLn6cCdUH3AykqFDTErcnc7spe5ymAHMcquy3fFGp", - "balance": "2000000.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qq1VkmGsTenAnZ24HQeFqDcw3GHGorXhLtvTBCtQ9tEm6EStWXbZ", - "balance": "2000000.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkkcYnowtJj5c8mMfWLLx79hbQmQ1ToAzA6xiokyyTogszarpvyX", - "balance": "2000000.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qou8QpWjXBidH1E1rqDSNmdR72xn1re3vy1VnRxYk6WjjWKebLsS", - "balance": "2000000.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmzyA5b7sFgoFsSqX5mdwE1PTsUDbdZtBEEMr4omZBVvaj8jcJr3", - "balance": "2000000.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qj8RfrHXMXgQeLW5HQEqwaDok5Vx1fpsTaTpSBgDmz337f1CrZUq", - "balance": "2000000.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnm9wijjTnbTRfqRi61qCFTAgdYA3oH9d7BRd1AKKE5CFAVstYRS", - "balance": "2000000.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjTHDC7k1WX1mrLpzLZSinQ9sQUotkHqVr2yPvbHuBWtUfEh3ZiP", - "balance": "2000000.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpxrokw5zmbSQf16bRjGrYqWG6wPPkGFMxQWoEH9awvPFP3Z2qju", - "balance": "2000000.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qo7LJjnNpKSPRABtSnHmnjyvyMR4HZSUYumj1dFPSyJsqMSsJJJ4", - "balance": "2000000.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpjdJPwXeLJAhTZSBCeDdnbP2gzC4eepjzTw8HWUDNErAxHg4EAs", - "balance": "2000000.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpL2xHNSGC1dW96MRDCL1S8TaLHqnpqidW1s3sFoHZrigvCCPpsP", - "balance": "2000000.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkvBXts2oZw8Lw7mHzn52zt12B63JG4A7Ai7p3WL82NcGn2t7N63", - "balance": "2000000.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qn1WHQyJ6FRBAUozm6ouSoKEudqEb6oWnXDK3ZvZa67EP4izSCxg", - "balance": "2000000.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpVmwDeNnZpZKgEbMrAGARbhifgacpEdJk7dM7ShSAj1gCySK8TF", - "balance": "2000000.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qopdDXDooMHnHdTB25xShB9aEdRhdQ2jioaWCre1zGaPRUf6ZoVh", - "balance": "2000000.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkAXTRhySpwQm9mKKfXrkVHTqxdtZe16TPwvoSMVDSWM87VFJ6ja", - "balance": "2000000.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkPP2GrPrxdEZt9Heh7PYJvUxM1LyGpvLeWdpqiiFe4Ru5yRQSk7", - "balance": "2000000.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnVNHbYRM2MkFBAR5namVgMstBWoqGfxLJSJKJBoyLGv7FRKsHwi", - "balance": "2000000.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrCMA79bVDzrXF42LgqXfcY5qh3NsddV67iqBFVQWReEmthNcbik", - "balance": "2000000.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpKXJYFvb5sa7UNeXb1CfSgaHTnVvz54YBouPdny8ttuxjgQcP8y", - "balance": "2000000.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qk9b6erTiHJvHHSYALu9JQUjwzCuhNJ5hwdaBw18yAoii6z44V2A", - "balance": "2000000.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpCsq2KUybBxMCoyHsvuD7xwt4Dc3nxe4UCpDGdn2aTvwmTRDBxE", - "balance": "2000000.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qoVKCTbg5C9UDhiUx6DAgX2ii7C9N9tJYCSxUzimuEiZzHuPvMyS", - "balance": "2000000.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrCSTyXx5DjKHt86F5ZKzB5opmhxo3whQYTzMx8paumufMMuEt78", - "balance": "2000000.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpcrmdebuJQ3x6ZBL1Trn9oKUBP8Xmq8UyN4LqBmDdBteix3gY1M", - "balance": "2000000.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qj9H3ivELDEwpVmERo9NoZp8F3DT4AB6CrMy1pfrHdn189Q3kB3w", - "balance": "2000000.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrSAACzLwFdWHPYLg1CXtE7qPWzFtHPmCSqF726YZkkn94evjYk5", - "balance": "2000000.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qiwQcmtdPSomQ1ogWSCrLzvGSZYNozdMwYhUTfyP1mN3gePHYLBf", - "balance": "2000000.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnQh4KVBhixbUsfmewMuyhMYBn99HDhH1LAGva1hXn7Bn6u8rpBK", - "balance": "2000000.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qo3UTc516sk7eEgJP78wetdVHXbajQCPfExcuz1pbmhihjHzu7EJ", - "balance": "2000000.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjp2HGwLpduApYy3RWPfufGTBYSBYWFLbvfBph9FfjxExDXaQgBG", - "balance": "2000000.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmi5FW1F5F9wgdxZTYY5uzTU6NbSsf68woudvRGJHZAEBMbLX2b3", - "balance": "2000000.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmWQ7RSdry9YSrrxXNqXtYeb68k2Kh25W2BDzMbMkK3H2DktdpEz", - "balance": "2000000.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkAbyE4MagXj6e7kTpTd6mtWtD3BCzGopB7d8zRjNLE16vJQDfQY", - "balance": "2000000.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qinEKoaFk3Nf9a8zJiaURaLbnMDxMr3qupYNrc8pCG8whkWN6JGG", - "balance": "2000000.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrg5WhinaU5kxa7oD44gGFjQAM2sP6kKBBhz3FAhcfGXD92LHff9", - "balance": "2000000.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrEKTLi6EJxaAoPTBzCYEsDk1krvf8DgsWC3sGyUZnEQSssCf81P", - "balance": "2000000.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjha5nfgDYkc4PqTN1zgthkQR2V3cn58FDfemrCCyTmJa57jcFRW", - "balance": "2000000.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qq6D1cuSVG1NXNZ3zxwuxMF5UZKVXLqL4xigMykxGAdEPJAksX2c", - "balance": "2000000.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qr8AuosQptBNpLerbR7XxY5zS9Pdm4tJhv2jFjKKw3s7sVtASM6C", - "balance": "2000000.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qokTuG5o51UfZfHrF9bBfnbUU6BQyZbbiZagnP6fAqL7PsuhwAPd", - "balance": "2000000.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qp9AEE9wNnxjTamE3HYK1nebJP6fU1DNtW5kBYjfm6rHVnEyErJN", - "balance": "2000000.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjpAU432y5bdpo9xW76ECzXmEcr5dvY168zVKaAaV6xCPCnwstRR", - "balance": "2000000.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qozWrxsZRD2RJZhGGKbAkkU7Sh8zd7RDC2rvquyTL2kihVdxgeiN", - "balance": "2000000.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmVJZhMrgfUoRt1pQbWXEeRzLtvmfWSPJJeh5Ls5hfzYeL9DbdiB", - "balance": "2000000.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qodfNRxosKcrfASzBdvxwFamY9TqXbbyhXv2j3mJZrBMsWC1uZnr", - "balance": "2000000.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qng4VuXbn4gUXM4uTFWrXGV2k2LgNkMYADMLFmHh1BPwWX8q3GEA", - "balance": "2000000.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qn6V4QcGt8FRHFcLkUNLV2WTkwGAzR5qBRYxqR3viL7zzwSbjNz5", - "balance": "2000000.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qj48NaCTD7UxmpUZ7A4t4jseweDrT3kYu3qQHV5Bb6iTvGiX4gh8", - "balance": "2000000.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjbSMu3RujtNnxRFZ2cLLHoxiPmNU86kfbpKFa3SMhB1tNRPqD8h", - "balance": "2000000.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrPY5khpr2PGazg5Dnwjm7ZRFb3KsLZd9UWj7tPK49ZfosZoaY9u", - "balance": "2000000.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qouKaT1kwqozApVnDDdVcukqEiTiKa5qR1Sba7dgTKpjFPsUzNUz", - "balance": "2000000.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrT2ukRgER4M4jfuxWQc8EGbQVRBZUVfE6NMfYxncvKZgqH8yGFP", - "balance": "2000000.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qipXowrmhxnshb6SysC7LXs2J78fK2Xx3nYvhKFTs7ZexmhyFYHk", - "balance": "2000000.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qivANyjMq2u27WCk4ishWrfDXjyCEiCMRJEzFPuu6LE239zy72Qd", - "balance": "2000000.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpky1ftrMYQVgn8u9Leq3Tft5hYpe3YrXoGPhpAmZ4qq8fpgBqsz", - "balance": "2000000.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnh4pC2U9aPq4YMGjD3MzQTZ2hBZsU2FDYJqpQfJNVADySTAQ8P3", - "balance": "2000000.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqLUmFPKkRhNUXY4N8yoyoDTWmkYz585AFYNK85cjfGyjYBLNvmz", - "balance": "2000000.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmGKkbfazSRAzDrEqMBN6DzdMKWQjefvqLsoyNNnD9uXBHhbiWXn", - "balance": "2000000.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqUV2K23FHARMxRXB6varvx3P2AUSa2ftfS8kMHmi143rFKJePZm", - "balance": "2000000.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrjdi5XW23ftuJvypM3avJ5weCoSQxVwANxUYt524PghSL6ub5Mg", - "balance": "2000000.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrY3YdxzkNaij28X9mRJuJ32rAhCmrWamG9UEwS2QmkaPvYzNAxx", - "balance": "2000000.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnQbJcpBa8rWamque7PR36s5BTjhPVykTpqyXLn5wpFgcDk1qGEx", - "balance": "2000000.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkKfyBJZgfLv44pq42PXZPxV8PPeNML9vjaWDzAACABwucMs7K2f", - "balance": "2000000.000000000", - "delegate": "B62qkKfyBJZgfLv44pq42PXZPxV8PPeNML9vjaWDzAACABwucMs7K2f", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqo5WSKA25CrUiJBRvCRe6MKhXwXKFa19jkmPCFTMSkx9cT4fe7R", - "balance": "2000000.000000000", - "delegate": "B62qqo5WSKA25CrUiJBRvCRe6MKhXwXKFa19jkmPCFTMSkx9cT4fe7R", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qm8Ve3G9iezu4kZh5fyVLvNCF47ikiLkzkrXzibjeHKzTqErDgCf", - "balance": "2000000.000000000", - "delegate": "B62qm8Ve3G9iezu4kZh5fyVLvNCF47ikiLkzkrXzibjeHKzTqErDgCf", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qoUVyMK7LNy2uJCvF6gJHg6nwfPhNVChdCSBzf7ZMwf9wMUNEwBo", - "balance": "2000000.000000000", - "delegate": "B62qoUVyMK7LNy2uJCvF6gJHg6nwfPhNVChdCSBzf7ZMwf9wMUNEwBo", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmNTJK284GCbYQZrtqDhjMfK5X55QUU2zP6nRfq3eGwSttSXFUsf", - "balance": "2000000.000000000", - "delegate": "B62qmNTJK284GCbYQZrtqDhjMfK5X55QUU2zP6nRfq3eGwSttSXFUsf", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qm64p2uQDpxrN9jDCMGGeRA2SQDv7HX7ckzkg89ANcRHtuDmkiXj", - "balance": "2000000.000000000", - "delegate": "B62qm64p2uQDpxrN9jDCMGGeRA2SQDv7HX7ckzkg89ANcRHtuDmkiXj", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qigUuWx6VKDzUDKNwKaSBdSiAwkomdxGsXuKUT2feipjKnpPkJdK", - "balance": "2000000.000000000", - "delegate": "B62qigUuWx6VKDzUDKNwKaSBdSiAwkomdxGsXuKUT2feipjKnpPkJdK", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjRZuBDSGfgmsYiLexR2EiNFJadY6yTMRhiremq2EZs6iSej67gm", - "balance": "2000000.000000000", - "delegate": "B62qjRZuBDSGfgmsYiLexR2EiNFJadY6yTMRhiremq2EZs6iSej67gm", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjobgFaeoSt6kjB2XeBRcEkFHepXpSffWpYuGBQdDuDMvPfRppkA", - "balance": "2000000.000000000", - "delegate": "B62qjobgFaeoSt6kjB2XeBRcEkFHepXpSffWpYuGBQdDuDMvPfRppkA", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpS9pWN7F8i27XGhZDVugnLL1LZiEdbdvDbUNSLh8toCHiREE44R", - "balance": "2000000.000000000", - "delegate": "B62qpS9pWN7F8i27XGhZDVugnLL1LZiEdbdvDbUNSLh8toCHiREE44R", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnNjzScBuJNA78nZ2CSihG7Z4dNPdj66NpJW38fNSRmSTPHk1WCC", - "balance": "2000000.000000000", - "delegate": "B62qnNjzScBuJNA78nZ2CSihG7Z4dNPdj66NpJW38fNSRmSTPHk1WCC", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qoMidb2MKe9m84JXAp9YG67AkutGFeRRajKk5UzPmT4rATK8UszZ", - "balance": "2000000.000000000", - "delegate": "B62qoMidb2MKe9m84JXAp9YG67AkutGFeRRajKk5UzPmT4rATK8UszZ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qiUt6Wf9JTtVUpiHtzcobznPr7dj7V3LZxcP3mn2T1xqNprsQFbb", - "balance": "2000000.000000000", - "delegate": "B62qiUt6Wf9JTtVUpiHtzcobznPr7dj7V3LZxcP3mn2T1xqNprsQFbb", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkUEEgbPPL2BMvpe9YzrmyJLz8GBg19ybxnTD5PxNarZR2cBMbUH", - "balance": "2000000.000000000", - "delegate": "B62qkUEEgbPPL2BMvpe9YzrmyJLz8GBg19ybxnTD5PxNarZR2cBMbUH", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnrUMXfKbrFUtPRdCy7QMuKz3z29eci71v7NPZdwVqxWu2s7KnZv", - "balance": "2000000.000000000", - "delegate": "B62qnrUMXfKbrFUtPRdCy7QMuKz3z29eci71v7NPZdwVqxWu2s7KnZv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpF6HSdAaAcE5JbWRvvaLtsb8SoDkTh4K9ZAdxuiajsGj8dKbj3g", - "balance": "2000000.000000000", - "delegate": "B62qpF6HSdAaAcE5JbWRvvaLtsb8SoDkTh4K9ZAdxuiajsGj8dKbj3g", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qs1pf1JcuxwE5FxnV7E8zwFqKQ1QxsCs3KC8AuivufVZvao1fZ9Z", - "balance": "2000000.000000000", - "delegate": "B62qs1pf1JcuxwE5FxnV7E8zwFqKQ1QxsCs3KC8AuivufVZvao1fZ9Z", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qksgiBzDjAZXV9Ns6un8SRHCtHjNnJUkfQyR921CPRJ9prQZphzt", - "balance": "2000000.000000000", - "delegate": "B62qksgiBzDjAZXV9Ns6un8SRHCtHjNnJUkfQyR921CPRJ9prQZphzt", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmPLWxSBoA5u9T6W4QnWP99odbaiNJ3mVGCNnTusXnYkAc7xfyxx", - "balance": "2000000.000000000", - "delegate": "B62qmPLWxSBoA5u9T6W4QnWP99odbaiNJ3mVGCNnTusXnYkAc7xfyxx", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrYFKGK59eTBKszgUwGr3fU8gboEU62f51tAXfxmhJMDBR6t56JG", - "balance": "2000000.000000000", - "delegate": "B62qrYFKGK59eTBKszgUwGr3fU8gboEU62f51tAXfxmhJMDBR6t56JG", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qntznWPJ5Fb6AJYJV2fRjYamVsmXWnBY2dYHoS6mvuZvMrmX4hLV", - "balance": "2000000.000000000", - "delegate": "B62qntznWPJ5Fb6AJYJV2fRjYamVsmXWnBY2dYHoS6mvuZvMrmX4hLV", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qme8N6aPMu2KaDBMx3V7JEah9DXhCU1Pg3xmoqkazA3cRGDYXWTa", - "balance": "2000000.000000000", - "delegate": "B62qme8N6aPMu2KaDBMx3V7JEah9DXhCU1Pg3xmoqkazA3cRGDYXWTa", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkDTmctReQcwREWdbG75KUr22ScnPUgPfDB3jhjzcGmtiXijNn9i", - "balance": "2000000.000000000", - "delegate": "B62qkDTmctReQcwREWdbG75KUr22ScnPUgPfDB3jhjzcGmtiXijNn9i", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqqRh4hVLexsZasXnD2V64q15HG73CFw5GKjpRdnvKCj1RBSJ7ED", - "balance": "2000000.000000000", - "delegate": "B62qqqRh4hVLexsZasXnD2V64q15HG73CFw5GKjpRdnvKCj1RBSJ7ED", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qroSY7qUgTh6t4viznXTiPQTLp3zAmh72CHRDfE9xnPnXVPTgM8Q", - "balance": "2000000.000000000", - "delegate": "B62qroSY7qUgTh6t4viznXTiPQTLp3zAmh72CHRDfE9xnPnXVPTgM8Q", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqi3fT56FhXoA5B7oQaVoE4CUK9LUF175R9DGqXc4UZhcp9DAFGv", - "balance": "2000000.000000000", - "delegate": "B62qqi3fT56FhXoA5B7oQaVoE4CUK9LUF175R9DGqXc4UZhcp9DAFGv", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqVBDECazgEfYMiUZ3HYJXKt8Vskruvg1aUG9rr2Vyw1vmZRTSCH", - "balance": "2000000.000000000", - "delegate": "B62qqVBDECazgEfYMiUZ3HYJXKt8Vskruvg1aUG9rr2Vyw1vmZRTSCH", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqTQBCQLMnaTAYeh37KVvgVotdVhvs71HtCyjT3yyVNNjmNKG1pE", - "balance": "2000000.000000000", - "delegate": "B62qqTQBCQLMnaTAYeh37KVvgVotdVhvs71HtCyjT3yyVNNjmNKG1pE", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqCpunVmn2LRCrBuKVmEDRotZmbu3TvhJLDe4BpfjdZAhG8Qewuu", - "balance": "2000000.000000000", - "delegate": "B62qqCpunVmn2LRCrBuKVmEDRotZmbu3TvhJLDe4BpfjdZAhG8Qewuu", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkDYBGgknfSPb6J1vV3caNzs5s32m4Wc1EyrsavqMKPnbDd4NXtm", - "balance": "2000000.000000000", - "delegate": "B62qkDYBGgknfSPb6J1vV3caNzs5s32m4Wc1EyrsavqMKPnbDd4NXtm", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qq1KGSuJxA8oQukVaf9YL6FWofna6KMTMUYvvdoFcsy6wnkTVUBM", - "balance": "2000000.000000000", - "delegate": "B62qq1KGSuJxA8oQukVaf9YL6FWofna6KMTMUYvvdoFcsy6wnkTVUBM", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmRVJPtkkkhoDduoAzUgM9kaJX5MstSoUVgBDvrJ6miZH7mrMw6a", - "balance": "2000000.000000000", - "delegate": "B62qmRVJPtkkkhoDduoAzUgM9kaJX5MstSoUVgBDvrJ6miZH7mrMw6a", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qm8Ltd4TJmEmcfYWXUbwTndFFcLs5JKFDZSXjz49XSYhb5RdA39N", - "balance": "2000000.000000000", - "delegate": "B62qm8Ltd4TJmEmcfYWXUbwTndFFcLs5JKFDZSXjz49XSYhb5RdA39N", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpeRTiyEMtLodahabxNwGtqPTLW2pTmWtNxoPiD2s67PkjPq8KqS", - "balance": "2000000.000000000", - "delegate": "B62qpeRTiyEMtLodahabxNwGtqPTLW2pTmWtNxoPiD2s67PkjPq8KqS", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjn1Sa5owEJYtSGuwgf8nDmV3ouVbbtPxSE8c5cJZ9UQB72PPFof", - "balance": "2000000.000000000", - "delegate": "B62qjn1Sa5owEJYtSGuwgf8nDmV3ouVbbtPxSE8c5cJZ9UQB72PPFof", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpXwVudeN9tfPdeT4p3uptA8rrY366PjnG3LL6xv2FNGez3oRovY", - "balance": "2000000.000000000", - "delegate": "B62qpXwVudeN9tfPdeT4p3uptA8rrY366PjnG3LL6xv2FNGez3oRovY", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqqczQ4kvdt4DdPPLFXUzgDgmph4FUXbtih8kkVZpFQFjm3Ambkb", - "balance": "2000000.000000000", - "delegate": "B62qqqczQ4kvdt4DdPPLFXUzgDgmph4FUXbtih8kkVZpFQFjm3Ambkb", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnK2o72cvwC1waxW3tQptC6fGhh2dN1S2EtL7DEd5Mqi3QrC2LV1", - "balance": "2000000.000000000", - "delegate": "B62qnK2o72cvwC1waxW3tQptC6fGhh2dN1S2EtL7DEd5Mqi3QrC2LV1", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkwEruD1WKcPDgsTG9SWcP9j4ZK9tVp6X5vqVkKFEWVP8bcsDoLs", - "balance": "2000000.000000000", - "delegate": "B62qkwEruD1WKcPDgsTG9SWcP9j4ZK9tVp6X5vqVkKFEWVP8bcsDoLs", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkYdo9fKU64jmqYfXeE3Hcum6zgUV9kw5DCBUSosyD5LduBWHQdQ", - "balance": "2000000.000000000", - "delegate": "B62qkYdo9fKU64jmqYfXeE3Hcum6zgUV9kw5DCBUSosyD5LduBWHQdQ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqXvDsktW415s9gPH2LQ5rq7w5gC6He4V6EoAx5zbhjqv7xqDtjZ", - "balance": "2000000.000000000", - "delegate": "B62qqXvDsktW415s9gPH2LQ5rq7w5gC6He4V6EoAx5zbhjqv7xqDtjZ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnhykoEqykZ3hxMfbtJ5DqW9EWUShAJc1bVQGNyqnYgXwiv2g3yT", - "balance": "2000000.000000000", - "delegate": "B62qnhykoEqykZ3hxMfbtJ5DqW9EWUShAJc1bVQGNyqnYgXwiv2g3yT", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqpiW6tSpG63HRFd3vaJrwo51xXM8rmX2z6WRZnx9FPdjrx6XW7y", - "balance": "2000000.000000000", - "delegate": "B62qqpiW6tSpG63HRFd3vaJrwo51xXM8rmX2z6WRZnx9FPdjrx6XW7y", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qozXoKnd2t2v1fKNM4WLw6TLQWqMiSzug6mCfdr3gdM4hYqnohVi", - "balance": "2000000.000000000", - "delegate": "B62qozXoKnd2t2v1fKNM4WLw6TLQWqMiSzug6mCfdr3gdM4hYqnohVi", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrLvwRKnzFwEKJV8BtVophnQ92zicNjd2aUvRrdwEGdF8TGFH7Tq", - "balance": "2000000.000000000", - "delegate": "B62qrLvwRKnzFwEKJV8BtVophnQ92zicNjd2aUvRrdwEGdF8TGFH7Tq", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmfcSgy7FWPn27HzDRgT1ERAbVvkd6uQ3wbGqsuKrVx21QfisrNG", - "balance": "2000000.000000000", - "delegate": "B62qmfcSgy7FWPn27HzDRgT1ERAbVvkd6uQ3wbGqsuKrVx21QfisrNG", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qr7dwAzNDcAuya8864XxxbfkDK6Fqoo3Bv6cvwZKmYR5vEkb2VCg", - "balance": "2000000.000000000", - "delegate": "B62qr7dwAzNDcAuya8864XxxbfkDK6Fqoo3Bv6cvwZKmYR5vEkb2VCg", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmN1aRy1hLzYasRhgENMxTG3nU5JBH7HQoWKJBTW4dw2NG1WK9XQ", - "balance": "2000000.000000000", - "delegate": "B62qmN1aRy1hLzYasRhgENMxTG3nU5JBH7HQoWKJBTW4dw2NG1WK9XQ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qk6xcKUb4D7mW3Zk8HZUFpn31TdKh2b7nk5tGELsCTzkB6MAPvZc", - "balance": "2000000.000000000", - "delegate": "B62qk6xcKUb4D7mW3Zk8HZUFpn31TdKh2b7nk5tGELsCTzkB6MAPvZc", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkdUDfRH1AFA3qEPBeX1Qg9TGyRv4GQvvBN74nRAMz5D6R6S8P8H", - "balance": "2000000.000000000", - "delegate": "B62qkdUDfRH1AFA3qEPBeX1Qg9TGyRv4GQvvBN74nRAMz5D6R6S8P8H", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjDjPXNUfNyZ7E2H55NM97mTzcWSAnaQWZou5EE3oNGGugEKhSgs", - "balance": "2000000.000000000", - "delegate": "B62qjDjPXNUfNyZ7E2H55NM97mTzcWSAnaQWZou5EE3oNGGugEKhSgs", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qntZRjj97WZwpphUvbkC3pByFeP7TcR1jxWgvzmKym2XXqedUzxY", - "balance": "2000000.000000000", - "delegate": "B62qntZRjj97WZwpphUvbkC3pByFeP7TcR1jxWgvzmKym2XXqedUzxY", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpicHcwfgyk2m7UZ4wW539Cz6e4FjmuRp4QiZRiWXbNgaSfKh19i", - "balance": "2000000.000000000", - "delegate": "B62qpicHcwfgyk2m7UZ4wW539Cz6e4FjmuRp4QiZRiWXbNgaSfKh19i", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qneX4qgjufqhBuDi9uWhJs5gm5h1qw131XrKw6pUUGC1cV4GeQSX", - "balance": "2000000.000000000", - "delegate": "B62qneX4qgjufqhBuDi9uWhJs5gm5h1qw131XrKw6pUUGC1cV4GeQSX", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qigG6oKr5E478cv9pnF2E2VQp6QWL4a2wjhHVEEKX4NiRiNbrmMz", - "balance": "2000000.000000000", - "delegate": "B62qigG6oKr5E478cv9pnF2E2VQp6QWL4a2wjhHVEEKX4NiRiNbrmMz", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnZZLwuw3AHptMHvGx16c1ymeivZ1KtMU1GTN5mmtbPK29vsYBnt", - "balance": "2000000.000000000", - "delegate": "B62qnZZLwuw3AHptMHvGx16c1ymeivZ1KtMU1GTN5mmtbPK29vsYBnt", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkBRuJFFEBV9KFRzspcCZmxM13iQeR7j8jNEqaZc9PNXdYYkoHnQ", - "balance": "2000000.000000000", - "delegate": "B62qkBRuJFFEBV9KFRzspcCZmxM13iQeR7j8jNEqaZc9PNXdYYkoHnQ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqYyeuvKgsFNw28Hz1Me6D8TFfkbk14MHrA2Am7692uum8ekBJsH", - "balance": "2000000.000000000", - "delegate": "B62qqYyeuvKgsFNw28Hz1Me6D8TFfkbk14MHrA2Am7692uum8ekBJsH", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjCbdr7SetzMzcXXF6r8SEhTAKngUpXzmxherEfvGvXH4TuR8wdQ", - "balance": "2000000.000000000", - "delegate": "B62qjCbdr7SetzMzcXXF6r8SEhTAKngUpXzmxherEfvGvXH4TuR8wdQ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpVVaxjMqvUZzVcy65V7iMCdDFo32JJ8MkeJNB1ZFNPxTzuWDqY3", - "balance": "2000000.000000000", - "delegate": "B62qpVVaxjMqvUZzVcy65V7iMCdDFo32JJ8MkeJNB1ZFNPxTzuWDqY3", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkdXQMimpE5iNhUvLrvsvwuqMSS7awBZk3AWZ3BJPi6XTDp7DRiE", - "balance": "2000000.000000000", - "delegate": "B62qkdXQMimpE5iNhUvLrvsvwuqMSS7awBZk3AWZ3BJPi6XTDp7DRiE", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkkb7bTSU89ArjDqQSUFN4exbppMLhZdSLkhipuk2MLjXE7xDo7H", - "balance": "2000000.000000000", - "delegate": "B62qkkb7bTSU89ArjDqQSUFN4exbppMLhZdSLkhipuk2MLjXE7xDo7H", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqnheuZNeSgy75dvuvrr7KUWTEYwtQgyr6x61v7QNNUyVwuarAFU", - "balance": "2000000.000000000", - "delegate": "B62qqnheuZNeSgy75dvuvrr7KUWTEYwtQgyr6x61v7QNNUyVwuarAFU", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjxMvVeRCVriY3nuU5Tzu7PMdfgwjcQrPj15Tsemg1pNzALTH9U4", - "balance": "2000000.000000000", - "delegate": "B62qjxMvVeRCVriY3nuU5Tzu7PMdfgwjcQrPj15Tsemg1pNzALTH9U4", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkuEKF9kHg2ArEkQAdj86PEHrSHCv5VUsQwvNQhRCreqJezYEH4F", - "balance": "2000000.000000000", - "delegate": "B62qkuEKF9kHg2ArEkQAdj86PEHrSHCv5VUsQwvNQhRCreqJezYEH4F", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnRnTET2qMuYn2YnPisNqJKg1AmxYMbhW4qR9xCvQMm4T5PwFtFP", - "balance": "2000000.000000000", - "delegate": "B62qnRnTET2qMuYn2YnPisNqJKg1AmxYMbhW4qR9xCvQMm4T5PwFtFP", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqmJT6fWVfnxs7Zyg4V6HjQpbWXh9pfYum9CB6efZf9nbQkJvTA8", - "balance": "2000000.000000000", - "delegate": "B62qqmJT6fWVfnxs7Zyg4V6HjQpbWXh9pfYum9CB6efZf9nbQkJvTA8", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qinUEkj53hXbi5CaQG8N5ap9uPE3F1SZHHbKCaXce6gEmvJobzSM", - "balance": "2000000.000000000", - "delegate": "B62qinUEkj53hXbi5CaQG8N5ap9uPE3F1SZHHbKCaXce6gEmvJobzSM", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrpw13jAYVs4CWxSxNS9m8ocQAuJTm5Zi8H3ACc57NK24zWjU8Ao", - "balance": "2000000.000000000", - "delegate": "B62qrpw13jAYVs4CWxSxNS9m8ocQAuJTm5Zi8H3ACc57NK24zWjU8Ao", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrGL8rngy8RMrd6iHjnuxKUHbZiLAqrPZRr8qjNTuxcdKZvkWnwd", - "balance": "2000000.000000000", - "delegate": "B62qrGL8rngy8RMrd6iHjnuxKUHbZiLAqrPZRr8qjNTuxcdKZvkWnwd", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpdPtz7QSTcPLkDuSdGGv6VkdhG5Gy2NLFBLfkyfR6K3KSfviW4Y", - "balance": "2000000.000000000", - "delegate": "B62qpdPtz7QSTcPLkDuSdGGv6VkdhG5Gy2NLFBLfkyfR6K3KSfviW4Y", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpD75xH5R19wxZG2uz8whNsHPTioVoYcPV3zfjjSbzTmaHQHKKEV", - "balance": "2000000.000000000", - "delegate": "B62qpD75xH5R19wxZG2uz8whNsHPTioVoYcPV3zfjjSbzTmaHQHKKEV", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjnuiYd2H7DY7cwLKFgvcgVYmpvnwZbUMxVmtr5BAVUs3L6zg7vs", - "balance": "2000000.000000000", - "delegate": "B62qjnuiYd2H7DY7cwLKFgvcgVYmpvnwZbUMxVmtr5BAVUs3L6zg7vs", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnAMiResSfA5MFLU2EGZRGJmx9ZuuCRcETDzAuLWb6Uph5hQvY61", - "balance": "2000000.000000000", - "delegate": "B62qnAMiResSfA5MFLU2EGZRGJmx9ZuuCRcETDzAuLWb6Uph5hQvY61", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qqcPoYG14RtSwthLStPDjpG8wpuLLjHQDe5ECtR8dt4NGfmXNe7Z", - "balance": "2000000.000000000", - "delegate": "B62qqcPoYG14RtSwthLStPDjpG8wpuLLjHQDe5ECtR8dt4NGfmXNe7Z", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjShSSxMbCcFHqmhSE2vFJ1yi5Gsm1XPPCUJH2VfXukhL1q6viqa", - "balance": "2000000.000000000", - "delegate": "B62qjShSSxMbCcFHqmhSE2vFJ1yi5Gsm1XPPCUJH2VfXukhL1q6viqa", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qju2Y4ReCpyqUHdxdT8pZcxfifozMF7bdenVbWy5MDtcSystrmrQ", - "balance": "2000000.000000000", - "delegate": "B62qju2Y4ReCpyqUHdxdT8pZcxfifozMF7bdenVbWy5MDtcSystrmrQ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpcWVQD3YmYtnHAx1dJKkBwybEF5y4mWpfYySPyAY88a1dcLTWJq", - "balance": "2000000.000000000", - "delegate": "B62qpcWVQD3YmYtnHAx1dJKkBwybEF5y4mWpfYySPyAY88a1dcLTWJq", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qoPG59AWKYQLR6siNMd2tbPRBteTddXGupKg6ir5GNAaF8simQ8h", - "balance": "2000000.000000000", - "delegate": "B62qoPG59AWKYQLR6siNMd2tbPRBteTddXGupKg6ir5GNAaF8simQ8h", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qp8MUjRMdMEQhtq1nA5Gb7VcyGehimxbD9G5wiVRit2wMUjzdeEw", - "balance": "2000000.000000000", - "delegate": "B62qp8MUjRMdMEQhtq1nA5Gb7VcyGehimxbD9G5wiVRit2wMUjzdeEw", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnTUuHC33mNHTeynhkNu46crUV41jPmSwSHaWZZs1WGeRyHCwE9i", - "balance": "2000000.000000000", - "delegate": "B62qnTUuHC33mNHTeynhkNu46crUV41jPmSwSHaWZZs1WGeRyHCwE9i", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkWXk6CSa3Q9TrBJ9PUeMPqGfTCzsWW3zW474GbEM1N8YuoZtCt8", - "balance": "2000000.000000000", - "delegate": "B62qkWXk6CSa3Q9TrBJ9PUeMPqGfTCzsWW3zW474GbEM1N8YuoZtCt8", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qijByCnuMxVYU6mxyBvfm5wVa7rBaJo43wVKZbkaXaUdsUt4Tkgk", - "balance": "2000000.000000000", - "delegate": "B62qijByCnuMxVYU6mxyBvfm5wVa7rBaJo43wVKZbkaXaUdsUt4Tkgk", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qpQ71GnE4xk79U56jmmVzPhiKB6XAgRU69THHrDoif4ARGMPrucZ", - "balance": "2000000.000000000", - "delegate": "B62qpQ71GnE4xk79U56jmmVzPhiKB6XAgRU69THHrDoif4ARGMPrucZ", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qnKm9Q38bkkyoPN18ewXTZQvcQgS21XBZL2Z8NUfmmzt3s6SAEFU", - "balance": "2000000.000000000", - "delegate": "B62qnKm9Q38bkkyoPN18ewXTZQvcQgS21XBZL2Z8NUfmmzt3s6SAEFU", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmVACE9SHeNims6g4pWjC5FCPh68SpZR5kdJ2Wb5sX84epHiUeM2", - "balance": "2000000.000000000", - "delegate": "B62qmVACE9SHeNims6g4pWjC5FCPh68SpZR5kdJ2Wb5sX84epHiUeM2", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qkkjxhmBpSbrXTMr8tDbcUSy2rHVpHvMrcmtgeraHPQM4KqPMzpK", - "balance": "2000000.000000000", - "delegate": "B62qkkjxhmBpSbrXTMr8tDbcUSy2rHVpHvMrcmtgeraHPQM4KqPMzpK", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qoRgYmJ9XtbX2VAUu4nDNmtKoDrw8MHSGXYwnVV8JFhw5BHgmMYR", - "balance": "2000000.000000000", - "delegate": "B62qoRgYmJ9XtbX2VAUu4nDNmtKoDrw8MHSGXYwnVV8JFhw5BHgmMYR", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qn2UKzzJE2hRDdNz5ycKSochaH6tCrresbHbLUpPrHBVWKoeXRWP", - "balance": "2000000.000000000", - "delegate": "B62qn2UKzzJE2hRDdNz5ycKSochaH6tCrresbHbLUpPrHBVWKoeXRWP", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmZQgGRgiALi79RxRrNk7VrucUJoiqNrSmpFVdVEg1DicgjM9MNh", - "balance": "2000000.000000000", - "delegate": "B62qmZQgGRgiALi79RxRrNk7VrucUJoiqNrSmpFVdVEg1DicgjM9MNh", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qo5CjRzbqupyriSQgQqPANjZwxzZKzjkdf5cqGKDWbdsNfx5Xuw5", - "balance": "2000000.000000000", - "delegate": "B62qo5CjRzbqupyriSQgQqPANjZwxzZKzjkdf5cqGKDWbdsNfx5Xuw5", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qiqP9tB8uut1xMjKNH7EYEFViZoTJ8Lf34Z8YJPYvdHjE3JZwaaa", - "balance": "2000000.000000000", - "delegate": "B62qiqP9tB8uut1xMjKNH7EYEFViZoTJ8Lf34Z8YJPYvdHjE3JZwaaa", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qs1invvKpB68RRUcDYSEXyuuhPrdwRocExkhMNZcMi4wediCswrN", - "balance": "2000000.000000000", - "delegate": "B62qs1invvKpB68RRUcDYSEXyuuhPrdwRocExkhMNZcMi4wediCswrN", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qj5dnxafRpeSscUcygj13Q9EiKPj5B5rV3KorR6KoV5VcNfxvULH", - "balance": "2000000.000000000", - "delegate": "B62qj5dnxafRpeSscUcygj13Q9EiKPj5B5rV3KorR6KoV5VcNfxvULH", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qiUe9CRCttdBsQzWpKqCZiiAMD85EebgLYKjwXAN5jhWPMuzUEPM", - "balance": "2000000.000000000", - "delegate": "B62qiUe9CRCttdBsQzWpKqCZiiAMD85EebgLYKjwXAN5jhWPMuzUEPM", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qobjtGGkU5jh6p8fEMxeLCzj9EMQx4WnaQ5HVdA43w5TBL6Ghb9a", - "balance": "2000000.000000000", - "delegate": "B62qobjtGGkU5jh6p8fEMxeLCzj9EMQx4WnaQ5HVdA43w5TBL6Ghb9a", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qjAv5XhWK315NP4uav1TFcTSfaNUymNJsMAeySWHTzmNaPTqT46A", - "balance": "2000000.000000000", - "delegate": "B62qjAv5XhWK315NP4uav1TFcTSfaNUymNJsMAeySWHTzmNaPTqT46A", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qmCMRUqWm7t2mz3omtPV6HjiCbtbvktMqLyNMWy8H2CrLcnfkm3H", - "balance": "2000000.000000000", - "delegate": "B62qmCMRUqWm7t2mz3omtPV6HjiCbtbvktMqLyNMWy8H2CrLcnfkm3H", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qrdBP6fwq3siFexMittg3C6n5iXJArysBsuYXbugmnm4N89nkLdc", - "balance": "2000000.000000000", - "delegate": "B62qrdBP6fwq3siFexMittg3C6n5iXJArysBsuYXbugmnm4N89nkLdc", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qoSguyyq4HZxUvZ11XpYCdDUNj2kamPYxsB8htC6dmuRGoMT3xoe", - "balance": "2000000.000000000", - "delegate": "B62qoSguyyq4HZxUvZ11XpYCdDUNj2kamPYxsB8htC6dmuRGoMT3xoe", - "sk": null, - "timing": { - "initial_minimum_balance": "1000000", - "cliff_time": ["Since_genesis", "12000"], - "cliff_amount": "500000", - "vesting_period": ["Global_slot_span", "6"], - "vesting_increment": "150" - } - }, - { - "pk": "B62qp3B9VW1ir5qL1MWRwr6ecjC2NZbGr8vysGeme9vXGcFXTMNXb2t", - "balance": "20000.000000000", - "delegate": "B62qp3B9VW1ir5qL1MWRwr6ecjC2NZbGr8vysGeme9vXGcFXTMNXb2t", - "sk": null - }, - { - "pk": "B62qnEdPB1V5YPEcGaETb19naLJV6sWdveCZEjSLhcVyrPcPWHkGGax", - "balance": "20000.000000000", - "delegate": "B62qnEdPB1V5YPEcGaETb19naLJV6sWdveCZEjSLhcVyrPcPWHkGGax", - "sk": null - }, - { - "pk": "B62qoRMsZkh2edqtjkgRQpERkhbz7RwbNC9fY9FxxsiP7MfxKbbKqPd", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqnRzFM6FdCjm24CFHF2VdWARSAWZsQ4TWmHmzX3sgEumbm9WawM", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjyX6H6qvKuNyusbT4cqptgKQ6PFqWnZAhcMm9LbsHXBb5cK8ws1", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrnEo18rxAqCkDQvMbaz76pC7ELiHeRv7XEZKSBj7SxaRHcyqsFr", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpzt1X8iPNTvv1P81qyJAVjNo2eibZA6Wr3RJEHrhWPstiivrfS7", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmeQQ4RWxu8GfRHCYsesqpVTgvWZ4JZhBw6hyi2brStayZGjy4jt", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qiexZDUnGLyt548xUsEG6M75L2ZFJMRikBHk3WuoZrJcfZTx9ZKH", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qiqfj2qFwducJZwwbeHnJFZqyzcdkSdnqQs3tJFEDjS3ayneWDB8", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkpu7UwKKbvjWbscTvmDGvta38FprV8hL1JvGnhJMURvDrp4L8Dp", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjTLRGqNjnoEvjqfQC35qEk62Gri87czvz64JwHogEuuv4UGUrqo", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjKVANr78Ne8xE5FJbfjfJiyBPvDN3YiM7wAWRd3x4P3qjevFz3o", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qisp9Nc2YEQVzSnXn6SDhQD2oD39SBL4dGvRyygEtHMEdRyMf9kU", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qp2wt8PohR7YxkZt9UwF7sehzR15oaJHpsECh5ZZZ9td2QUdvCrS", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qq5Z9PWbZqzBLLfYkLQjTmXY5YBavUV74yn5HqTVGxPVWe46Ajp9", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrYpRLhwZU8u8Aq44i2z3RbEubyt2MZoe8YzZLBd5tQ7As5aMN7T", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qiXLrSM913txMiKjuzGGDzGLL2vusAkJ5Lo8bfW4YeDrRv7XjpKQ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrJzwHASFz4P38jFzmaL1moZbnnfDEA4LRkiSeYMGYhF9YsVxxqH", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qktiKLMGhSnfAimCgwBQx2FKDSGW95PsVi5dHR4cQsFUgihvUgGe", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjMPBGXfpHtiG762nHFxx975HmB7e4herNhLE95BhW3wphnFGvfA", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmLEh38p2kiuosfuavMZb96yV6MwR48P73M4U7ZqjQ8j6cYjXeQo", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpQptrdySNU6bry9E2DDsYWEZLyTyb835KeQLM4sdbt5AUuyZgg7", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjN6rNHHrP389w5ANkDoSUZkZmdt9JZcg58GwfgmbUUZc8XRphjd", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmFbHY6hFNDFgDfgxzsPHRivU6nYDVDwgsk1SuPasFu7fzBiGYcU", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjmS1in6HkhhuaYj3uvnJDrfkHA5W6JZuUnWwWfodQKhnUvAbnVt", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmeYC4SWkzToWGrUNDTFz7DE4dw62YZoP5aCgGB9LnxH3DU7ugSd", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qppcweoeUfKAUQhosE9eRxSkPuXSLrxdZ8JZB2G6yPQeS25YUncz", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnn5P5nAp9sMF3XMiRXqoR47nJ45SdZCpFSLCLo2v3fQbTywiSVx", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrGQvHWz5cWo3GkSLqo4tbCaWD9MahsUnnRi3P492EmBfh8N9scn", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjG22qRCF9NvcCMSEYzptVtqXrV7VWG5o4omfKw9WzyTPHwzeiMZ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjEyUVCnTd77ogKbzGvFBGWe8TeE6u93pUZDuLKHiTef1prgv344", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjUSPFGYHW6yChuE8T5ZkNUedBz4GkE13AbgrSCfia69FcNgykWK", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmSfPLEkm8z1CWLhTfiNnHLu4kdi6Ky3AoUcRtDo6g8bGysuhbby", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkBYNgcdLRf4FvtLfc3hRnc9cViin3JJoRJeZmqQ3KuzE9UaFcsi", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qm5ciiUykm7UnHg26MCdKTZjWT2Brw5cwRmpv9TjJrLGB16rugiy", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjGQmeTmJvAvQZYGPPktaBrY2DzHzjj1tLbTrfY4AvdrL5WwWthz", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnCgJWK1T9oVyyZJ89qUEe93titFvV4n3Yd5dZM7hHzwV6gUdvNR", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkyWZCSX4x2d6YMZGhBxTJpY8FtLUSvcnqrQM5nxWXuBSAusvBAe", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnvR16Dq5txCp9ibgZA2FgaA5nDxhDY3s5Z75qKf1YyFLrxVCka6", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmTD6vp6qDbNtXXkoG3MM5QN8aDTe4JcgZqQikssgxfyFr6n9L48", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpbGapj5rA87Z5DWLfkWAMzPZenPVpfFUWm4ZXK2A1MjXy9Az61v", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrNgEezQKDuiFcbZVA4FKtpfPYcPVfxYNwXkRfUjZCkuMhWkDRmC", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqF3wEuV2NAQd3erGbfAjPb9jpUweJP5V3NECJXfBk33gB61Lr2e", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnR3frnzQndd6xx6FuGRSVrD1BwxHyUV5MvcBL9BmuUB5CtUcXgB", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qopVhBjNtzrv9nPjnWpmk3bWCnsGZpY4Q69AoDBS62ThT6yo3Szx", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnHS1G96t46WvyRDDx23MCF7mTioV9GxnUfBRMxWtzdywT47ptTP", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qixjsr8nMdLgLuGNuLEGCEaVGSTCMdC9nkMZAUUmdcHXG3ZJYFkx", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qn3gwwLQP2fpgQPHLC4EmVTJMLzRazWShMagvQc4StkUanWQqRm4", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnmxaP3TcqWXLdqjcvCk7g8Y56Lz1uw38HgLotmptE1X22qq3y3k", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qibAAbk8sD7GLNKpQfnbLHZNAgfqPPu2XubRse7oPT6kqfopv4nU", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qo6CCYM4DrrdnvTpMnwGjcg6ZH8BTAjZFfnPYpPgJuzFWfNihV6j", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkvQvkeAWk2fjvJJwwKgedFvczbqetRaxZjvB2r35wLtfvZZ4s1X", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qiYPcRuN1PP9GpfwzuXoFMGCUUBxGw7oV1DbZyz7mK5b5FjdYptQ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjgbSaQ1MCnxFXtMSLtHho1GnPshCHzZDWcAkuZutwajtvCJvcbL", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkjJuuFvrTJrPgCeTWBB6kaiqshQuFA7smAJ6neBVqia74v3W6NH", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqH9bKf5wR5iXpkPCeaSGbr9EKzJ8QCZ7aYVssVYPaf12VFCn4pz", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmud4hRZYJUqt9SgjKoaJQiY3sLPSWpKo9joMVzA9inKXssXJd5N", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qp51QzzoSvcPGrE28vwh8MVEqRN3Smh8SR3ztU2isMY8uPdddJJe", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qn3k1d7FrZdijR1X8RwsmpDyCr69UDDXYf7mvVCJ913VbfeWW5Kr", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkk2xNoLnjv7PpFjMXux2jXgeA7W5qdP9PWp458oqJ91BPQg4fyy", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjeACqaZbNaXuruL7kb9ctMfz7QoWb4bQe3byVibHKDGWygHUBsB", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrppUY6g8GST12b5XQjFDgCJqnqe2rrzTkCYEf3aV7i6vri5DpyB", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpjcMmZc74GUyfxNSmkpQtyCVAopU5jRfwZhYYeqDmaafYzgQH7V", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkZnYqZxceDCyjC7MtMnFuW4BA2BWJzSbmGLnmJQPdtER9Nbqxtn", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qivTtHToA6VU1F4ZPuWE9vP2XKRwZk3DV7wfwvEmBRQKeUkEtyHv", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpV6sRjGJJ5dMinHvKzh9nWDkBGPYG96YapBPCKPtVMq2bhxtcp2", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qk7PfMmwVAQvmbkQfijQpmXc3DqfpvErtpRirwkzZTVN1gh7gwGM", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnvbeav3dq9EfGq1DszMvAToAJn8WDeFRVRC5XgReADNT8sp67UH", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkQ6RYFBPVb8hrj3uh4ommmwytL2q778DVNbLvzfjfH8ASsUgyJk", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqZz1M814JdHS4QTAQg7qxhZRbeF1EmPszMyQ174fpPQCFXp5ET2", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmEcjKpCSp2Ac4sCoB7Meo5JXHeeu6rmoTNAwoLRPiFBCn3hxMPD", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkxejURG8W8YagfyxCRbBFeVmqeTF76dQEwLicV218sdhkE6tMge", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmGjmWSWFArjtVGNXhtC7gmNVzjv2wuZQXArCcuapfzzm5jEChvH", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmANT5mxveSkG6Yis1NqoKWEzMM4wA3tmdnaBu7LihV7oRHLfZ3t", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqdXGA85AAN4wvGcPCe6fmkYXcHzJWaEi7XtbtqPoJk9JG3v6yZT", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qit6j6poA8rRR4BSSSYdTwph3PBMzV9ZwrDbPNiZSPz2XvFv1daK", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnKQEFTpa5Qj4GwDV4A1t34T6G4auWrRTBWgkGep2Svq77og5S7e", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnBaPDDZqW5R8Apk8W5cvmPsD3ZMQ8ZdW8QP66QdGNFS5TU83byQ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qj4XHRx3KB8hbfPSmKpQyTaNScjPNmy4V35My6vVm7Hb4nF2ouPp", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnfKpVx1G4tBFAHbKyFEFVNgSX5PGRAxDKuC9RYz9Ji6bFHoZ1HE", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmhgJ859t18hYsEsur5bhiefVJNgdZGj8oJSjk6HGA23bokrrtyG", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qn4UAqVH6HQkgzq4p3iHAHnR4K73eNNpzHqudia79v8FBaM3qXpd", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqyNsLuHaTbwWZAxy95FpiyvttTnjw1EMzKSGwxYbsYPjAGk6YTY", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpDemdWsVqV7KM6HDT49oFnTXX43ywc74X9mYeWdCyjLnjcvy39L", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoaNw7obcAhi7yNHDjCHWJkKU2jUeCSuJucf3w9tbjR5F7u8EJ3x", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrNkmQ5oTpXKNHZMdgD3wezN6XpBLWZUVX6EiNpJkU4tQcLco2Ya", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmSDTgbFyhBnKvzp4JuFMHYow6jbxoDvgzvPbhLkuEpZb8QeTTCN", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qp9WSgFD9118BPpTLQH4L6coxxN8yaXaaq2kXk1dz1aCG68gC9aG", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrFjM1iw1CaeAdiiWDtKm2KvERKnDHQb852nxud3HvuixGw5PZDX", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqQPSC4GP85GWckC6Dw1GTf4tCrjxVh9Z87tLBb7bvYNFLW2wZx1", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qj4PCRomPgxosoAvXdCbdstyN3amfS3WJqnghEuagJBS3RWhRcB8", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmuUYafdYNxY5PtyAd5mRYeKeC4sxCDmMkE72LZotB7zjGxXMwAm", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmXP8mZCzJ2cYBxHCZLWPibgXjpdwy9rLRsx3va5UrFgkAXgk5EX", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjdhNwu8M97831JCFpM1R3L1Y2JQV3GrwHvw8s1B8R4KenFwrHtv", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnfjh9KefMftqzq2ucUkLoZ8i31nEe5cB3VM2rrUUn8VJWpHn6yN", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjP9rUTPb4qr3MmTrCLJBzCU3aexTE51HVJ6F4KF3jrUrfi88NWp", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qo341uDtXNozGpX4PkFJaGP3Axw1ibszXdaMq6sioqrRFpozGXed", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qiahpQqet8P87v2XFhmjKh2EKBjC63k4bZw15xc7jd3y6HJUkojq", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmGfmTL4M1EdoMaWSJfkSDUF6QGy9borD4uG2ikZ6t9szykzMPr2", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkDMzRdQH5NXkRaFtjZidWxusFceRHd7TsUaUHfC1RBAzYxAmxH9", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjgduJL3AEsqnViVv8V2fWKbtB6Jqc8eaRaHrWRvx72SjgT2eGBK", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qneSBroF1xjamgjhm5gdxmYK2rj5wfY1yUFpq1LCx9GTYMS51BJR", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoweLF7Yz5hAU1xZrr9TTg8Kb4MPi5QLdCGJq35mbwFTims92SLM", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjaxVmH3csoofxWoQSt1xXjdHhjceVccHkZs9ybvmdCBx6hQyoQC", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrwmr3Vqz8Udcd4WihHEj8iCkvrubdsZeWfVVmVc14fWb5ZVMq22", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qp7U8aE4mRzC3wiR6z97DmtKHViqk2wpdUyQcXYxqLggZ1EsydjM", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqUuvQcuDMTLzd9LcaUVZZWx9jW1K2RVUH51CXfKj1XxEfwnaFte", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qn2ckE89FAhcN3mmtRbE1KorS6x5r2TvEndip39RTPeRoGJNFPQU", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqb8nfnNVpKAvgzqaLwaehQqTtTYeqosyDdyfzhkX4WZwdrj9Lgr", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrkUz1vS9j5bXozP7rfBpRCqW4xw2sSBAAfUAQquu7Wb2JaP6B9G", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qquToxFBbLwSkDFr3wJfBBGZn9QvsprrGkyKoRFT2NSpcyyiBWkj", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qo6SUNMR2BaDGm4hFEkKy5u5WYH8VXZUKTKZMmAPahEbp27PFEs6", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqLTRdi3W2pqVjhUmHWbvipwJNkmmpHmSHooXtEhAYbgCTdMLUFa", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjCDB2Z2rjekfRoAs9AQSbUmznETCocDUxyMFCcVFY31oYG4y5g4", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqyXqW4CgWuuGXbkNELDF2UUcy1aV32CjmLXYaDGrQXZk9q62Gjp", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjrNF9xAHwKYThXX8JHLPVAUwa4E5XnsGZoZrpFKbq8nEEZLm4BK", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnMfmHTcq8h5sxgFJN8388Q2iEerePqcgD6wDGTEjocyEHEyAXaC", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoGaTKi2EoTykkjbQS2bq2m2U1QAbM7ysrAsz9hTRWaXzbTJjGx4", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpHMNV673dc615NwZsxE5RwBbAnx3ZY4PswirfzhuwKJ3Le4rHN2", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjgYLpD7WeWcaM9VZiFdvNz63rRNhQG5ygTUWuymPXDXvwqpH72o", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qosGZqMnawEMJngaKsGhnu7CgWUFfYC3ekmzwGyX13YiTDRpVG2b", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqPZtEFCDhimQfHnNByLCxpG8i2Hi72PbLAofkiqNTEB6XejKYnj", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qr5c4pRLsoGs2w38CnBJUK1D8JnCQSqugBuw5NToZbaB7AkhcHLz", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrbpMgLXmkrwXVZNd52FrmC2raEbbmdw3BaoS6Zbz6fXpMN1Ngxs", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qk72Mp3LQRQWPEszcxNVoDpyPMK3irdZvp4m1QngHkGwT5UnFSmR", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrFpu4sPaaWxdnKAnXTqT5GyBLttP3uLAvzEuMmdpkFJci6XPZeK", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjCxMdRSLiTz5apVwa21BTBtHREUVZMvhJyVf7UWQ3CQjwpoRYgs", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpAR5XpHKGbmozByyiNWBGJCLLAwWm57zdhZxbD34E7XeKV82efQ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qn9TWjaqxzu2fPKJwWEwAXWCmSD2fbzUiR4GBXPPmWoVgWsfwERt", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpYJmYKsJnAswRJcqbRy9MUA7asTVjKvBRREZApJuE8rDZr7cTe5", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpg5CcLs9Gwv8nwBEa8ADWSAk4bnxBB19UXzb5KFL7qxR7Vgsvoj", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqtDM7uZ4L9sJ2WiDEdziBZHY6kZBqUqsFxSh5P3bqt72ZSnuWfN", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjzbUxN93mu6scp7cHDeeXnzq2WHGZ62dm3tXmUapHAht1FN6GoL", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qr2EwYpxUabLDmofALHa8Sv69CwWN5nztdiEjpznVnp852RPnpux", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qj4nV3CeH8fZZnUiMLr4CYs84oXHyrx1jcF38SVLRmEAbTvX7mEF", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkgTJiwXz2362T7Ai318DSoV7SDaVYmSXpc3Q2XWULSuWjFUZnK7", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoZ6hcuJzi6BeTrxPNSbUpc8oNzARpBCWraRbWZesBgtqxDAcGC7", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjBuouDshLMmiceQUAhRmR6Bbnmh2NJpWkA6wQUGoB5vYgTitrq2", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjfW6G51XAFPo6ryZ9z4PiXkYCD5LZcWQMmqj2gnXMi2fEREmHff", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoDoz7xUyXBdLibFXtLxMFmcTY5fVMygb4BeC6xf173GwekTMver", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoVo3vNZJTw14eYfZJSaA8djqzK6cLR1yL2ixtwHTpsZ71WMZhQM", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qk55iTvRzp1J8hEApr9WWMMUUoiKTdTwAMa6uiBmZowzqrSFAKLY", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qij1oXFDc8CY9WsET5SiA8doCovAMbw89iLrW6Ds2X66MFNarck2", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrQtqQxsthFnPKfFcLLpKRnyZZiG9vVpmYSP6JuTPNkNo9qjzasC", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmqLTocW62zn8x54Q2GtF1rPi6VAKdn3b6zqWYE52zG53e8Ln2ZE", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrVcy8yAiQCWKLjs2fG3iV2uT4CwEkzgJpY8CWUspQTMvBHq9d83", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqd1npde6CvHhkEVpZCgmQwPmqKcBx2Ek4Hv16Krzz3xNtjhNst1", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qipSBXJtHPHMNregoFnP38gnEKmvGyDJCVTiqLN512wZfQY6TAuo", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjDoiTSk9euUrB497oqLwCi6aJirZ9hTz8Tg8JMdzVD3VQWT7aah", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmMDyzCyMjd9DBug1wWvnsdVupe37gb8kguz5tW6RU4b3han9wbK", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qiYWCPB1QtpiWtREKtbXB7VLgx81YF1FRh63UDhTYoyjCGn53Y5e", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmCaC7Veokygeixm6SLMh1sLCfWrAyq1fsAKagJV8QAt8smn2PMR", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qovjotLQ4tKzDq1v2im7yy57DM2VsUbeuS4LQLLQR7ZEFH1mWG15", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkypNXBYvX9egFiqpVfaAGBUNDx7zWj8ancXhQgCWJM6dmiN9Vja", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoAd9vCn2akQxBzJ7dCE4VAiS3zExann2rdgqAp3CKb4MYsz8eCx", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrvsrXWRUa8Qufjzyi9HhFshSgZPEkvzXCjGzGmrx8jv4Mroink5", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpkDkvh5GZKfCg4zriytHpyyAFu93LgMyAKBDrFna3JH4ViAUHx9", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qiaNomtk7tpNKMkUbHU87H9KJMowfF7y8mCJxyqAv3uNFmmp2WcT", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqYh7i6SbmkJ2WKPEfFvRsovJut1s1THDcfSBjpJrsdhp2FkEdqH", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qitG8LePn32i2RfVqmCLB73jWB4szpmSRCG4Amv53eQPU9eVspFA", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qp4m4EbSAcmrZhxR84aWan5bbKjMD4Rici2vs3wny9r7GfgccZKE", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkpUrNU7w2NBi3EwgQDVn2ccF84nMmHEs2Xj8T8vSty1WWDR35rR", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqBb5TcHSZtzQpKvgN43WuHrH496Yqru5oD1kgBsAhCUsykmxGsa", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpEMiPxttpURQUXUdyDE7w3hoFc1r2wB7iiBFZg49kdUmAUo7spt", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmKjbvtJPVHoDurKSG4dM887dFktzFHHw7F2iNbAZduqL5bm67oB", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkonKe1ivMNkH7Zk1qtp9xidsXT7vs5AWz46oHgNR6vs4BESsofK", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjGG2tP2HEeFFWycT2kWJNVuBLfuLSUXmLxT9iuu6PsivX83HxPK", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmSScDfy8xDcXMsWCr9cMCiieTChQwALCGPxJu7XeSghuMwcEsNh", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qiWazvSU97UsfcfGx9iHHbVP9he5LzcF9F2zcSBkZKrVtVkfAjN4", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoc2BzWbCNAHjwNQue569kZQ6cdVhkyXbJD3icLUkY6eU5wVaxyt", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrtbQTbiRezMc3xbrA7C57cGsE2kJg7zPReogSzYChWvLmmbNbUU", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqbmTpcqxiGH4mt4H1fVHo21aADySER4shACEVxhU4dLZ9ExcW5F", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjfxynybBsUYmK1JDcnM9Byb2PcjjiPMHMvxtZhak9GoQ8fY7T5B", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qp7MEBVrqojA2fAor9j5gwsB1bBaV45xTpfayiLUDZyHgFvKEmvA", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqU8PLetr2si8DdwmDHGeN6VKfgRw4eRS1u33J7L3b18HtzkWHcX", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qn4DbHGsHvPwQ28W9Kh3AxizUvkqAQcx6W6fEAvTNUvFu18x1EFr", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qinTA1n8V1XAvZbBPfYiiST976nmzqzhPaLfo5HWkjdfqKPUqzK5", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qp7G6FZuE8Q36MZoWDxtQQVViwM1YZs9S6BPy6TGBqCVgRBAo5Nt", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmb86yTTnWME3UfUhdt934mupf18NmWpNRymDxDgPLgfJbAXkdMF", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnpeV4UkPmqTHRkv5jJh1wupc6es8PnfTAMW1AehbyqpPciY79CK", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpky6ft7FR1gZrLGX9AAVyB1vp4LbZVYzD75JcnGAHcxFxNqye4f", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkF6F2a2vFh9a6kFYLoXraBNPz8dCxrdXddbNZ9koSj5wAVNhSFu", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qijih2rRcq5bf2vEMV6fbKjY4WJRaVDrckocAXC5YBeUbobzsdmN", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqy23iKsw62zRvGUSvAcL3MiovozTE7qeFiwanA37Uua6WAzJMhn", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qondFPUoQmVpUNWBnqkKCtXZcNBkuMHpAKD53X73degNYahLsjjH", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmDpRp7aXfZHchx8msVJ5zj8UhU3B9XVmDpcVfcvdZpcVy94esCS", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjaxVyt3oTgzMD6cmC95ekTd12QSrZDYmtkTpLTQjL8KVTotayLv", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qk181XCBn91bAaAu6KuWrZyBSmMoao2enCxs6vuMACjabARcm8df", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qn4MyrqA2HbUdGyNkSEeStPXUX3C76uGZKSkAKnP2gi5R8B6zRgu", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnBRyBb6hcLBqqYZYGAcCReuwKJpLbH8GeSeekKW4eMPjxkpwSPG", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qntmQF6mnqvYLWmTBDUe6xNwaq5fqfpm7o6AJsXt9GKNDwbxjET2", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqxu2VCmgK5YYwo3MfMbbxgdZJhvHk8NPVAs2SkjKTc2VwMhXBKM", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qk1z4pLkP2WoeAesboQUMGseDcm1ZducLiXHvHR4ZFpH6UNjkMKB", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoPvb4vxRvNr2xz8d4dDymVChpbfpSMzjJdtmpquDtToZHKryBWy", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpmSA51qSu1jLgqZsh2ynnEdZDZVaA56mVahMDdk9H81cKGHfrJe", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqeaLJK7fct4RWE95ojyLMZQKnGUZSAGSBRGofRmreXPMjtaJ2eb", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmEtZea22k6u4GRqBtxsTxq6LsSwDszLpFHNfqiUKcAaPXomrbXY", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnN24idEFsTc3RpV8GuCpAetpC6qVfrtRYAPhXnk6wu8gWjFBh5A", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qp44GtFrDKfG45Nqd7hxp495yDVM4G8EV4WVMkhEeDLMLJtGSXDU", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrYDnzSdWjC4g2oqhgkBYpZGHpN4ni5CVHekcsC9mFTxqM9AWFXi", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqQwEqoyHpQGLthBJCYrkpa2cUeFxrK8rEwQSb17T9TeoG3nb5rv", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qinCaT6PVT8SHqNypQDh6QEDUsoXGPJ9WxiDJTYmS5fXKzVYFSen", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpSPbNeZpiPvx1sNn8it2DWyieaTL57pcp5GMQN1zzL1gvrUVBVf", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrMVy5ULFCdep1NKm2MdgawpMYG1MgE1D7bGV21FxUo7DHLyxY1g", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrepiQWKYPjD6gxeLmdjgRRF1s4skkbMZHyEfQevJ7J2Qcrg3DsA", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrRHKZLv1Xkimsi7gbxZAXozMHHRZFdK3oZXkdp3WvTY6dZeAc6A", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qquho9AzEqwAH3i6TaPoFmVLTDu3wgGL7UhmFDXTF6MuKuCpjFKj", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmZY12gCdwRuH4BH3rXTkZvHDxWu9m7tg953iP38esdjqwaYEAy7", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qinVCuo8Ve4aRxNtoT1roQ6iDzyrtuGEPzds6Cp2f92eg8LyJ1jo", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qojx1JyAsG6ymMdrFTwMvyJotyEB6eyUZcfYcNjE3NhLrgwC1z3F", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qp7JFvWkoNqXzmu9VaJ2Sn7fxcdmJqyKnY9ryjzUxAiYusJe2Lvr", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqRhi1W81NpeBe7oqBZYk5J5TkaLUitTSdNd9wKCahYFWcHscAA2", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkpb6vxHCgcTnqdCHQbTvRkUUkVHvXH9DSp6j57GzMgKF8MSc99y", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qn1pySDwWGtovrY3Xdno5inbzCTaLCmssRhwfSFq5bUtX9nMiqn4", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoYarf3kxSV35T8sALQK5bB3upCexB8iYkTRegud5qbkXG5fCc4p", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjySYi1MmxTq6oMQUZH5JkLGMi4BPY8z7knwb3cuDfETVvxhawNc", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qka728E63A4keBiQStkV4dbwDsEY9bbPraJg8pX1GwDNoHqEBRkc", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmhJLe2Dg1Rv5K3i3Cyna9ossyjsf2riEHxasaXLyaHb6oJBe8Zg", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmjdppP3qePPrEtrPJjNg9zvgUUmXyqK6jHATWzeGWjYjCtQWZUL", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnt6bP9ys9vaMpDRvtvGEWRwLpYUFKRNvQVoWquU8ar4U4n4LDZL", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnEBhmwNNf2ALCwVk4i21sqEU7b7xSeK3ooru4SDe12gqFqDEpX2", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qof45HTGvuF4aBkMu7jsf5rqYvJ5W4rsxfrrHAuV9wsgwTbgLCBL", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qod2pM99ANCuWfNnhiutHjTZiguALXD6K4uFyQhu28cNsaACyK8T", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmWiyPTmAxj4gEyFAwESKVGuQuDjCR1Bfs2Ch6FjNdiMH9dtZjzt", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpqFpqgyrYResGdHzZPLfUfJUj6RHXms4z6RNs8G9EtmSwyYBwWX", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkBUBzRJTQSqpgzivJsWF2rMPniE8MjjFSBecTusddAdk5rRqZ2E", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmYncX7N5uoSsvVH9q74xLpEN9uVzoUMffdozAmtJ1p44TTnj8WA", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnkB8ZrXgQZvg6a842GJJ6Qe1ZUjrE2wvWLMbBQUehAigjeu2QXm", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoxj4KZ6RqCRUyfoXK1v3E647cUHb4zpRp8xt4x9PuBPwDqwawtQ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qn1wtQWZdPQczGdVN9QDQSeWCbB9MxN5uCnpkKsZhwptNwNGw2UW", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkoTw3qv2niNJzevNUaauXF6CgtWdQT4xxqwUVzrfgfvsj4AtejA", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qp9LGtEk6yaQsUBcPDSnX8tGKVuhf2tdqoSDwvq2tJdB2WmzkqEE", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qii9aFoqLhfBrChc5c2UgVrqUeWHwoCNxyXPCwEHPT1Bzpfh5TWh", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjJ3Trw6uankLqFAAwDHfNJhNoNYHh9HaZLcRHNLSRFF91vsH6CN", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qn8hpubTv9y3SfEgXC9EZKC5rtYAV4kungGJXtD4rFogxScJgdEL", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnsrJC9kTwqD8U5uNTviHWGjC3RpMWCqzvYbZYVLSnr9XjF1ZNWQ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qr2pYEi4Stt56x9MNyXBXXy36GWML88Qukiu4PKiqNRzZKD8PgjR", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkcfeQrCmm8dX76VoTvyzXjTyRzYSonukwcNt7EwvZnCQk2Cc4f8", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkyWkP6YdbwcBZXJCRKH2Gz2tgdK8yur9y5d5wjCS4zqpit5KTeG", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qk5cziQX4ptKMneJci4P9iDgtzZooGh4RhAB7gtwJhANL6hVSq6n", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnJEie7awgAuHvN7gKoPksK5MzJtFjaTTMeX9aLrVX3bXRvdaPzS", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnyuBFSGK7YvM1nZfGz73JzLsN2J6nQDPcedgJhAPCixCqCt8Keo", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnEepKzRa6SY3pibgnMicJp8ZgQNkhjBJQeyvXBNUNU2p4haDaHf", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qj9sMrhqC3yPJPyCMJnBGG3ifyd11AL75QurMptiH9BRv4Ko2xZ3", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnRvD8v5LhkVyEcUfwak9KoCwaJ343xqh423cdUzPnVA9AgJhgXN", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjY45TqBBcdP9PjwWvFX1vdSKCiy3KA9rHXtxKrvjF5VAvXw5CTM", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjxD8j88foyqfEHFyLMRcGz1AE6ibQVQ5zJg4pXYcVMsQ6rrtPUQ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoxofKLyzjp3s4vwU9XYt1yUKpCgGFKYZAQ5GYhERVhJHZohHLEk", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrgot3Z1247Y7AKtnPvGY8RfD9LSCNN3SGuCrkbqvRP3vomGtAtm", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qr6hqYuEXXS8npSdiwh1DjK8EyJWqnbUJe3rMPxJBW6pWpVT9XTU", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpWEAYuffr2bTRUGWP4LTt6XSwynz9SDn8jjHVL2bgoqrFi2HBiN", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqqK1R9gZUoWUxi37imu3bRodNUFtzkTGFNfiQHeaJ1ZSukx1M7C", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qn7f2M5tsVvCQWec9vAyvWCKe2zZ4TmNDjTzuJJ8xxzjog21kCTQ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qk3w5gWxRJBB28gBHJpRL6fg5cywhaTDqY2mGP8AD7kvjZX1wfRF", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkH5yNzWidfRvmsnvmUfn9VYCYh5qdR1uZvqAcCEpcNEVEo8dX7W", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkxae25U64JQq9c6yvuVtPP4kPyqmANkYeynbThvsKBoeUbY1Ppq", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrdv9cCZ8HVBsM2nigJh3CdJ2hCcwRt4nexAvUSAdVj1ixAB7Vwg", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qofqCexMPKgxUZgf19doyFQgU9iya4ZcjA61fg9SVqjvo958K7Hp", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpihJEsh4FjJYn5xsrFsUCgUh4Tk7V82AGPpzqbMJgi5Cx9yrsLX", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnHj9emed6XCKG5eUZVcZbFWP5BtDwSQBb9hMJUwV3qj9np78pey", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrbNqVTQGQCTx1RSzZ1Kdh7MkCbJMp4uao1wpxY6MP99RrC7B6D6", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqJoSPzCySmzcRJH7LLus6wd7h8Fo13tnka5ghjoLv6Di5NG5ZDD", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qraQG5W4Kxib4c24ACKxR5Gcr7Z7fbrqVV4DjvxswWEEbNAJH9LL", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qojQvy8daFMP6jN8JqtCwJJCKiuSrAemb35SweVbgHKGkw378RQA", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqzGhni3PzG2W6wiJgbk3QfQTwvsvu1dwJozVEcaLJNWyZaV2SSD", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qj8bJhmgDp2FSV2UsbeLB5kGBsABuHSBz4NkHwcbLUGyDwR8aCLV", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqDuEbghFSFPhXZ6Ff3t8ipvNbYzVuixCDNSA6ie1c5foPeB8f1e", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqYofJzy3S4T9k7iN68jfqVVkSbeNWYfPJHYt7TSQyqrZy2sjQhM", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpWerubYgPxyQHWemxKHz64m3BVxjFA2G2im9d9J9bry7Pq1pLYM", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qraWjFPpikjfU7PX35KVbYZpYQp92m6NjNvHo3cS5qgxWTV7gUQ5", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qo9q9netg2wL6bUvAL25XzGh1ZHZZfqTbyQZoyE7MqwShQFHQsSC", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qofVXWpnCV5xgZKmGcPVEqFH1LgPic4Wmsqa5vZA9XGGvMSQ8AU1", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnBD2zVMQ6Qm9C9XuZHYiBSPMNrqQDNdtiQjcCksz9wNEWa1jP23", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqncTpMSqf2Xt5WJjtr9U75nGFxq4JGaUCGps85Zqo6pVGaE7KfU", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrGSczg9vrmkcBYL48Wnkm5Dvq8ih4gzsnwQWC9uk45h6CRXqbLs", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjRBFWeFWPadWYZbnd7raahftv3tozSdRsN6AKJJNNkafjjPhr1m", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrEN6HSSRKhRCgchaBTA5XStLdbB5Ty9RWoGf1MwbCxPfH2kvRXJ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjDG21cnXnhmDZGzUp8osxXBvF8aQozhUCMPfehshLA3dxCM4L8n", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjMHBL1VD9T3G2UaDsA3kSbZf65UZyFevMv4dowBKFV6Ynb2rpGR", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnRehAbeFDZHR3TMuoDripKajXg6RpdKKPbZkKviNo8ACfRnhWCZ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qomFb9kjv9zj9mQECm67hu2spAyqzMSZg7x8jqLd9Hc7kPbWMkiw", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qonna7UeECwH9ELXkReHohbbY6Hpky7TWHthWWAePrNoZZe9HDaM", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrqe77WpPsifwho8ZrxQ4dmPzPkpSELRua8ibT7BFw91yfeCjuTS", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmJrmexHZEMPKiRsshf3JXfLqWGJ2Q5tsscqEa8mm4i3XZvDnY57", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qm66qtMjvx9bYL6uUfS9xz5W9VsFDgMSwJxo6kFWWETLjoEW53mm", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqDfemoWQAmSu9y95ermRcKUh4FuKXp8G79uhRnknDVerPX4sPKQ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmKNdGzCjKqXmB9D8V5rvdYJBniiAiaX2ZwPQQ6HJDaDNfzACJge", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjo78Z4orzBXKD8Kv3JRMoN15wbxCBhqw4LXmngPmFDcUPAvPJR6", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqsUHNcL6hEHyLiM9n3fppQn3r17YfZb5yH5DH9x9K59Z6zrv2N4", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkzKrTpRde1YL7DTCH5G6hsjUyU4uTGJckKKEqboeeTkrsk1LRL4", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qqa4BHBAKgRr5GLYvjsDi6LxUN428Y36PELf712DMPDT4MGKiEyg", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoDCuG1LmsBiE7KMAPNqLLRNaGJgDArPnF8QqWVgg4Q6WJvAwXrm", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qjVgNRLYaduXBdftga2YRsVW2j74t3KsoggqbB2oMEgfFFwWAZhF", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpRadVPnHwBCaVbZf1F9tFZahg59fpEihL4FikA3XfoNeBbYXYzR", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnNgprg3zvdHSjwTzorFXixg8CGR2Z3DV2D5taz6nu9twKJsg5KY", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qpBoTKFs3rrMJBA1kkRpy4iGS7ky6jmrbA6GLnxmeRPW7G2BEkCZ", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qmkN9orexmjXxfKsRcTS3JPWygeb8yAbATNqRvb9MMT8hQNNb7hh", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qrbpgWNixumTX9b9CEGXZYrGfSwVEhCFoDb9Sh7wA9bcbVFpE1H4", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qnp3JoxFPKJBuygZjtdvpsA2rityYqapoPJqQEegyPDV3Afb1DhB", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qr5FkPVsU4zqP8oTC6EQ2PAjmK8FKixXaorxNTro8htRywBeWMA1", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qkkUyhT5goxQGZLFf9M8Tkgsn5f1VC9KMFJBViZFJ4uUNM9Y1eYn", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qirjpaAbU9knNq28seR6hMwYqFnytn8ifULzz19eS7Bq1jeZ8E2f", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmDy7mCRPijbx1z9qymvrNXoGMiAqhBvT5YTRovJnDJzZSwUom3M", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmcKzJKtYYnkQnKMZJLexBaGY9KKRywXm4uBUjAchZAZCbxhRTo9", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnxoeZUTF7dnhb7iCAcP47FT5xupakNfmgUaKV9kZy7swMyt111M", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qr9xjZjL5G8oQbdJDHFqtT4Ly273gdUwn4VNtc2VvPrjBnJecDDu", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkKPGWkwTDQ2LFE4kUaTmfmjzjEQogSELsfWMpwokxVGERWSubaL", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qm5DWJFh2MK3ZouFRkQZ51MMjyreCnWZNGxnVfhEo2WCqVBVYn48", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkzR1ByPBTZauLzUyNzvxV5vAH8tbAQHixChMsfkayodY7ZAVw1Z", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiqF467fLmYRfPmxq4zqxPXWkQczH47nSEntE4tA7Qe5F8P6bwUQ", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqHKa1VMwpVZ34nMs78aoCbSjYWQS5CuSVxMnqymHTtm3xKaQ6YG", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmhahJA3mQVLvibq5cQJiNg6y7rvrhhwQ4nkNPnV3gRVugD5wDfx", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoadWS4uaWBDQSSx5S7kSR9NxXKmAKeTDqzLhDjfT5Q3bZRJuzpw", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnDrQNBbpraKcGgx5sW1Tx9Ho8txFCLWzFzYC4XH2LxoHgmo5R2P", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoNR1Jt3XJax2H59nLXwvBpG5MZib8KD6ChvGTfMxhUUFowUWe5Q", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmMfCx7HGNcR3FRmkpuNNSSvcGmYy8ZVYgtwpBS2JZ12U7ANCFs1", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qr3GspDs5aF9ccTqHwEf5FHLpCHPZVkNTC6mi4N13ER9wGPKDnM3", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrjDDkKncz9rRZcvcK2Pi7s6nomuHYToJDRQeHZt4co5uppS3Kwo", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmoZPRAA59ZDMHGmYSmcZbcJtzzDZkuyiGcz67WBE6KjtxC8pxM3", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpLFHijwFBqV5nWTeQt2uXvvAWUQZ9gJ9C3gzL8gHRzQ11EybsUL", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmMrjkBAoiK6gX1S855SFPYabXroAMsB18277M5LXc18SLStb94a", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnGyhxxmiUhCFsaNmj1BLG1kSSiHgPhwDsWrhL5AaRqqnmRQ4Vxw", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkXTCBjKoe7y2E9shg8JrpvJpwZVtR7itdBEh7woxxGu7bBYFLNg", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjrKojZoKyt8GtK16rRbN2jrK1UyUxTq3H3vuLMPF7VefaS3xjfu", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnY6NkxPHBL8R2MwAm6n71idLUUP4fd1GRrKrXrKmEAcERqtCiSn", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qprQ38n1RUdcNxpu2Cdez29GgFRvRE66bb5Lb6XRAXkKtMHJeE8R", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnoVBHyQXYBW8yV5XPRVexnJ5Ki7Nc816VnESJXfs9k6bSsgyQrN", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qogaxm2ToEPkntGJqJJzmRx4HMuvtZgf2okJQNModX3PKRb7PRST", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqV1rkFiuXj6u4patiwUirfSjBrrmWyY5NPw5mFsy8rD1T3ZzXsY", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpdo8iw9zBKKeiNmPP72oSZEaf7YWW61iFpGuiVV5XhruJgJnsTT", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrhgpZBHRzisndEbwNrQHqxHDP5aeWEFZYSTAVLBtm78rcaJ3MNT", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qngM9M9JZf8ieCP16uBALMVXMGymwnRLXJp3r38XL4oiKDmYW1Bi", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnLPozsB3aRHw6dJdGdd1AHyFJDSkNeTRKWGQCgcLXa8hyiURaqy", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmWgVhgWqQQe77FiiwgCrsfA5imz7jcMdDPmVcjWj4ZJ11ZTi8cx", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qj69BbMcSmUC7PDEUhMEWrjXwEanBacuBmMrBKSuuWCKvajqnuh5", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiVcphDdXt5UQmjmAwcsc5nSR44GQ4tZyR2asQE81hn9To1ZcVt4", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmMmAzySLn3dT5fGUuZgu1HDxqMki2ie2JhCVgTTgk6TfZk5vKsL", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqYvEPAKiAcaESvRYs5vzztNm4fb6NRvygsqsB56vAZursYCJwpb", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qncvcLQTvLWD7VjZBqYtocAynhPGKxdARRNoEWfKY9PkiMwd1d52", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmJRY6WztRwG8mv5UmqziXfkJGFLKsKorD9zrNDTaizmJAAtNHZY", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qp4TbzZFkAAby8FxR6jhpJjH7WPVvMgj95GfuJuhnUN4sw8yhKvE", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qj1s4Hz1fXZqXRmZAdZHjPkqEuu1usbcjdmcmwZX68LpzJ7Mjh9P", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qo2943M4mmdEnqhJJRY8fxhd1LF3GiRy6iWajmw3i7T5ZhArgKP4", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qr353wxoSNFG4nCt89F1EPEvSkademnEiL9bUa17ivbqsbf5whF9", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qij5hr7htujctuUUhG2TnvN236BKwSeyNNMzk52crxdALVk9fjeP", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnpneGbeMspXJv8zQKKT4jkvDFjLkRUiKAGTgibXHLSCdBR2Z1wk", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmb5UBDMeAoumVKyFL58dfWApAGZwcoWqSJwVHj8BvhnnohVyHNr", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qniPerNumrP3SvrR3TSrkRfjipR6MFk36gLXrSpxJ9Twy53EB7ui", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpE2K8LWHfGYYkAd3WHoGxqSZP66LFcQBVpRv4kNwYXseSE61Yrs", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpZpKFPQ6pwUFvZS2zL7Vu9KFamwaEPz2tX89iDzhpsiCc4m33mD", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qruSsjFc4ghBineKanaafiyVciwhdctqEj9urqWL41NnbQ1bZkE4", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qq3R2guxcpd7vQgCaG9C9VuKLbWqLGnKjpsYPonjNqh3V5WoMjtm", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrwwnGx7edB7nFcNHLBkL1D3kUMcLXpHowtVG6NG7afRH8EMpA4y", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoFBJ6icBq4ew8xdvvMLJf9vT3i4BPehC4LA5oM8L97NSdum3qdM", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrV794UcRmbHf8meSDP3swaab7kpZX3K11BdR8ZyqMyNpjorJ5RW", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkzbh85X9DyikB1GsN1Rrd5131wLhenC9sAXHvzXTu673koaLcd8", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpHCGqiVCSLP5fNJcLneh5npVhyUmhEL9CHjiH7pcU9am2tw5qvn", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkhWU3NtSAGj3WTmo2ZEcqYp7csev3sbACrvU6o8VUcpXJKmEp3o", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqbqDVKy1wbCNUNYcQUriLv3DQ566iRQ419hSDK4assjCbDx3xXK", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpqki5QNqx6jTmADZKPCsqgRU1yCM5BqzbFpWUCBJZcWqi73zdr4", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmmyPbNwm3FM9PYhG6sqh7ss3TWQAHyHaDdkDK4D92KXXbjVNPoB", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrpkGF1M57H8wPrbWLmzjfUkg2AiY9tDAtMkbD5VXoSkkr38yaSS", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjW6u6RxSKaL8tXFx7yg2FDUE2W2DyQivkHGBWNQ4s81ZpsPE89J", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoXLbFfNHs4ZHPPip4FcgjP4h8n7Y2M8oT42gGXLBiTjE9dufA3J", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqoB1PmshjD3jEg4SAM6zF2DRPFAQwvwQiUgtkTqz2JFF2siZFtV", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qq4LhCVCFtPNWJbdibWpJcvhn6DdgLWBCcWZkmn7dXgYC4CQmZLR", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qq35fV9ZnGVKD3iUs9CqBuKEpyURisYBYd8NtAXy9DwSE61tfKJJ", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqDjDs5AzcHikgKbyMRcnJ67E9Rj16UrDBEVCDnBGGBmNiTNsFNt", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjKHcU6Jnk9ssPNqKxCcLkgyEnYoBLPnVravZEXFtht5qqGSm9aS", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkrNmTfxR58JrsFGiatf2b2bBiCovMZYMRzyzhCeTbDnPd5v9g32", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqVZWkF4eQK8xUUU3ACfSf1NtcZKkuRo4Wof4VEaNZDk1gZroAAU", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmAMXHCXHp8y7BCQX6VMhrp9NUbC8KNa8NSBCSPeMXKVxLcSwrjb", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrCt7CS5nsLZ4fULnkG46Q9JjLVfyjcBW2A7oUaR6V6G45NFEGer", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrcqrCzqnVVmB4YBsFi5rXr5h1wbWN2sibbwwAjdpTv6qYGAu3ju", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnfR6rrrKFDoaDUTASFyzRCcw1n2vVLxdvaH6xd4MhTDDpW544kE", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmiZaNoG5djJb9GdrZfV2Va4zzB3tJ2Fdk1TkUrvGJ2o5aSGZkYG", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiZm2JQuwzxVmXQwwUNEc1DpqRsinTtJMsdnFxsjQXmFDoH3KmZp", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qohXbVDvLqhzDkE9zHx34THmqSuMjf13UyFc4yFXKJ8B3VErBCEc", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qs1vF3osERCsh2ccyfKjsJ3S7E6w4SpdJbM7KL1drZsQyM2KFjru", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjivVojZP9fnhaGX1K94vbbHj3a4LEEr2fFqRXGtpbpNi5mYCRCD", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qr2pzCFJ4XCUnvim9ZocJDFgJZdbb1U7qdiviXGiVckY8ydThtQy", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrxeZ79apNvBrAmb268YSE3eL3w5GoPy9yLDakgSwvXFuoKBXZRa", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrZZUDxruSTPkt8MDtjmakFbexy64aEGbqjgSkKhxuDQe7PKpMY3", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoBWEDgzVHzod6iMNcCURQAw3JRn7tvUD62ZgggTNSqC1ycDY3ct", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqmzoUnmtfndHLSnNKW4AoQGPEdvSpzmR3Xz8bMDeSMLMue9SBDu", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjNSFaxrH8sMSC6jKTsGN42boaU2cjUGUTk3tEU2YS2sR9hnELDx", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qk7yb8t9AnNde1VUHpjKLz2gfHAq5GJqLrG5zMqfSbwyQdUWRMp2", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjLzFeCLLP2ineQ3h7mdvJ9by2LtkWSwPjkSJS6SRU6y21z48Sjd", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkeQfzgh6VVQ7y4bCn5sPzxo6ntbQdYMSX2FW4CsuiVhQntHDXGw", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnLUis3h76nEz1wV38dXgBuLK9N85wNVW4nPKAo6mX8RxFYBD9N4", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqevxjDcRHNrMhgfa4GFDGQ8m4SKvp8d1ZN5hecZz5Y6T8nzyvhK", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qo2chUqgYm37CbDFbNWQhvT4hgyXeHh353d3Wc3e3RAeq6BMFDAB", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qj5swoXXMte3kxpk6bCQ76RMoSN7W3hLKs39SHbK5W8tECyb9Cja", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qr1Azb9XpcjLXnsr7w7o9iC1vkA1ftZFPmNx46Cj7eXNRJLQrQer", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qret7PsBQdyqAxXDeucBPfGcapquU7fpWBR2kj3NSGRrig92woRY", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpuaY2tD1NEDELTRL1p2Th5neyeMAUB69BVmRHRqqxLFoZJmCF6m", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qs2tEZL82gr1S4END3RpC78Yu6zCFAerB4sFpKfgvzLETZ7FDvDa", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqW4s6fwm848rcVXsuYaJyGvPqdRfjGHpKjSPCgU7LTh6v2gAJfA", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrJ5ibiBPfgAbK2GxJCeE4MfzCxso8Uew7qVFDdjwmWm2vSB3PfS", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkK2aGciPsrAuLLRCBHc5mpZb1PuSDrY9gVdBuZBYtmaBBTtMviz", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmBKxat4THC2BvLMrwnupHtYgGMz4oTUJjUTP8sZexB6KyqbnCT5", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrvuH2h5S6J6xZvmdpuLwt8218oe7ArbFjdXut2JLCmL4jpoyh41", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkixvuEWyo33iwbXmchEheuqchnd3apuPm66UZyHHDSHuuV5kYn7", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qingyWcPedKN3wJCaVsPZaby1tctj8kWh86E1SubE5TNuA7gQbWQ", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmXbdm7pdUUNoRTMNJ58fPSJqX5DMTXVLTS8gUWmKz7JrWx6bBxt", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoz6FHEbu55mUwNCVhnuj8dAKTbJ1dU5J6igDL8fd8rEa7mD1LGr", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qn44JhY8T69fZvvWTBcU5n8UhfgHEfdR4F5yBnkgkjvCHCySY8pC", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpnxKDiZQRC6pmHjjB81meQoQes7YicToFg3ovZqHZWqHPm5RFZB", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnaAGmZ7HciV2WKddma17SvNze2bXXvUAw5nz6DdJANfcPLgLg1g", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqqX53TTw37zF53ZxMMLVHRnwRbunwC7eBz5nqFZRkc3qaJ5YBky", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqi1V11hqvrouiGjgvbd2D6au14dE7MsP7y3AVDntRasR1vYKC67", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmuVA2Jhcuy54achHvxdASPrGdzQ5vZjAY6pyd1nEZXW5xKgXeC6", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqwPaJhWM1e1chzqE8Nopwb5iy7ejheUmKNoGXCYSsKcWd7GtTFt", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnPunmD8bUvT1SPXV7CGQPm22JEFMB8oBmYDWNkKZBYtiry2dvDY", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qks9emZPGMoFwTbPSJ6Ks62qFLu1baM3AUg24L8yCvyqMREQp5Mg", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjrmu77b7DRE7hZkFmpctwSYzzgm88TS7zob6izX1k64MnhkCMdv", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qouxdr5yMjxUXVRYBg3PJhSRTAs1NDBWuYHWf7ypP9enJ82aWqCK", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qq8qYwqEQmhuPe3gMfqzVbtandqo36o15d8AmnSqYqDApHyAkxAh", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qikxCVc8DGauH9rwKsdu7rxJRcQVvCup5U8k1zL7Cy1yQgopPke8", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qidaRAgeU63Wf6rfjdNice1sixpep1w2JPhyxzx6yLBwTRxAhZjF", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiodGgMuRrdTeQu39gCsfMRr9WCtqQmBHJsyuW134bRqNeEJFBHs", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoRuH75LtkS4WmEC9mcQMRrTHqmmxcamdEYFqV7wY6a9obfr5Nyr", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpVzADurKGZ4HWL9rca7D39aHGX4JzVuxhUBfYABGxJBSNtHfPHR", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkTfTJNCuhnwA9tfLihYxbCEtktwvdaczXyHE8e5tc41k4YZLVW1", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrWpzSiwVKNpSLwoPcpFbAG6SfPKzBuJ1Ybimxr5au1jFvHLYgg7", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrQrZHFJZswp2XME8r7WTq5ZuwpGuuVB4cvRQbVVRgKfb923eP56", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiqQ7xdS8B9CPRrssbnu6U9TDX1WkvdzMxcgTjfLwmW7EDhvB3fL", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmrJ4QuvycNzgeH1ccLfAWESsvaxoYo7dNZfTNBAvqyTbRHVFpWf", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkuSHA8FjAHW1Q9kbgQyNogKG16g8uJS6YudC6gbshoqKLCgpvHB", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnUfhjeCDChSwGot6HZP7DA6idYAg1qdeeXWqj2SBdZ2SBaH3GUo", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjsEQPSfwG1eZug4C2EpbACiShDv3oBwdzAxUjndGYWCoTjNRkYq", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjxV66iHJuKVLFPQABcLSkQTKQvhbt53mJfcmg9qqXKoJs6L9zAS", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qizxcVbnSfq7pUpdKqjAWYx6w4xBJToAepWDkcgeWsXrgpmdxc4o", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkQhaKt6yrB1qknk3pZ9wVwJ1yPPUhs7budh8NCHnpqxMYcRPWSP", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrykzxD8rCVw8iezvwarSv1Jomv7ovsCPoEAEcV8kuxznPoGY8nc", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpDhi6H2jzrUrWhqAbuPNpgS57GpLtaaQ7E9Qc4kfkc59yFDrnyn", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqhXpPNoXDoGXZnwgRW8aQbmWfREh6t9atFetJotmtiBZzWk41rf", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpcUptxZ9bUK6R8W7LGa97pq2cGWeGG9U43NrK28kv47cpjtLpW5", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqAXrmxJtwENAHUaVKJmdXqitVWsQCTpaFnSXqnCKN8CQtKJL6oq", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiWWSyEaKqFvAhL2CyHAWS5iotuXAEURqKCnVSK5XULen4hKLfcX", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkR2xykZGumfGz5CnXhon3DvFeBvzb7wHR3FNPiHvjN6nDVGpBrw", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjPvaWg3GPA3TddtRCDEsNmUbNipV1LQn5KvR9Thu3o3QhWcj9JZ", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiighhQEeQXyE1MgFrtqT357wSvVFBJG3YBiXGNrhq8VyAvpRhLZ", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoTEJJMCppkFDVRf7e5dcJcbUDVkiHzPZSyA96sST6xNcETNvxB9", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrswjq7vLPg9EZ1qQaNxSy1WhLoCVaLLcQS3Yxf4n64uXZZ4hncE", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qivvnWjSTLaMxCwTgiWR3jE6F8adNPG7oZAvMDKfarcHS4VWVD9d", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrmbpms973QPdMB1VvDpNBH8HAxzXjB6436jnf4gMyww49EfST72", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qo68GUKZgJyi7Rt6DAVFQ1txGR3LTXmrcCrQuMK2aCL4zgYDbu31", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnhYaaVyEp1VFwx8yoZcpCqfrHhRsf3qdJr3usMNXKTZYyHuyw59", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qizJfFM8tNEiwMJV82V5e5rsesS571qdY5iywG6DLhkGCHY5TbNR", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoWxPCveh7xxL7qWQKR43N2hNjjEUfhikAz6ijQvQZZjZosw4QMK", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpvhKvirJBnKtDnwD5LeJ6haiNcEb38SRmKcUHhb3A4iDsj3qGxE", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrMZAg7GQfWM8pXg53x9bQHe2HFqbyGUt2dRpKdU9FdF3gEb8REK", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoNrhcL47tMg2qZJALC9SNBcfrWDdUnKcUiWPhx4CHRsRtipYJ4n", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpMSppg9HXCkggkjQuNjiHs2LTbVNaXVoiaj1ZDuhCrBvp25vZRt", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qp4VzyFzeac56jJvP63ym8s4WAWwtcoAKtzfkbEixRqYb86s2RFY", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqXpjye7VxYcefwTKagimC6BSBT3naz9nvC1oZ13exFgvaGwReuC", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkVTZZbyHD5bnn1ubFnY9eTLTzrnzbznjCfeyD21iFmUDyt1bhcC", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiuEArzMJ5Y89bc8M2SAeNaayQWLLMRHKsX98sdGqdXExSGRj4PN", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqQcbraKg9Tffj2w4rQmzM3dX89Wn7Qc4QGuJgAezGmUyfWo3xok", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoS7REHMZuBzuqyQgvCGAEHJerGzfBopeKG7kSqTj9cP5MkBVCnV", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqnrbHWMqvpfoKWt7Q3nun2VizuoCS9JyPcBt3gNoqBUjmMhNmdE", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoJbX99BMriPZqkmF4gvK4b1wPMwuQ7QzGdtHjMJcEfwgPRKmcG2", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qn9zv82dSZo7ssKB9UiQuypxQvsQbUxN6hdkJ42jREXYjhYuGwaC", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrueLNw1pwqmGri9PfJSMJG5EujhU3n23xV2AHUnkSLU33imX6Kc", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoimc9YxQXocRZQhswhTkQz6v4Ju67NqYGCQqSZppMRDe8kU3oPi", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjyXxETUKz965tmipTjnEoJSvGT4MX7KXtMqBB4s6CbpPQSUMoHH", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpmYtJCrJpcH89HgQ2XCvdyqTaA2KLaJkbEXaiQfuWLo1JEMwYHL", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqkitjoKqiuiYnmvdeENvUdJwDaB4AewU2df8FS4ADKnjRfCKrVF", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qm39nW78G8qULRsvXjd6eg75vcLhPeJRdV3rYGMoGXAHKiHjdipp", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkxEneNsRReLNdkqRSNrjCcjLULyaDYQy4iWJMJgWq6xKHRxruaD", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qobsiZcNxLiDekSJbJ8eoFmkapk2ctrQ9H8Q4BzvauKpxuk4yWXx", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qn3n65EiboYK8F3gFKeSD359WHvXP9XhrJe8yi4QmmZ2uGrqDo45", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmnoUMCvszrghpp2F35xKVkuj1dJemguqbe4DCCs6dExfEWXMEHu", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoY2DkwY6JrLu1HChDjJu2b1LnZvxYMJ24odVxcF3BKwA8gMgYQz", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkPVbb5CE4WxMk98Bj5ZDydiHopdnBiMmcGsFvZ1HKPcSwvZ5wnu", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoMDgRV6fZBNu9YDxuTuV28Eb1ZDRXGgKyzpkzz6tnWm7j9SqgV5", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqPSuuJbZkL3LY18ZaWWhSqfzE1sGjWujsv2kTNVfDAE5irEXkbB", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmYj6KieeeGy2KG55UPekfCijQWwfs9ugoCunW1cGkFVtupfVfPV", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qopSXU4fkJmLT116upDmeS3RNY5xUEBsYmqE1PkTGb1gHjbgVuik", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrvMxcqQhGgBkJZmLmvgeveQNmuvyhsLuXXunZr1K7Qsn14nAChK", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrJn14jLPXNaC4u1pktTLa1PthYpDVtufN3SkLhzpb796LeN8DqD", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qphAhUatMzHS1MSL5sXf6oYBrEHW24QAaNpjkzJ5xjUSm7nDF5ho", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjMDEtGMGcN27wgZQTQ4YuQGm4BRkcmyb2aYtr2CpBJPi1RkvUd2", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrpFGq14s8FvSmiDiXDbFmfAbzNgF3FHTLSJuR4mLXmi3YRKrXVN", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqvkxRrTM4ktj1UAnasjTKr8RNBeKhY6RFwCJAtjhTKwxihW4Ceg", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoyzYk9KikgdRaS7Ng8t8E8MqNVnjosHder7sW8M1LthhbnMbkjY", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqM1CHg4vMx7g4JU5L1u5KMkXoufGyBa7Hkp21v4pRyMQvbu1dxt", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqBpDqW4oAS2ChwwmDPAFf5ntovPRoz4cJzWzuZ7SWBhm3MmkChY", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjTF2a7F97S38eNmCvK3aMAMiyh1Zp61pwbN7ZF38dT3hzCBJ2yK", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qm5ei5Z8STYVnDPHPJyxHoCLp9VnNfydfSdAJFvefEjY8viNDZbH", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkhbhJQVKXZhWPhMWfraMPfEgDCnUx7vTKBZEHvQ4LsW9amMuuqA", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqccYCjcvErx9stqCJBjwi8hkKyqfgo7LU4VRUvKy7YSp3X1m8nQ", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qn6cm6bCokgXTmVNxtbFjT4MPxL8JyfHZVZ9AJkEi2uBYbv1uCkg", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpdipVyjanZKPTEtag9RtXNbkePB5q2HSr8SWcKsMs9Ur2dzoUVP", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qm4CjmxDE5DCDc87V2KvjKMNqZZZXNG6K1g1zKtbNkzMRQwLchac", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qr7EgaoUX3N8fQyE1rViQcJN9AygPCAohLnFaoEXC5bC5MUHRRd8", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrYnBRMD8f38c2LaS8KrKKRFJdCH6sNk41UtbVcv45Sd1GdyM4gg", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qq9sE8Y5AMYrgUo4RMtTLbxe3QjXp9PTyBVQ8N5i3hxJTcbDEp5W", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjxcbDDovTLvGJtq4oPJDDQ9koB1SvWteRz4qNmXTRXZprjxuUSv", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqB1bwRX323eJQcgtRuHjbnHcKX8LVnSKLe2aSNiDd2iRkEDqw5x", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnKEFEUEdfYn8stGi4rxcPDQKqh9rmcNPmk5iPzurr2paaWZCD3M", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnGTY2EmYwHzcUYqLRRh127jthawm7JDcjqdhn7ua8regkGfQv8J", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjMoVP1tPNnFbdKtCDyKHqwHiQ3vmiz7H6okpZ5Kag7RDsxrVQkB", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqWWFDCJieFk3tbPCyodztRDtfBuBFqgAppz5fBFDCQtRaAGuTxm", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpu8KGXPid6sHKkzVbL8XMiJHpAJj9s1LG4iCECAhrK3BfExcEW7", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnpoZ3ihK9HZYKBFi3jCx9ER7GDuA8vYeqnn9hvw22krSMZzFYzf", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiveBLeKngC23H3SFmxrMRC67UP5MSnSHpRJMXWV9cEjeLg4rmQi", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnBYskw1hzmcKJZAeKJPBnbDTWdSohQXYFq9PJR6kg7tDA3Nio1g", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmFvtyzA3iWrKwgN2FNKJyEBXyKryMMCRTt4KagRLAy1M2ih9CgP", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpU4S95ARfuxJkQLJfc9wNeDDRzgViBufbZ3da647PXYCQHr8YEw", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpSGe3FUAWq1sPRTMYCdTeua8kCuKVbCTMJ1dYfYBqbwrNgVai6H", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qj464wFzk8u9oDiJEMSamnmYt8xMM5XBQKFrz6Z97AQ5S7UFue2T", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpzsePLGB1NjxuyTAoa7FxkgDfuVBiRcYGeATQeTPP99rMrMBBhc", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiU24yYZskNY45Kqmiogjo8LSASisvsp4aVtmMJNn3SbEQZJfYF9", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpevQif6upFhRWArQS2J9GdNXqE1RcDttLL6ZafZryAZ1KPtXYbR", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqwECA5rM7XKHTcT3a8u8dp8TfmwcB8GdgcsMfdJcLkGA8UHiBGr", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qn9kvcsqGBxUbD8NXRMkZqyhcfMdYuHJaHJqxzoNHef6ZBPLQt9i", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrnyXrtTFxg7cG1kLskwzCTXCDRZVb4CHtZqNyDfG7a5cXaLvzrj", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpuUo1EWaxK71NPnR88wQHkEXFhKY7tJx9XEn35npwZBQJWfM7hC", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkfJMjHv8erwR2y2keqd796i6RfcKdrMW4mvcg17fin27FQAzppa", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnosT7ms6eNbkxKjiwWnLJFBmB6cEyh4DJ1JLFbFW1WFgCYgADPZ", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrQfq96kMeSS9yCAhMCSCMjDzukTzva1poMeNkBDVbCwrGLPJ98E", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qk5AqFXf6nBR3QeUSmhwUMgcgtxGQUqezEJtwvWn5GTRXdk5hsR7", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpgaRoXdaxMJBkfhyjgmDKro3CJjVPYHReo9eVZNciDvZ9SPdKmt", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qr4tswYe2CD4B5AwQi1xiNXN6xHaxYBHkkud92TRuMCFkKgtWPNc", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmNPCJcmgkzmueQxcZoAz94juuXRAYk4LWdnNz622Y9WrC26WkbH", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoQ8FtA56x7AiJBattFqHtSAZqbsoAtWcwJGuHpFCdfyAa1hSYN2", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrauFX5aDw3dHRNP6k1v7FVeQ5iYDkaab2U9M2g76PiwswGmwJf1", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrtMDgnYmtn3cn3z24DozUCrjVaR4fPXk5T5q8mfnxJ63EaPGgXp", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqSe9GAxr2R3G7aa7KUFa1ZQn8fyJrS5a6uEatw66BEHJ5SunATT", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqWvJQSDSSkAygkgWLkjcZNQkVokcEwCU3qBuWCHqvtWNcYMaMyv", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnxKyAvx4KEtr346w1HrXHMKqCd9o4q8M3GwNHqaPocuykiTSKfT", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnGPXFVZFoRerditG9vvvZFqzhLeNJJavkXLhb1Z1zMqxdKA3it6", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoFm6Yn1v6VTjR7C5N2Nndr2YxoyrGxoqC7RBEqHYrkwM6JgWEoF", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpHfCURqZb7Y2uUXHqA15WbpMtjnKnJnL8py1V2FfvCBWa25ZT4W", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjyU3QbPw4zVbcAscJXYPXBF8dTrMgt9buCDKJxwKAabirVabtfY", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkkZF5xVMWmkNBcbU16NMYhpjXeM9hfu3sDQRaEUMukyYT9h4y7V", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiuoDiM47dRgKKCfPTgbfjepAuqyTFqHAqAkMcJ1q4fjRXgcANbJ", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnuEjzjkHQY278NHi7wcNymXdpswubvLmK7uds9UmCLJLpqVyWf4", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpkhJoewaWgS4yKwvzEsf3UuLQCcSoxdYKhqFNsrbBex4NkSbhT3", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrWnSqf41VLhEXMzE14jPHbnzpsTHVBLTTHgXFy25HiWg17L9fe8", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkyWmr3Yun2ATPC7Hq7NCV7YuiGZHMNRAYxKc3KX4y8uqWW8unHd", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnn9rHQfrU8BvECoa4kAu4ycyoY2osbvLM17SyqmFWwAdHL6U4qP", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnPFcFSb14MwxDhn2fZYmqNEpHzpREijsy8CVkJY5hekzh1ghdQQ", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmetvpYCgQvV2Kd8H7f3bq24o6tHf8RdqaTMCRJsespq3Ugqwo5w", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qk1NSbCixshBmevi3p2fHMH2yGK79prog4Xxj3BXCdL4Uud2voQT", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoPhiK4RqoY8gCAmGkFoomRkyUixjPQDsy7772s7sFHdbq1haMXH", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qosrts238yQkGvqTxBwptDXdVJ32nuKRJg4XBtnLYCCuxNdtusyB", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjyywj1AnnyvmTbE1Xnwag6ezr2GuN4uRApfuUfgddzu6NWkV6RW", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjvH7MW5KvifaDZgyQanEqodT5L6gJSRpRuj9Y4nDXsLrWrb1fHq", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpNmmbS6EG46JdbXadzeZhzRoMtqQWJuBKfqBU9VtSvT3GRuC2yV", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjzreUXr3TSRuDrrg3z5auVq6P6GiwiRGZfKSafgR6tbuCmLZQSr", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qmH8LEoBkeMx4qvNiLkcj6p4ar3c6rrE1pwG16CCfRFKsJFSbsBB", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qr8BHwTvxqJq5xn8GCEM79wxdsMim76hZLeDZHfn12UdxFMzx13v", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiXUGtsjyt55Z8uyXcmpCHi5Y1vk1ypWBrLbFhaAGCdvphAwzreu", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkaeQi8V1i6nkWhvu7Y6Tia5WZLtY7reVjbSyJDss8NCsMQfDnBs", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoHUYtZqiGpJXwdwU9MERW3NYUFFF3e2mW97voyWuWQsJ9whA5or", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiV5c49Wgfa5PNdJPGYqiM2dvrqzzotjbfswii39KSwhkHMS9jv2", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqjgr1ZX2waQbVAnaEyMcTvc3Es7Kt7vouAnYhAbAKC4ZsWXNqgf", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoRqntcGR8dYRzkzQDGTR9dx3fopDv4ksykPyVSEnDgEnh25skNv", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpAgYqQcCvmSdTvQsCs5hvhwNm5q35Npd4FNeADNF31wmg5CmFgy", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqsU8RqjaisasnjxmKNW3MRBEfcCkELPiefG1Nqiwc6L2NmHpCZy", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkT4zbezzqtVxBPeVXkQmxqeRdbsh1FiDdwb39VCZXCWYiynxhod", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoVJnMLxxCe4AE4dWTCBaJuu1NRBiAjCfwQsyde1krGZPxGGDikc", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiff95xwhjz1hQa4eSYMPxjMWTEd2S7NvUg7qm8cho7MQvPH6Wom", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qiWvok4rnBxnvu52jDn2yfwj5zfV695xX5JneNbpsWEU18qyibv5", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qonNot2T9W2B6ovCWMs2N4UEgbaHtWYTTvmGn3jKEfsur1EHTJ8w", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkodUFdfnm842ahYGgiC78GPWkT6Sk8DuoJjYxZFMDUj3bcyaDq3", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqbVh84riAYbuAsDpAgAmf5QM6XqFdnfs3CWRTozt2oX1Wg1icJ2", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qicE3Uz4A9jLmL3AonEGw6WESmpny6WxGhZMpz7CqScZb23tWcHA", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpL7feMw5k8QmbRF4uAykegtoLPmiVx7hUaHMQnaaJPhdAAVSitc", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qpseSDuFDNoVwoZVqeVN7CNF7fbiaWBJyXHNZRc7My4JPasjENiP", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkW9ZoYjFBeRj515mC4GweUM6iNsMdjp7jDkjGDoaLpVBGbnzopH", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqxhQw8RBpnR6Fxg9LCyuqhDCSZDTUpDHj4oZjJNtEqG3EF2Prgp", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrp397PYmQWU9Vt6QW5EeWZxFzji3yUo3gmx11eyNgCesCY8ENso", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqzECcEv5BzXoeFcGtR2S49yGFvUz3DzpGmA37G1bFgT3SYdne3c", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnpWhNwGQmAwphXveWbLZtLbtuPFpk5wuG3xCYmFFw2gK6P2Gumi", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrLr2SRXcfUsy2NsFhJBxmurXWC4UmEpf5N8Euqy9jHZgr7nLj3Y", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnex2CsDGLpQ4894S38uqVsiQ3mAZeEVjkUvPCcX5AMGUnC8tm4q", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qn5d8oEWuK2XLEEAMDw2PzQvnpKeXLB17WzpE4tbxkNkKLr4C2Zd", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qk9ZwE3b5AfjGPz5vLjVGGEKsZSCEFwn72jcdmbdCmgDdBUd4vCC", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qj4EkrXwEBRcWewqzqvzs1mQoxTPd6PzEjSEbXttDX3BiMaS6VLS", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrFEjwUe98LVeVm1WXa6qTM2nMfC9kdTtVwcczpqUE9dmkkGBcxz", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoySWjpQyJJjW7bNJoMT2mf6qcwGdq8B4aevVHokd5wtPDxbREa3", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjGtJEALYeAN7zRN9j4RKXw2gV3i6vSvwruX38SrSu9DPuHsmeKy", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqauaSK8GvZX6oPfQuVrRAf4tVFKxzuEpX4kfDeEGsTc2myg6PGz", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qqz8MYNZQFggJTVYbWpjQEPZ26J7DBrpdwgowpRmVyZ5zGk4VHC6", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrLR2ven97FQSLfMNiDcSAAAQsnNssHqN7ry3ewNGRJEHaDHacKU", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qo2B7P3FkRhRwrCUgBC3zASAwHvYzwZVRjSN2DL2irh3c6QE82TZ", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrgtWz2fEkeHmaZQkWxbco6d5msys2g9bmrYYWaG91GNXsrTmfZs", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnBgrR3QQoc4VoCTRAknSE5cMkSbavH8ThnE9D8Lf1HJiXwfP8Q5", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qnG95k3UbWBc5xYmHJdRoyk8h1PsYerVmsE6WVgn9mV7bbpdHwZU", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrYZnYoSSgs5JQvojnXVTWoKNCMRRkRuUQY8vR7d2kZ3XAh7DewD", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkzPSvBH6vDnqSFdxrW5i9H2F5wC98S9fkgFNAD7aZLpKwppwB73", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qjgf2QqDPiqZFLMBrd7Hp9tSaBmWWTyoutuZDGKXAm7uoWQCTyUE", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qkPuCPu8ThQj351LS3Vd4GPAUXhvnqgvZBzQmy5UWphPMzLt7xgj", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrKGbC9ZHB3jPjzWYKowxMGoNMUhYj8rMeSGqtGLWtTzFdFFSQp7", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qrindf5NXjpRNzTddaFtPQEJ34bEE2drvQYcwsJXceJeJHDuLPra", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qo2Jop9KdJk1Y8Fnfd948n8LXm8NKYkDYYu9oiKe3fBm46P7manQ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjJS16sabszrURGJzy1D6mXY1iKPSGb8t8Em6uPtNKyVtm91cCEA", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnzLc8ikFmqnmoYv4X3svKodoSd5WN85BqkZk6AjTua6bhGH3YsQ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjz1fmV1Tr3Lv7vzqaCmjzu22eaFUdx7VAWCdg3nsdrUAzd8Wwu1", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnjCtGjTYPFYLbJbBXx6AiyX7QLafFNQepc6kES5x51Csrp2SC1T", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoASQTJkY3MjmUmxkJj47KyzHPAQkLuPoWvqajkhs7x3UDEWvaEa", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrJXyRMyxeGVsqZuwSKD6U3VJG1DY2uzQrB5KYGyViBJYocrcrxm", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnZxCTsuWBtur1zmDgm57YX6226VdFhM6MGwRKKrGG6XNmJNVnRk", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqdyCvxHrx7NGogv1afDarsm6u425VmQAZ97p5yJu4RFkUPiE1rc", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qntnxw9KrG1Sjxu8efvTEX97dAExdnSrmxN3yFt4KFjcceFWmKKR", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmQtpdY8B8t9GPFTMTY6M7exyJqa4QbDdLFrf68ohytnNk86DrUy", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqQbfRrC21SkToJKbU9F7bho3KpnAuTytqQ5Pz6adQcDgAPf2XZy", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkwWHm9EFvBqfN6kRCT1YMJzrueo6kPYTZDjQVjn737Nz9741M6i", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qk42BN99hPhhTpLEP8nxQFVkME4Zy6xhX27bPztUXtQ4qQAVd4GU", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qn1MTgx4uesqntZWcdxd6WR21udZCL2yWtPXB3vrHznjobuYNjxt", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnuj7mUZXNMmHGbkuWFizJeXTULWo6AAngCUDrz24QbA441X3hJ4", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqfePGM54eRrQNnobATqxAhUoJT9koEtsxBCiEZqk42SbRarriGH", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnkbEpKjuoNZogwVhNtwUQ8JffjMFFnHPd8VmXArQrwQr5bdF37N", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoBx1e5MJvfgNfrUw8bcMyCbC5KPQKPua3aAaoPbARrPiykf5Hg1", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrxGmCy6Sai26hJSdQx3T6Jtukp8ST9fJVv5KsqZ2JtLhLYc6XZq", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qocymb4BYZKnkGz9sRqF7h6gM7hZqHG15sRdmYqVLyydcTKjKGqF", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmXsBuEw33we5xMDrbByQ7sjg3StMTWf1A557efmPwfE2rkuM5sp", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpnPVRBNq8uKfhbqwerC25e8NbfXQF7Yb5YC1GonU7VDwTuXKmkW", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkVeH8G5vN5ziMdcQmoCHKBDA7SNdi484aifqHb5U4rybxJHHL3Z", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmzN9wexev2jyPn3qDrgF9kZLLBc39SyGBVPUkDNYAfPVdkh3c8U", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoe1npiDY4LGrcGyanAFXa9GuuqDbB4JMMkxNGa6VyUmU3PdLZ33", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmbeiF4c6Z4dUK6svvmvySSSdx6wR4BBtwyzu5DWssA83HrEZnrQ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjhjiLR4Jhytp8jS8iV9e25BbQp5voAhxzzNzcFem3mdLV2VvkVc", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpmXAipfyiRnrXuq1hE84x5PEsWPMYm5DFAc7ADaguGm7jZSC1jm", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqxk78Wfd8PiebdRFjW97JBNg65DVhMhDtkviqq2FwXF9HcbpNC3", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkaUC5ufi9edx2P3XXUecr1gYwMGz1RAmb9qhwvUmbaEtB2V2wUK", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpzFAfzkigs1xqrQAb191NDZrxJTSv9izLJvDGT67SmhJnLKRJTn", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqUzL8XTWaiKsb2PjhiWuhKJErXYAsTaH9CUNa4R9kSbdRzGtmzw", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkT1bXoTMjL499NkoeRmxXU7CPs5sV1aAK1LYRjZQmfTggkEw1wH", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkEvoFFMzhgvW8Y1HgQbcbiXiGVqVF9jjDrGac4ow5ud4DEjiGWR", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrCvkG34jUE8YNmJZAPdEss1N8ESzc6rtMgPSb5tfibmUAftyYLD", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmxbKJ6gzG3zqPVGtRZnLtUy7Vtphrs65yvom5e8Nntfr9MsDX8k", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrLisPfAZF8Vyej1RBD3vQW3gBprZgRtBhUQ4XsPGTcY6yuvMVNF", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoWq4MpFWJ5Yyz4TxkzQEUUbtW17tkVeZB7GSLa7ozrKWcyJ7DCK", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnABbFFxxkuLSHtRzbkUGHyY4wkWLnNMzsuW8h2mV2DHpzS8DzHN", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmrP6j2AirxaCdYo8akjMfMAtdbkroW8Vugs1WGKVUw2q6xWoPwK", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qiVeoYnYk8utkcshxVFfwhX516A9XjqF5LV6iCvD2yUaYDVErLBE", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrWJY5qeGqjisiYqjGjPtkhtRTgWwJrYyGpZV7wXm94dwMu97EUp", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrHhtKnHxjsMBrFnzfCXjiJb7RgZMrov74jjJTnnWqd5CXYyy4yN", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjA8dCR3iM6Jx4vQ6Qym8vJhSjzuwoUnY2Hq1dGCSNBxxWRzhpps", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qquWhuqJcCtcX63WwRkZwqBDtJUGyv4EcfTHNtZdRgNK7m1GyrzB", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqjRMq55WgNVn7qoisLhSwAU4hbemtVYna3n33f1zJum9MD5cUMJ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjeVjLWSx5tPUv4geS2tqf4hbcrp3WirsxJBEDafNt5vjLtT5aMC", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qopLwkBo42iq2FQQ75mQ2eRNAW5dEJeeu5zAP7Ef5q4syiZCR9L8", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qj4hwFeKNpLinai3Rf26GrLAvWvWQV4Su6syVpzhwmAdmwHGpCU9", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmLvYZKAi69gHJj4XctyxtRQQG7f7WHrCYoXUy83g6RhALxPuH6F", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qinVPh7pWXVAEghRD3bP5bLmhcN6ScMX1SfgB8MLiv6bJDSGmbCB", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrBcVEZN8FQNGBQgZ7SQNUfdHmBxzmrF7aMsTmKpDPBDHumUA1Nb", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqF74952M86SYT2kDhEtXDzCTQqeULzsKKEazVGfibBqJvgkchQh", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qn42iTgYxwvgWrS4UbneZ8uFNftzaE8dpwxnT2ZSBT8LNFZPL7s4", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qowSyi65Bu59xZPL1XcPv39DR3PH36z244tgqDDfPHMQ5147G5jk", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qn83ZyKheDJbyxnbDHZmgx9itRsEB3noQYf1YQ9XBS6TxR84igPs", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjPHjArjUphST3zwZreHirwmVdsjKSsxEYN9UZw8TDYYqD63ndKZ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qiaWpybzmkvuFpEf53BGgnKee3VJ81XXs2Rh1xb8hhY35Sgweomv", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmJoy6L2zWZ9udRq37NavU5151xCgFZD9tmjd18aVWb6HK9hPoaF", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmknrkGhggJv2BLCd28jRbaAzC9nBm812UJ1r7ZrBxH9qvgEyoMo", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qknCpv1tbvxPez3ZYw3oJTHwXg5WHKVXKUf4FyW7JTSYPW9RstCc", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmWgvxm1Krw3yo7UcTC7W3C6TYRMrpAiqYjtAQ4ZN6KnQwq2m5FD", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjPJjsjZYguUdsWLAf2Y5imwfV9UMhEKgMdp3GGWc7Cg1Dsk4p7g", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qm2MgfQTNLxx8AAJ3kopTu2zw8B3S9FujdNKdsD45ZU5SYfQsJdE", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qq9gXvBdfnZQQT1VGEoi1QZ6wRdKvwfj8VLuh2HTDJxZmZkuRf2N", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjuWtwDefkgtje8YD3nEAJjvcSenc8WdVYifP1a9VWS4Nj7qtkJD", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qirNVJGRW9HbGRPkZDm9Jtm4esKHhW1dkJnfcBrbiwVCjSUcUQ1g", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrcVtN5x2wimr1ug8VyMV7H53MhpnX6uxCynBRJuiwJbXgfmLZo2", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkjANEU9formpbpgaaqXqmKSWWjL22c2xCJ67Tj5eMrr8C17hA4q", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpwp2Ufke9H5CfxRF2FybtA8d9uAvFvx9nojE7FjGLa9CUEbzM3Z", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjJeMvdjBAeimigD7gojLWUNeizyE6Neos5f9Qq6jXcWJzeCYrBj", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpEvfqA9mYmKRew6mXdgHYRobMLrykZKBdYzPZggn1mJSJ5ELYXS", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkQvAAUAtZiKAdxapWqrnu3AY6JjVMV4hrk1bX3W3UVAggDjYHxJ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqLYZLKrCwVBBX7tdp1FV6hG8NhSDa6GEvYtnuYmND6zrKwzDmk9", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qppDWsFXqJ4rZjbpiRazHH6G9ZzzvasUWaaP9W8HWTxJSBBHumBV", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjGi1cuwxHxJ8TNHzwJJ4r24SHxUSniKFmP5XDPxS47ngWCVuYt3", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qj9ERHfCSafjNVUggNJdt5qZbM5KWhvkgeS8UsPRju3shPZMJCjt", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjDbDwUiQ2cJQUyXqSfrwSNu7FRY9cAposg7taHC2JR1wEqFmUKk", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkUyuMHHkmwJdDVmdDFR1yjNTBLeKC9uCK7C4uRwWp4nDR2uUSrx", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnWnds7tBr4veLk49Axv8SnTSCxGPdPbg1DEDc6Mi77JCbYTNzuo", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqDSXTaFeWaqRT1u6ADA4QJsAJsVT8adcBhdoBxtKcvstrhDLTA2", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkBkaaQy3bQ9EEbeBv9n2MtssiQ6k8qAqikFawfA3xEny7kZBAmY", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnmAgFjC8362nJjuTgEBTmmnro3tkQYJMuCBp9bgZ1yQy7bZ2cSS", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkmHX7CkK6JxCxr6WQi1yFaXGvJpQfhCJuiPURDkhdkVtcMZ7i2P", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qivqPpEqDM5o1w9F5RTPPAeuYpb4XDjQSYoUy7WH1oWYCgtsSnyd", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qiy7TuUN4ge2TjaPkDcoDabutWxRhCJvVJjCfyrFfHNSDbDSkrVu", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoUPKB47qAjtrYuhhLkP6fc1A9eV7bo3MokEaqf2kqhX1uKBDvMt", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkA2qEebyAXJQnGiWdDZxLpqNrSP5bcgYWWrr8mvhmXMxXRRbdaQ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnNveREABff25BRaC9VJqMo8LHyw6UVxGYfmU4R6EWEzHBXQVFHr", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnorj4ougpuMFXKAHRgAfnAKFrqy1g8SuMnXvhFiaL8mVPffPkNS", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqFubvDnAjv8uQqXDeYMb1KBRK45WK2adbET4D3wJcou1rdHZkmK", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoZCGgB2PigcoqzebSMHEedXjf3RCoB6PDwdziBagPwLfmKeBq3e", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnX1sR6TdeAeEbMXSRfW7mdgwdB2mweMUVKtrXCgYhs7RpLprjWv", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoojfwhKnUDMWJvi3dLmf7XZRAzBanefWdg868V958zpuLfRbsCj", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqPQREDzLSyXBGygmUjVfRKhq1MN1uWFXfQy7aejbd1oMEMpWmxo", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qo4DTsYm76hUTPwGVuXNHT8y6hj4oML4FvqE2ktSyHQYPF3wMFTS", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnSfzdrQTEBi9PGppkkACZtaAHCrUoAAe2NxajfyjNCUbFvuMoYa", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmm3WVABb2ZDtv4wckaRHsBizAbndtE2EgPeAxnUNr9ps5jRthR7", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpNqtw6ztA164bmS7k1AuJoKyPJozPwG5vvRb7JexPQURsNTeJae", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkLDEUzJEkanS5GjyNLNwxaT7tU1sHVFsGHWWWYnCXvMeSoRSCbn", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qiWLpZ21eDyzdrt6agVDrnq1W5KZ6ysHZtou5H7QN6xLathctygD", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qotXH4rGsGjjdabQfUaMrVE1rPgg8dJWCZnHvHrEEmh6oUKsK2os", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmT1XhHJMmLS4BLez1Y9B6SjZGQDQyDTFV62HwT6Mot1P3pjFJ9s", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnk81GBtBdbDYTPb8YLaR8tC62BMneyYdrrL4C9aHKhZHMcn2c8x", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpEnAv5RezreocQRgCUrti1aPYEfPQnRQTLeZzmnP7qXxVa8dtob", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqxibb48oAnN8zqnq4xJ5PsCaLeQSVr22eMZW2RM2Ctj3p2YVfSS", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qq2YEXFZN3LbD1kBmB63fs79YU75XeUn3cwCxPhEXUfj3UjYWB3B", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpDY6N27D2L5hgqCAjwBHoFV6P9MU3uQyyYerQFAMLMChjc9Yd9V", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqXsh48ubR2aiTWZubTtEFwaKDMHPL6qQjy9jsRWQmYT8HYQaWhf", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qph5sWEhLFdRifoFv5JQKryeDwzAU9xSDtS9TJG6PvirmuD7QNyb", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoAJfr4YsmsyAagBvpc3YJUAKSq5hJhfeigAS1XXdHWLmCzk26zF", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qibT71wmDbJmzXxRdBjijWnnkW6o8SF48qqmqdEkTfUDwGiRmibH", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoU3tiMQSpvwt1zK7dPUixLkFJaVAVBbUvhGpDv9amjjcJFrLL1B", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpbgz4TRV9ejb2UMFV8bwXAZoLFGNBNCFxDSG93TYwxKcSPUyJ7Z", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qn9viGqfng8kyKJ5BhZ8MsAHNHaqM44dqPvF63N8KcGoUYTw2iJS", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrhZ8LQ4zouG55HGKyfpyn4sbbMB5RpGJri3WeJLoYYSLhKzUMq6", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qocN7CFnD1TYfVsbmtn2tnZFxGp7h946ujAEZcPsavaW9EKGCnsU", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrTcsn97iGbzBVVXwHzRNerui4JWnuyMaW4nmKJ7t6N2BxpMh16M", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkftCKEG2QiaiPrGEwVAEAtmahiRQshTGzjr1fgzfwkWvrBhvBkZ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqndgX5wFubVGtpm75EmfBZs35YsHDQNJDv8R4VBmBwzF4QEhCbm", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qo8TKnhQuiAnhSgRfmvRoCTQa6CCCWqBDcpNMAUAqq8Y7181HzrF", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqCbnnksVYsNXmytAyf9zv3Pcaq5tELLrrhp5ASy3jxcvf5sjkcL", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqPz1PbgS2kp2XFanGg7BDHsXvUXHXbL6FhCAqxUP5ftF8z7hyZT", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrvP8B2R6upywUpYn3D3QBH6NhXhZsrCFLcp1S1D5z1RGqtZpgJM", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkNdtp7GboKQWm5gVadP8ME7rcBnnxx4sDSTpcoxu7kLYVTDgDuY", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoswaioW2TDUhovBxudZTzoif9MedBcfgsfrVS4A2Tqs16kNbsKs", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmgbWCsEqLDsLGrVLEfy3KmHcZK2BSczmPjrbpLXR7YxmhxVV9MT", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qp6QSH2Ku1oQcdZq88dEAqEgBmoiPQMCf4GrXDNufDui5kHhHfQB", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qr5Kt4hKnibj79GVXgNCXsfcGQGEVYZrxpZfWHVD3eb2GiqFK6oN", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmGGeUPgy6ABtNuaoeYEPLraNHVin2xHoXrf2uERTaV7PKjWEtAj", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoqht1H1vCLu4sUYNeE9VHzSNmXWTdtE4gX9aMn3mAQNBJgn3QUy", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qk27oBVZdfmSBjjYaGXsSCU26oGMrB5aWxjH1yQHJZfCb3oU8ENE", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqz89eijTgRCjXGCe1ofiTUXtEYx6PaxX5DFAua6icmx8W3b7Nxh", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmapTg39TXBwKkwuCCoQBGArfrse6Y1GRgnSJh2JLGnJdodRkUtw", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qq14XGEtguxWhsp3GM4XPqzyHkdiV3a8fbSa7GYdii4QPDuYcKhj", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmBPp48vGvqAJ8iXNqvGQEU9Hv8u1K7nCAtw62e4v1kraVDsi2GL", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoif4YSq4aY75bTnNHq77dmvbo76wFLupm7BHcSCZsHrAxY9tQG3", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpNjF7wN1xFFKL8r4dr1rK6AePqkqKxr9KeiBJR2M97gmBNJ8bj9", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qr1go9pFqFYwG4FmMn8kHTMUFhhP1acU7n87Uu4WY8fqFbRDvi7V", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrXnKpTSzESLc1Fgc6mLY6EWQopn6GK5mu5djCcckALWYkTTMaTp", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmCQVfGw2H9RobPffTTQybKueMnd4bmg6Rf1RZFpBBevE7DRmxF5", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qj3Lg6xjsp8q88YgZk6DL7dauMXSX4LnTHkiLqtyamRYB1vvFd5y", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqg8SnpZMS2netveMjnfDZdsUhKu7EmbF1h5Xy2Nj7RC8Sa5CYde", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpECew65FRKHor8zFRSfCLGNWimtkrZqoQ18rDN9JcBG7scthMdh", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qj4iNpXZ147rfoskg2J9cw9QHKieXxs2X1e2aa1b9Jyak8Ciyheu", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqydmoy3YvhTfAkE8Cwtko6i4vjri2Qb5ytTcm2n8w61cx7m6sU3", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpoSyCxhF7Tp22iVxTHPzCGt2TycwDDG4JRLoBqAA6cEDSX5JGtk", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qs2iPXC9o9xsWsL3p7S6ZpbGK8ThrrBv7PP6Nm8xbfvAVX8AeLbB", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qobnJ1tRXheQWQZHJuWnARbVuGTh5sMFfCy5AgoTZ7pP5yZE1YUk", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjewY4P1yLVJDCeSnLAkBXTmWKxPS3RRjLZuKfj8Mu4ZbcnpCVR5", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qitNmCDoev9nbPsH6N2KYHCtAooW8r7wsPdSxJoF2NcHVpzp4snK", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoV9qfxTkU7FGqiGHzTfCMVtKjLhKw7gZFj6P8HyrdpqZJu1Nppw", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoLNgFvskny8sShjDqXDQDvmDZ27hUpcxZvW6ZPKs1csPymjnKSS", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqVJDTfK8kTRk9g2yGgqMSzd1gCFU7pfBudyvtZQF27oF2KWkBKJ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrU3A3th2xN5f21qEZq6h6jMXTFHWgS3vUQhD3g7AydS44HMQLD6", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrLFooHbPE2wzdSueecdn4BaiXFosJgTHHioaZLey6WCiHWPRJZt", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmb7NJxiMLSK3qLepCE4ZPmbjU1CWB3wMnV35Yb4dvg5V9N8UoyM", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qs2wJyM8dj3CKPtSxbXr3XkRSK6fKPxC1ANiXJuSfc6UqpUuBkV4", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qn9usEGjKG5vmSW6pBWQJpedgrifhavhzMGfDQAYYCU7KBA26Uao", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqwqu2VMcKqxuwi7qhkUAKqXXDQnYEUaqpaCXbDC7E6VhftaUphQ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnDYXfcTAHxFF4WgybG2fjV9U9C4d6k74SWic4fUBkauRyjbnGyU", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qq7hB7JA9USPS2ekqvBzyRkiC8BvC8WiKd3s1pnouz8mvnBXzci2", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qj8PZWLSF9zLmMDMgm8gTPw51aaVVX7zCPKZRmjfUBGMpLjevrFn", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qizTRdK3uUcCX1n39y2JnuQnYnzRE5HMPFRQGKcEdJEsWpAUphJE", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjhYhdLN9qDFjr4F5Y7fZtk2EE4GpGymxsckPLPmMueQNBw2MWiy", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmpCr1uCkpbvtJGNX92GebRCD2283vqkUea7D4kUgEVPLG5JGa88", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqgPFR5RnYqv18XGn28PkHqmqRwiLYEckebYCCBEdzrt3dxmBaUz", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpkyEuvBVQCyFTrdWS8zAHS5DiG88XMZrso1CwVcTb1Genim3oPw", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnRvVKYJPp9NMbWeD3Rg8PzmBDWMFdp5fH2a6U8dnt31m6tn8xLh", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qiZhz1AiTevLvkeBarzqAbmMJnE9AiUq3d6FweDVPjNraM5kqy43", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qj5J4QViLfmqsCKaMUqR8wHpSPkFPMzM767aaiEUEDucRKcJ6ynb", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnSwvQPi5Sh73UPoXvNSe6xwkFyYrtjLtHmvqV5rGh4Q4URFQ3aa", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrgGLrfkm2WKWAyVvhdJY6yeyuyesnvw4ESQfraVeKk74PkSiCWz", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjd4zYXSkUHRWdzDaujLMHPe6SWuY53mhcm9uBMmwMVSVHBN1KTF", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qirqsRtCck91VaMQBPncVjJWUrHjziveoz4wNLUyZHAYo5zSC7ky", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqvoqBg2aw9yEyn7xBgXHPtiTdbUKyhVpwibnvEqhMabJVDpwv6a", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqYk6qEWUPWrP2dnYtucXndJaLXzpoqsb6hugT3FGfzooZWriLXc", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkePb1rRxEcPJsNV3zEHHX2m7h3yMoebMJpPVVaVyniD2kyxoi5a", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqdCqXqVpDrpsTHgQe7EHYE41nEmszgoBdZq4fxBHjDGxtSVosAd", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqrRKKXsiQsz4ktfwYVKRcK5v9dVDLizmu9WChGTaJtyhmfZTd4R", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrf1NcGLNexegsYJBw4gcd2HxkZzqbuYPguCH3osaieumMmZDDeV", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrHECKibWfysuQnQAPsD17jfWEoPws7vAGwCyBc8TBUZaYMjc2Dm", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqYVa84NLiiKmUZYHfsfeso6kDVCTAbuvhFa2jEa6ijBzsgBv9wx", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qiyGJujN2cLGftQaromBrYyk2fXnv76qHiWoj73yGS3jNjiiqZjH", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qq2dmc9UrK6eJgM6Nr43nNvhHPQjNfEix2YdbBGzjvme8z1iiMRN", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoxj9bb9aWjueN6hwuSdoqx2LrUxQYhtP6Srg2f4E5ej42G5ARvY", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjUq1gDHYrnDqNbkXLnPhEEFnwz31zX3eMhx6HNFinfDdW1sEiVK", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qn6vvz34c95wd2KpAemszMgemncrmMs1Pq2a5fWHQuykhqV39o21", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qknCv9QdyAvt4Te58oo3nrZTacpEcjpJg1MV61r94h5rDPDUyPP8", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqTmh3QbwyY8fQg1SzTmj9AqYe4d8xzzT78ZtTzafSTLiPXzSEtB", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmLj8ffxmfiuxvXYwk31ozmSFwxUucmCuD9N4PgUMgfNHKQuxKXT", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnE8savmny2MWG9iXvffjANcAaThwvs6XWWdPV8MsnUcAFj4Ysxf", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpW8TNQKQC2DaBMcV4WNzwLz9wrdGrPNK1AucJ4R37yAK3VbV6as", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjnHcgmVC8qGTyEPxg1sFE2NzgqJqgr7ZZ5fNQEodxBExihfiaB2", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qob9rqFW9rAQF4zBoARy5ZiSuSWrAZiwA4QB4o4NSymMsXpwueYM", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpQ3Jq4mVTtzsPnk2Myqp2APE8SRtMEwYPEAAR9viF6xv4QkhquM", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qp3p3tjPXcRBVLWzWjGn93cBQDAgbz1Utt7x6pyYmdqC6CF4fw1K", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoKX9qeeBgC69Xj34doSnKdyd1MJoFahm4m1KgBAwnrtoNY96Tqw", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrWwAhJyYte5vKMYhodJ76jroiJnSzvDEQuf3WByg8iEazL8mSWg", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpxPde3yRgNcfA5Hkx811DADgSLcZdUqZvo9f4XvHhoDq8iVAAam", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkRiwqe5A4uzb8ZeqbehvX4yN9So8qV6bNvkyHDu18jPkH8Yqnyi", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnGTWNHTdhcs84Y38CC1zguXvZVydNJHxFTqAok2jaKCCgZ3VGpP", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qm2z1fjzbAKRXnTLdyxLUv4tS8cwjdHcjZVDkB7HmAotTHWshHzt", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqgb2dw2riQJR326uTFiHd71ACJkVCatvxM8HPdf3k4tcpzRyrMn", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoDYHPpGymYRiTTT1TNG4sK78LwiuER5JqhdqCmCBB7nfdxY4fwU", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkgTNbSbXmxUdJgQWXNH8NrmYJFypMSV9rRejo5j4GMWkmK5N8Dx", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qp2gcyiELctJ1ChTDYUFdvurA5DSSYXWAch3Wkv9bHixjRis5Vpr", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpCVQnPhZLmQhPsnDcJNJyfseNZ1LZXG8YLPKJ7odq9ntCPjjcMk", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrAoDTqRwT16U7jm5aKfrLGoARSHk3Vn65i1VspA9nAsWhBdViYL", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmnzC1kkCjskcSVnKgLhHte53JHXM5pAsGSfVeEtgAHp3H9PT3Dn", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmzpPoVUapzKFvho6uqs7CDxMSjf3ZYToGAp4mc9q1zySZaFiM85", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qk6v5FrJkbhF6vXxA42EMZpkN69KfLkXUkpLKjwNsHBKsMroqKuW", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qp4WsJgtfk3yejSTPRE4fqXndNYnzeSMcpXgkmsFoS9SAhPY4gBM", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qje7Ymos1x271kC81xfXyCKpyRzixtKzQ2oHR8wp4jEjZpE1wj8B", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpvJSKTTaM84qghtEHnfr9KrS3xsiWA8EpePTdNoRRih4fxxzrMf", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qouVf3nUVopNRMR88Gtvkvi9RxcLfezNGqFAv2VgAKQbdJRyNAmL", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpkytAYehJWFPPTvaZ3Syohy9YPwDZhDnpmMArRh6XgCKVLynv83", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkG7HK91L6tWTiDneQXXPAApEUPkLKJyMwaaHbrbkB2Ka6Yq4BT1", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnpGcjDuvsRLAhANMSQQGx1YZ9CtLZipbgAtd2ixyVJxac6WvXMt", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoWkHRd8V3DNBCRiGFtNNvr8y9DwB8FtXFZ8B6C7xLvuMhxFGFXx", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqXyUYEGibxiQ1sXJsttnRkcpk3JLUqWTj5TdUfc1EjvRk9DWnZq", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmedXcynj3DX6Y24pRWabhDvusMhh5PAHFdGEY72BEEv25MjkuWC", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qizUXdDpvP95NzhjzaiVdGKKK4azLnp3BLj1z65dHL21MRRCY14v", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpyqmSBg1Fp9K1Y3Em9ByN9HioiJPkAHKNrZ4nxX2oSiHsi6iDbq", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjXyRmfWrZzjyNCSLK3psniC5XjXAJCE1Fqx3qitsMqdM32tU39K", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkv96xsxBNpRpSJL8PdGz9TbFUCbnS6ZDyMaoa1EtnAgekpyXmQK", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkm7v2NBSU24cfzubfvqTq74WEFjRyHhVCorXeVgsCeXBazxqcbX", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qq3gs9JTPzjaQx3s1ZcBYaeQDu7FXifjrXtHtKupmyyjKDB6VUjx", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmXEWwSs4H9K3mTa6MuictwgaYzvpEo48mCSkYXNCcK8X5DWrn7E", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qn2Qs6d2vCFw5ShkGUojmWuWYYAVUjGXRBTvQBZwZhLy6P2GfbQ7", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkx8K9EMAEjY981VSCdq8Ng4oGqq4x5pvKioxaMnnKK5STW28upr", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkei63Kjug2LBq6Q9SU9sKQYCkpiMXrGfHEPr4u8vksTPV1dPwiM", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrAZxJKL6Ziro5nwrH6U4jvtb8m5WxRzYjk3cN93EGcwFTyUymzV", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpHWj2Tt3hM9vheA4jwcKhYFwjRJeWBmMfdgKCgNoSM8EgJw5nMJ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjs7vZX943DzrZsR1sn6kAgSLVigJrS4hnyWntUKPE11x4idB4RR", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmF5Uifdnv1G9QeUmzU5jrZmvYB92dvdFrMXFG4qSWzBawE3fmAU", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkrfTZ5uagsdXW7uFCEPTBWEYdRw1TM6YzkJgCC2BEVPQMyxcCm2", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkUrz9gB3dxQ4t1LJ8R64LYJLZUyNVvWseFhG2MqQCdSwhdmhs3T", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjoSc9AJj4wJmLw8yhJnw3GPfMLiWZC47sxYiBzYTeVv3abYDGjK", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qipqWXGqmuBFQJsdd6ybrN9guVZSf56WXmuwDB1SjSR9fqdqxnp8", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrWAsNmWKNiukHUTrsuKLa41C7qWWqSUoLSr14bZq3WGsBCbvAyR", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnKJjxMz6zR7L92U2wVnK4a9HbXS36FxLkK9S8wAn8sES8ngEsB5", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjcEcbtXXETVL5KiNPyrvsFF9JuEEhCQzWvCstK1LJZEqiQ7ptyX", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjPaQ2vbTvPPTFBYWRvArbkNYmmnUMVSFyg33AYCbHeCYtXSP9Cx", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkMhnPSmdE4xYL6Bq7xf2QEZWt3qDeATepTPqNMfqEbWgAwNd9hS", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpDweUYN87DcWNQ2wBdwrs1UQQdBdp8jkzpCZFEBtMudRr45KxVm", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpg2gz3hYKuUTWev1wNJGcB3iEbPnVbEraukxsJ9r37C9nDEGx2X", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmpUPPuZyDSkTUGt9NCFTabg4RWm23Hnvzv9UpnExj21vBwAX6Dc", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qp1UtRuEwww7MwybmLdEmAvExkEN9SZpzRWZz4Ks8EsHuGuZCsQJ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoFpVD1CDscA8f7rrMzqyecH9UcTcV3o3PE8bndHEM6nVkVPW2sP", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmPK5eo4T9jUrPm9jDUGXRcrunymGgrQzFddb8ZPARQnFHWYstZa", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qj4tzc7gjNtM4UEJyjy27FKLco5t4DbBj9HJpFjY3xFkguiMv73X", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qr5X9WP1SgwhnMfCchwMv3eVeFcTU9hKZJYaNGWpKqXnCgxirj6V", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qneEhQo1twEFbJMvWNZHPqeZRNn9t6kPm76RfzfRV1aNRfvfKSRT", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjybh6T3FsLU3EXsXtsXji4CaBxgUarqZVnA41rAgwaDctRsYyEp", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qivjmuStcRqfNWB1PGKSwAPRDNoooyWdmRTCNRJGFEu9KaC3PfTJ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrzErtjiVAyz7hkr37n2JxSxBQ47VkKPELLtwHLzZX24B5FE3yFQ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qn9p2XkcM66iBUv9S8XAXCGJpDkWmANXRyv1sYHoMpgkt31CW38H", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qr8EhwE1isiVjvaRauZRQfhi8SuDvcUxnom4cT2LhUWRyszTnLQP", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkc9KHXWCcRJ2RjN3SQjtNUoQbgvUdw9tcCi7XRQ7mZtGu7b2Hqq", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qraVo5Vga5FuMmS7UorK67yHqcNqC3Nf2aCUZydyvW4fJgaMmnX9", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjwYtPWJh4qnpit9aAeCcVFrigCPQNjjbZtuZw7KGc8yCmr83Dja", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkAyTeNaoT5eQEd6hD6wsCmMDLznXswL13WgmB1nAi89cjEk2hJS", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qm5LVsAMnSTAGwTwZV2U4dEx6JJpAsDoUMKpZ7Kt5iySHGZLknHk", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmpGxQN5kMkC7uEvFi8MLFHexcSmrCyQc6RgeWKgLBTVKM9odWhL", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qiZkETYdFDjsKYCE7unzXDumkZp5oNnVrReCuVnR29tcuSY55Le8", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoZ4VNT1on7Thb6aXvtHAdcg8DijKMHgVUidHCBxehdCzTtqNarx", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpgkioHZEgrC5ug3DDgyRPnbxj5rnfGEF92AY86obMrRiAwqEmyc", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjMZRry2gfxRnEy9QxpjRKhtUepDSVKeuwi4HR4ncE8TfGHt3idd", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qj8fE7CumJPP6mr2Zo7Zownc1AFTHbgwSRZPYxvLok8uG2LAkMFg", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqzdMioNHitu3aULkgZAokeSh8yCEnf8H4bCjqmdqbKTK6aTRmXh", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrx1TsM1aUSaN14VM4CPf3wTMiHoLuWit5wBTNMhJwP6jdVbn5UK", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrwDxofBpueb4qsnCYtX7mXytQu8sAxzdqdHFxDeEm8m1Troyo2x", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qiyf1s2nPBpq4zhqkikJxhAbdYSNjXNKxWjDL3izyzRsTDFQLWxT", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qmu9Pp7AhtQgMMiifUBwsT7N9H3HSo1oyySYdYKxrWWyUNF6NuBr", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkpbX99s5kKsfDcSZ3ZzHZB7JWx2NbgKg6hqn6r232TmTyihbKT1", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnHjew9KdR1AbwQXFMGuJg5ggnxPJZKMVrYTJFm3cdWasPZfXNBC", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnuJEk7SWmzPWzzXHBJUPvsaNWoQzoyECnpnxryLUmtodTXxAHqw", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qq5fZJmw51cGRoCwiuaSjyeCxXyRrQtosGeVeuC8W1fKw5Qt7cmz", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qnidWEtXKr1k4tozhTtxBfnqjcaoC1ozwMYtqV8MktBRqSBTGcn3", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoR2rRNVZRsWKzew3b2BMq9Y5e5yvHqMJFYnNywvVw84bAGkbknQ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrgz9mYLEpTADhPdi7UuxtMRPYLmHtpd1uPfHxTSmexne9fgVsHR", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpS47aVVu3k3RF2x7Vp86yYXq1QypbeEJMx4zQY9Zie8XFn1rGXn", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qp9LA5ynRYJVucaAjubYdvy17dKwZRvf6TQuVDgW7yWGwfp4o5ci", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoAWo7RGbLuKtN6Uz8NhkrwsaDhqpRGTdTmRJQSZ4C86ouXvo86K", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpF2dLXFBgXzopdurXCphe7HyRaYmkk5H3NLicFUQwVFUQUWeXHT", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qpajUPRnD4kTDWdbF7zkPEYkdqLuvY6AL3ygwhGi59rMseaHsbrs", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkN3iWMFSLrYQYWKZc8rFGZgKgiSGqKzcB4PCS8EgqFa81JBSu6S", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qry5FhX7Hwn35zGB4qSBf7CKmHZH72mSquUHBqUa1G9iixBYMgoX", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjZxnEmaS8fpH8NWXb2QFHUYoV6e7kt1GE8cse36G9oZs4LU4ZN4", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qqWFkWtkDUYx6gd73GgGWd8MtnPuwUGGooe4qwAkjHZoRfWQbY8t", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qn3KZ3gpwzYa6YVoBDKb1P7y3UWCrbbUQmPVsXYDsbWKC1gEhkpQ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qrMfGwdU1um7Wrs5Bef4wQNWzK9fmtZiuQF3Q9GcZZzSqNVyQarj", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qoVzDVxhWKcGgF6BAY2DuVVZZeMQif7vae1y4JS5xjwvhtSCqY9b", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qk6tCcBQzJmhnoAyQ98oHj8wayPBo73opg1Kxsu8XLFzXFpBFHXS", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qq25sbDBp3qgfwipu7jFJqE93Z925ByNVNHWxnP8nAABuMrHx71g", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qj11VSgjsurw3TESCNpQcHKT3agqzNnQ6nKk5JGLvzShnBTjQnNi", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkYNLVKVP1CsY1kvH6zin6XkZHo1bFbEXSBRkEr6wZWSnWUJLNi5", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qjiot3Ge5uPxBSGw4bibSrUAC2M5vJcQiDUNED71x3uxJJd2YcCb", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrzfUW66xTsR7mAaRG98XTd7DXqsMZRKrP77PQPM3Vp2BBnP4x6E", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmX5N8DcYHFBjFVNLubZdcGVLQLzrXKPKY89d9ip56RRRdtfYFEE", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqVYibJfFYV5Lj2wsK7miGYWfnionafJLsfMdESCRJRkcByrW3Xw", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qomgeMf8jL2arH2LH7Qea3VTuhgiJUhR4ojHiyHgfxk1ijtyfm2e", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qicTqE2xYTk2vsMMYp3UyzuG7NX7BbpYFJhwubxvNQrpXPE5LXit", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmXqjUjLwYVCwLbWjhurWk5GhcnmW7bsYeSSgzb5y3jD6JTw9GEC", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoYyRwYj6wb72pdSSwnqamv1UsigHN7hKRYobeeTVU6FjJ35VJJr", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmwhiy9CLDoos42u8czZNbVDDh7GEmGDKEW5LNzCRX1phhUXurgt", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qov1A3GVoeiNHbo4MDsGbSrCsgBeKfmCNTM22Aiws8n1Xdj9H1UD", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qj7Gho27TiCvF5dkv3hEgZ72LrJ8gUsKYALcBPicfizG2iuWF6Zy", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoB1g2pX7WeJXrKMdRtfgWx8ZAcY4gAzWSRQF98soy3tBTpa9E8Z", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qodxCsvp9aU3RdDJR9RBhQrCG9JNBh8ndQs86HPt55nmqEhh2HfR", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoErtfHD8YGvdSTr4XZD4e5a251UPmeWnENtmGHRYrP6ABrxUkRm", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qr5CeCwtDWUUpM6a9mhv4dTgixBmFPbS62fnVZWK3BnW6o3wm36L", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkySF2onGW8avzYnDJ463zgFU2EzUqhpUC94S81cpvaUmoKJTeJ9", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrFx87owV2rZmE23WHjsaccPicp9czuvng7MSDjG6NKs8WR2NFsM", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qp1jGvp1n4acoH2KZNFAdMPsh3dPipWP9r91gREPG7nRftjUNLUn", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qo1UjJjWg1tnJEpgToK2eXpJj3ZpDPjUrYZK9qgCv7wWm8fG8dRa", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoX5QP9QNCYgLG6Xb6zFL7nodcSQFitCdBRaURRmgRSymY4TtbRo", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qo3wcFhGgXbRiDXqusXQJJdvUHqTA5hbM2AykuF1Ff3enjikFift", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qp9eyjk51sqahDZHqEvaCSehJB4ty7aebGj3rs5hfuGnuM5L2ZZX", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrJ82uigFApNGb7CczRRnHTHcXYedQWVy376fYeGCiqdRAcz65kV", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpFBZWLqZCmovuTDoHENAwgCiZEVafHdVDZ49cLPNWwTvMskBzqr", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qp2JZwc9pwgQTbhiVzPgjmiXYPv1urVrBd3h7wQHrrxFFD3jJaxh", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmqns6jTTLbeyEzNVrg8Hm1XwEyRfUJBwobMqPQGRjBMFD47EZro", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpuwS2YKZ6PVMAG1fgGvMZv4cMApyKU96g5Fxk8vbbDZX5L2Z4Uh", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmRWKVhsY5FMs8bXxJSS8T52d38g73PkQ5knKk6hrm5e4nQ5frZS", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qk1UDxBg2xtCWTETUPpKAu8hvVsXAzULxcGNwhY9yQdMLkBk97qD", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqRkMEzNCdfqGagdJz53yahdsoxxsuMzAN4NQwgq7ofQo6afqGLu", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qofTBChtLyVj8RthBg9aKp2uYLAtBrf46AK18aSEyjhszeM4tLVv", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkV9dadocvUrZvpUSPuRbLMQX4bw2EkKfyJtkKHwJDkkC1tTjzja", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqp6dRRud16UtWgHvzwbjPinsyTaTWWmQpniPnDsNPngRP756Xwz", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqjcQFWizSEryeeLvriXwBZ6nzhVWxwsTW5Rx8RMqjpkvTQWBF5R", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qr89eR2yYhcVcX7ASHxeeCQv9QUEWF2H17brJK8cc9sv3M2duicG", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qn3pDjLGMvnjpD2p3VD8g5KcWQHjYjF7bkGH2fRnZnCe2GcGJRje", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnXGZPqa9Kp7wqGurZ1KaR9kKSSoRZR6mMqTdFVELh1U8c4HvYLG", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqdzmZR4z1Zmy1igPXiM889HmzE4mQDkzBqJiJrmMYyH9SLotiqT", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqzwqMBcwccsJshmKioKY8WrZYMXowV2cEV93jJZeE8UPyTHXz9N", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrUTV9XVHvUvfacK4sNmcRzCD6idzDcCX8Ydf7zkJQonLmDcrZkH", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qp9Z2SF6wPN7v76SJiwy4Dtj6aeTbekU8pWGWqeNSjzTrQn75U37", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qiX8eVzma7e8Ee3KCRK4TQhMKxTieTM9od5wdtDQgACeLDobCHRq", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qii5URZmZAAxBDSCtJugFPbjSUTLY4DD1AQtfT8S2dodcjSCUXRc", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqXnQxYVUbM8NQ2UG58ghum2Aax68Bu1HvSBCfU3NxjTxo4v7osy", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqT8wjdsjRg7KUEFdTwtr87mxFWdjTsoNS9E3rKDJXXNKjDWhCF1", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qk8hLkuhTkMti7W6ZiWpGYtoyUvGVpQstrjMYnLqsX3ngpvjriJL", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkhBiAdmUd7CfDo2YQ6xa6UmyM5wwofx4z1dmD6Qz8GL9c2qHAJ7", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjjwmJ35Dvg3vGHnj2ims5pgGLAVV7udFDnmEWRN7CqQQTygHj7Z", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqeAoY7RoTHJX4a43tNKYh1uyN2WffwAnvjfAevm8KAtpbogE8ne", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qiqTCLoxA5bJCNyHYYmK7D3iAwvSdyhghsFYXtBwCaj8PN1H53uN", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmyHTdx6dTLYQHejvZ2E51uteUjQyxBuassnti1ikPSEDrmfAoZz", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqcC1HNmQnimzu7zHerQx7LDN4t1H6mCwcpqaJ8P5bpqBo54fNvd", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqJkgRNA9Zr9KaE8RqkgRFm35b1X77CNYfpvfBhgPSCHe6iLpWJD", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjwMdEBscPtvZKxeoP5LWkiYfpowanYLGQBmvL1zt7HcFLLHHy5A", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnuShNmd1zeA6rY8i3XbdQ5VngrnQNvzLJ6pnAPCLs78RWXpP929", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qohxV3c5Xq8VBE4fwMEgap9BVcn3EcRh6megJQb7nVXmaeC6RwXB", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qj5qgzg6fuWRzXiphdHfEhY2TjxnWhkcUskjbVTzaYtvqhKSCiZD", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmHaiF6CXyeWh6kgxVTnANyjvGJTtqmgwyBjXnNN8K1WmMkvwnes", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpHoj8Qj1ansSCcSw9bwUo5g9P641EdeEv4ghadRbNxydjGR8FqG", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrYSNQT1sajA7PToaSsxfz3ZwtzcMDLN6QvZHws73MKKR5AJ3L97", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qm4SisRb15BMsPNcc4VukBWfpHWaWHFa5ozcHbsnMvcqQoZ236gk", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qj3E75s8NRoZJGZXb55GHypVyBAHV2ABcp3Mn3UnXybyfqhAn22X", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmVQYxpNSih7ZwPswZAWsYpVgmtv7TpKeHTDo2rzvYu2KcPSY6ij", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqNUZiXAwjXoGyDipiicCPEaczq6BFpDSRdDgMAwFDTHdE36Vdyx", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkDFS5a6xsuc6z294NC8EvhBaXCdxduAWnjJHZH4BsfBpVNmcE5S", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrtNa3o6FhUohhEftsx1GB2ggrESndkEwB3obYew5xnrZK4GUiE1", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpByfXKPCkEUU22f5DHEMLMJQxApGRRREeYaxBSm6TeWdrsqyDgD", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqRjGuGHYXfTcXVh6zwJqmwY2w7xLkd8NRgu1GKZeW53CGH3DxZC", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnKu7RLsLJZRAs3AC5gYMiR5rNwWGiHS8HXuHgwMp6Vgeq9aLcLH", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qk3BHb91mmKLFz1S9Ar5rGwUe6zxjNdwvkU5UFHruWzhuy5MLvmF", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrVWBN3ZCzvm1PGUYGynWQtauWdQTt5SnGFzeZk8Zc2r68ewrooh", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qohARVJopGHMA7n8UhjY7wRUM1Rc9L57j6RLtnfsyGfLv9BzDMCQ", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmAq3dy9if9CkDqyi83DoPPf3g61RQaf2Gu2WqGAJV9QTyfKanoW", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoJDe5ZDWvkeDp6NGYCvx4DQCE7pt9gTkPYD1UqA5tf7sJmEYn2F", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqXQ7Xp4XGCSbq6hsSugbPM9BGri4XuwRbMhQAi3CJfcNmAEhCT4", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkUGkcahxv1MaFQGpVk3yhsKBgU8fA1muwgXMYoiC72uo51sqULN", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnGzwqbe6Z43aD4G2tW56PvEzkb1CjnDGEGSofaX2EMW1rSp5Fhm", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkFnPDB6TUBZxbUyymmXCafbjNLAXPSLXUNKPZUv5fCpDu8DCwcF", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoSxTh9M2dS1s5hgwoj3DER7EVefSTxuUHsRtH74V25gDU2vYrix", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qicyMDpkeRfuHG6FMURPjhEVSbqaJ5xBWsjdRAM3UPFyTyKbDFbx", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmhJaBm4AjqbUiSrZKohDqNEUqutKtWvvNpKzmqvBqkMUdudu6Qn", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmFyuDETC87JXqRxAeT9wPzmfrtfMJFEps3DdjJoEnuJXRBVERUS", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qppG8ZuP1rh9oR4Jm57sKWeL6Su7F1D7YdmESabbCyhgxuNfTkW3", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnefnGTiHckMuhcNScswxiTZ44SrCaCtZAkBGJi1wkccYxJnCbC8", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qni2JkrgRLm5qvY6gohzeRpPxC8fNVTj3vaYNbC1HEpukGoSyDaf", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qm731FAHKrCPoPoDSqazUaBqcB9QAVmkbcnMzzfRU8FR12x9WqeH", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qo1xh3ffVuJdZnVCFyoQKZeRHv5uh4kcTD545yw6K224Y5r3DaCj", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qm8Bq3JG4tbcvEncKgkJn88HjroG7xD8VMXbTxQMEvGLB3vgeVgh", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjM7SCjRwCLcWHd5un8rJ8htAxDStigbhEXRBkNTn1rXCdpNGuTD", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnS66doyXaMhpPBan82xabf7nD3j12NBwBNQZKzVp1Rk3gGELcSk", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qo5eYcLewh1re2mfuZYXNEfJeXi5MjcwQDgp4ZTABw35gSFyys8J", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrj6gPNMrWUhH1fvQ5dr2rYKf2JzcLGVoMz1ucijiya6JXzg6ryz", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnLYumq91WC3tzyzFy6ME7nFepKWfaPzeocHCKLv8ns4bwcvqqbi", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qp5zMLKCi8TZAdKt6KMaMWwjSsitgkY2fWoNjxjjFJJ9keSND75h", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrs8Q2m14BfMS1bGCx1uy2v8CD9GoYYBjxGkp8d1zeKaJPwvkJei", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrcqhJmXCzE1h6yksQQ7Tqbg57a2i6fwruoEotKhdDNPhc82ZjGb", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmidFF1iNW4eCBGGuNPqUZSn23BF1vveZthuGKV86HNA4jBmhZ2f", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmV5MHBuTzsNizFPy8jaJpufa4LeRSr9Qvv7QboWJWAVPDGB6WWk", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkamYQqDfEx3adXNW2PePr4Wq2iN3LfTFp1DinZZGNyPTTD7vn8h", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnLLfLCbAo9GN3FzguSYCC3zCpwGRuuQR2CrLwTJZAsDXUNjChYF", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmjwM77caJFCpGZztw57vcFB3JwrFjPVDLr3aLXbqs4EnUYz7kgt", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qm7S3Y7mYMscPpNgrWroUZXN34k8KiNT9bqQMDgmphMa1fMUJ3pV", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjB3SnAx1JaREoqWYn1LixyRmUtkGDZdvE9GgVmUJByRn7wCGh6N", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmxCBuG3gczX4z3riaeUCmS5inGUH1XSdebC471wiHBqKmUBBcp8", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjzFFzdUYSUepiGCH2X8jQJNvfPXGAQczDdENuVm26fMVFpUTtau", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkaG4tuhJdY4kQwwUuohEv8AJxamqCX8B3eM7c487Wr2uRJwwadE", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmHTtJbkTJczqxsADXYates17Cm16n5oDZaitryPBVGK6qoMWDbr", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qo3ZRgGKLPmVJFirQSYCfNuj4Vc7tZQ6QSWmGngBxt2g3JMp5LYy", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qn7byx4jxDGcsGvK53DBu2woEDEk3G8gnvASdcaTKRNvt4oT7RKT", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qiYabevrvjoR6wnTL3JRM2kyMBtUgy1nPe3douixbzNVFhdZDKZY", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkRXeX8PxTD5zebxUbF39SUsJK237xP18AFoAkwWRX9WG86LHq4g", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnu5U4Z2wU2WdLsP1pNNdExJPb9D4r1Juu7MAxFeBhQqr9c1CaCp", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjoDVFDdrWYKC23on8zJQasxg72mLCbDyuRwT3RhHgrcajG8h5Uw", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qon12j6UyemUpb3BzB4QpaToQ6sowEFhxEzPkoYxAAXfu8A4shAf", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qimT7MMKYabHax72ZoV2z6LrdKGkEqwDMPpheN7H5SxDgaqtTev6", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjzWjVPaEEpR5f1bTSHFzbarP5MREes3yxaDzMXS2M76sS6VLfHU", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qot6dsuGu4yD6BFMzjzyw9W7SP35ruCDFtjjVyesEFR7yj2woue2", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrv9NyNBa2DUpXHKnsVD712c9rqTHmNgzaLTogb81xaojNNnh6Ad", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qm8nhYX4pv551uULXPeCuvBcTmjiuooJQi1hJbD3pv2Jexh7yZFJ", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpNhbD1VNYBXMuBtZdkfTSiShGtRfoxt7hf4Yg3QFrLpwADKvdUi", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmxf7TESva4pVEfXCNNmQoetnQzBrSiiBSqqeUaj59x5w9SpmtzW", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrSSNLtM7ZcMxxTfG83UfCjA6c2AnL3i7ohePS5ytqUGn31m4zFt", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qiny4YzW9UPmXbyxwQXQVWiK9jSjFokQicvG8B76Yqhp1jKWtGYE", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qppKqjdSmhTTqzTa5NG741pLuxzejyBiH1ZCKh3Rtdxanmu4Kxrt", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qq8cvLWLkLw366FbYB8qQJ3z1AmvUbec6f2dRMwurpP929VskouP", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmW6CUuv9sy1R9eqVZKRZvgvqss5FiybtoMcJp4JA6ejHtMkz97Q", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnHtCHrAnuSo5vZdU5DY5hQaFSNbAwnXcJ9cqaGURTrBRJRyqJk3", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqBmU8SFPeQg2PKZ4inv58VPqAbFQoyRbeP4VSsNKtoCpu4vPLZj", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkwXSn9uraeomXbJGhurZXjp4HJ3pvDoXkDYP7Ufyr1tNk2Pc4Dm", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkHBPCg1SemsRdoF3cEzPYyhMNGH3wPKMQSa7RjdoNSHxLk9Norw", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoLuP1Rq7uXoRgur3vNtrdhSUFUa2ipHg6HrUcppJfLVq5Pcgz5x", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrBLyFG53eh38yZuEaCFPAV8QZuRAKGiesXFHHpMHxkHhGteJVXd", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjY6WbSQmMXzLzGLjyfvSMB6YHKG19PpygeTt1SaUENSkWuhnb9U", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpJ53ReReqGYDmrHW5HJrVobR9FiUAnsahNB8dgzuKvZzesW3mM5", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qn4CxrAdmbzEA8W51R1maJ1F9HAt9vvGnZP7aUpFm9vy76D4bz8s", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qj3iSkpmuHLsvoPbmVAdpP2jgMNxfYDgmCqANdVkXfBwWrEox4HA", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqaZHcjxF6z5bx9rh5s6U6FcoaWoV6SELaHctuPT1TSGRa2Zsjy1", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnqXzgRiNhFs14UAZc6XLA3GdUtDBXvATTCKBBYsZB7egA2NMaZz", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrj9yiayWeoJRqyxuGcprF2wgqeh1gkuQZkixJ1ed393MXPwteyZ", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qisQgAYM2TQ393m8joSH6wNt2c7XobHiU2LyecZBzuLkMcSaQU8L", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmN2ok23qNrAYPUXiE9QT9zkAi2zYGQzDBnMmkTxUQMtT2Ja2S2A", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjR6ieV6RVy31ihGtALoAWoXfZn9Y15ZqYoiL1SCKbfTabs9BpAx", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrgmofduHW3yVsmaBdtyV9vnkZJQ5PHqXDsG1mWm1PRFbRLgjRmV", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoku2cS1N1vCBS9rVq2SADnKn83UmzhSRKsGB5Hc9VbLxZ24WRHQ", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpEykS7LCAwiszJLJNJJV48KZyFyvgEJU82T79bMy122GKnKcS8x", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmVad5jEi2G9D83B114NxYp2pYutNfzL5Fyfuubsbt4hgG1CLtmc", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnNz1DtcZYTMRh6VKrDnGLkzvfjFGnKqgY2aPQQmRQnzGMm1XYRC", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrSYbLCPi9kP27DxDa4qyFMyVnugypm5z9PBPHR29QE3fPztzcRg", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qk6ctH7Gytu5Lx45aEeBx8gRLUY7V6Kt64JQiuvcZjXuKQeRXc3b", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrheA8CexLDB2fadt79STxTFNATa6pqzTjH7HhaXQzkNrWp38eRk", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmujnb3Y2HrUdv7u3FSb4eFtWA35rVVfpSjS5VUt2CLebtjWo4vk", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoVdNmbsM5nmAYKJzCbk4RmgUMpSJb4vh8JWXN8GPWLkBASUttbj", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkQj12bc3C2pNqMWTcF3A2Vaa4HUKMBmDdMwsx4uPqSiaELYwzZA", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnihrw273XhycxznBSWphPd3XDjdM7Fwazm8NfjcHKPj8mwAwnpC", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qni9W7JFMYWC6eMpgkNWGPihFspBkZnric12P8GtpXU9wuGSptMp", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qiU6pkfnns43iuEYV48LDE6xVTth99zjbuBAXiarTw1CzimBUnSr", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkYR6ByNeTwCBGcx3Va1MLsBtSTzDiQqRGKJucct4iJuxsuEf2Xk", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrATRBEfLVhDFupAVSNvxAhX9kB4Bo9RabfeoKRgnqs6hQiB6PLe", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnzjDustMmwA49gVzf6JhCgA39uBvPwtED8B2fb2sV2jAq5tVzDK", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnBfP39a9vdChZochTh8Vpe8B6Vb66NcPzVMu4WnGgscorA1188d", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjuf6HnADDtYR7eh9Wb47mXVtEqBCnsKHpRZ5RDdvayMkwhegkWW", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkiRVV4vyNH8TKdZQ9nAML7w7aax5n4H1AQ8UKh1gTQsQP3WjVF2", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqA2m5jrvunJhCh17PdsXxtNvPYh8JJfCNz9d7KWBLtZQAwNS8Ty", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qj7YmhTSMnB4xWgzGYxcUikBcabfsNmN7SPnu25cqCkmrDPSVwi1", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjLHuToqKNW8rTicZgMPNas1zrWW9MT3Z15ZKkL7dKpTtisYrd49", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkGpUeRfR9oRKe94EArNptaZckxBsdm28zw9igsziz9TDasTGkWM", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqcN58azXgYAWLDPfyHjxK4DfNqaB52yLRRJniFaGZ7w3D4RrH9w", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoYYDf7rbUks7xSmgJPUriAMe1cPSSvkjhmYUt62nhWssjbMEUpQ", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjmCFizYbn5S6j5K3GhQqD2qK1j47SnXk93nHRrLEWCLUbsYf6ZU", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnpdkBBvSt4MMpVNWE4v9TDfmQ1Cor8aPJBeZDRpqkJD2ceHdoWQ", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkvee8enYwP5WcdCPyEZGLeYKwiUp3jVh36ToRPHuk2xjhY7AqdM", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqUfndwSqcWFX3Knyu86S1sQSdjwbJUsAdpGoizyiZfwwwArjF8S", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpcX7DsuLqJ9HYsjErpGvZGBLeCg49hmAuPR3Jf6zLn83QpdkdGQ", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoTmtmqaE29tLPnHBhCRRBW27YoUDDi1T9QUknuA5iGJUYincwu5", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qk4NY81qPGHXux2BYXx4ft8c4jxw2zJ3SyvHz9vxCn48B1ugZ3A6", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpEabD6x65XnieuB5zGauauUVDxSFwE1YsxfVFbVsmHxPtFu8GDr", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmgE9zhFxsFH3qgd4Vy8Xtercke8rdA4buz4uid6GJJHiadWhJ5J", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnXP1ocjLbzAqMAvMDvTeBEJUVuS2PqAV5gR4Z1mqTRX82FoCjVz", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrwcMrsVsdimSHzB2Z1jNAPx3k7mTSixiTtYLt9SmvDniUG3kRs3", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqJq4EDrx78PaECK9qFU4LikVWpjquddhotLYh3f4MbbsJJ6Rqu4", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqPeLQkqxmKpuDL9ya88z7z8dost8JRaJAvAJsCZkSgdxgVDXFGP", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpZgHv9WoAxKrZewYYg4d94ajfegbkYVTT7GskHBv5Rgq1qpTPsL", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkr8zsPSF8LfCA5DVnzHiPLjmFRxzqFEKNo7yg3pzn2qL2RC3kMd", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjUXdSR21LECNSrtMPAMB3ck117yCA5rAkbqf42e5gzpeSkra3TV", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoxwkkUbVafPKSZ4HR8zCTkV3Xs5JMUraYnWvdcQEqgsi7VF9Z1i", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmjVbP1LEFXKFfhtYoYP1SjQsnJMK3PNTD7ruy6fapuTApk6vz31", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjj37fvwWFpbuzTvDLwkMyPaufZaPXjUp7GUt8Ed3UHqhX4rg6Lz", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrEdQnc5qJ5dsBXsf8pJT2uksYSCybUiZ8jG3YKTagnEsj2igfwg", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qncxvFetALFKtCB9fNzUr2BigbABtX3vpTXPECRsx7cCX25R5pok", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpR6SLEaKBwanMyfhEYbZ3bDEY4oyhBR5yjvZ36RmVMDV3sVAXBB", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qisA5SRjXize59Qdjc5GHSXp5BTvgsdumijQu7Jv4pjQGpQM7Gk1", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpADGUaaFUCqP4QHvNGHQ2LnZJDqn9VWTuHiGDxEnyqgEuQJCYGr", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qn5rC3xmJ7Pg9RzjUYbq14SVUcvQkh19roVTfPA9YXJJh4KKSUWz", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qib91v7TNfb5M4UMY6DZPhLmr8aLUPmXfkw75Ch3Ws2JJzPLyTbT", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrbVkUbqrkkM6qTCZcJT6bTCk3XLhGUDufwTGAyCDe6PP7mwf2GP", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpSGLXfovTPArUGzrJSY9LSFCp5kdPrPB58GVt5W7y89F3dixfU5", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmH771n1P4C9m48KccUni5pyr4zeDsHg4a3zDGLL9DUa48vx3hh5", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoGKQxaitEfQdRPmkN3VtYrKU8W5RecippZm2VsT8U3MYKkFBFaV", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpv5u8h6xwwm4n1WpDpNHktM3oeT4RqvfpdKcZeje4hhRaKs2sWY", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmqVfscD4tossybe7VdXJagMwgCkGNtrYfY6YtVqrpcVJpJXECeM", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqjGwPMsT8CvaTZQVoGLY7JVkDgfdGkfm8UCoDztjF8vZ9b1aBTa", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrrR1P8mE9t5isQsRsquDh3hkp185KidMNPZmuRuAB4rRYsJQk3d", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qppGfjCJPUkUHnpMkH6XEicmVG9mu31qKDWUNJtWBm7GKxCJs9BD", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpNsfQ5F98Nsbuik1iLTSjkHAQDJqNZXxFtSd5LgfwDXivpJu4fe", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpAvGnbbFz1JEkZUZtove6R2DDhsvUj1iZNvxSiem3WNUoLTzzYV", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjBWibhKgTGm1peSiCRowaLzxBUotBmfKwvWU2kgZ5fMESPtfu3H", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnPPcd8Mi8imaXAV1DtZKcugRmfdQRiYYkMjd9FEdUEarirmXX7T", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qo2S5hr34x7A3yCjjP6LWyWXwCYhryMt4KgSdqsooEQhoVZtbMQQ", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmB31GCqmnd21E5bjgCE3UexRiZYdYwZvwVnDR5FeTMTxHxfTPq2", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrCEFydzzWtGP2eywjHBWGZh8yioscBezc9nkDPqctaYuzvhR5qh", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qk6bU1dab1qhGSgeLXzfwPz1V38BtKmPpShyh6ED3TPhjaTWrqPH", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qr1DJnfmo5DZK6pT3hHjPWRD7fmLSPCtK1kF6JoGjozXnXyGZGYy", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqk4B7fQFu3sKYhHoffm1ahGaXgHpGLu7U4ZEQmu7zFRQMhV59cp", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoRZgKRqM294erKBbR7cxKNCvwwdwuM4wUum1T9SUqGwQaMGkVXB", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qk6FbtpKXJpjAsddEu3Cw9hTmD3yfbeL38r4gFYasf7dpHjkWV9n", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmh4pNaXfMvjeaCWMt3TNhiXXTACxL4o7Fceav5QQQTCCZb31Gpn", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoS736PQy9FchLi8SNP97Nh7uvc1RAhonHBsPUDFohBTfUiaVyLA", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qq8M3jesN83Jm28z8JEEbzhsEjUgVDkJjAFgSHjzMgyoUpBvwYbb", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnsvWvqxyvAdpNBxRKSbAtQtXkGBPRB1zmgHa3uMr4hVeySiaJAj", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmNmcyN3X4xtdAJ1wimT2FXdhw6C1S1GRFwPRw3MhWNsH9EnZQ5z", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkzqxkyn92EA4d8K9emLG3En7jHZm6D7BCrzuS7AeakGA991j5gg", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoXPe7ZRP3fySmEHoGM9y56zs6mTbSPTNX3Kb777JqPgESaLf3Fd", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnTHizTngt3XZZLdBdFwb7oGEywdHKScq7iE9rfot3u6xc2KFmF1", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnQ6kbUupfUY4TevBBomMvdppZF1uX4eY5QcGjZ4x92uyLGysxim", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkBMf7ZaUWzqCUkVHfjnsFwN1t3W4cGyxMh6Qu6NUMv7fkTXhZjh", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrgrkhHDqpWuag2Lb4sR7Fst277HcVEDdo334Md6U31wfMqH5TBP", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnS21m8ttc8wvkczrcf1Bfb7iy2uShoCwQiH1j31qizY2DMPhtjd", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqA6sZtSwFRM88AxgjmEDJSQC9NShZRQHjGoXZF9RUBwSt16ASBB", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoA5fEeVJWa5A7bACVk8v1d6Lst1KPm3eRscAgvSrRXY9VjVnfSS", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnbUycNvJ2janEXcjxHs5oZje5xywVs1AyRdL8sLnapJ8E7ipd5m", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrjFiBCw86oC851ReBinU1Tv5K9eqnEqpKgsGMEJkcMj7hMDVYvZ", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpm7U94FKwZh8kZKdGcPHy8UJCiF12ZvvDucCNEoWqefSboeFdP2", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkP7XkBiCNyERSivG4bT4dYqyzNktWTXeWTgh5rdmCPkuWCG2fLr", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qr4LGNZdC4RxpJm7GYKGDPP3bweoVLiAu2XVH19W37Lmm2JRCktS", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qje5oPcsfMKKFCN9eqJSnsACvc2w2XrFHL3n33ecjSNHpYe5g6bC", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrZAWmNgXTCR9NVPohkU79jxSpbtucaDLERDQZtLa6XDcayUHMj9", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnPeMFr8Dqwjkip3dt7mLSXbtgx2d3GN3QL6XgPYaf1hMGymwQdg", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjb17GpiSmPUjAbEMXGuR9UNSVfV6vZ7DJL9bhuyMWnYp9HkkzcM", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qodo46FwxCYPVt1yAoYJyKazWggeyyAbTv2tochRnmJqkCiZ5Zeb", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqay3Fw4b4KhL7iuHAButKt6EfiURVA11MTaqxojwcpVkHWuejVg", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qiWbb3HrJ5hSMrCmiPzgEj7jZ1aDkHAMC6SJVDnb28cmNq2Jpgso", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrKL7B6HzAGA76WfrpchqtaFHBDSto5X9fkyJC8tH8wjq6WGpctp", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpAnUCpiTTyN3ssVy5otztbCBPWV2p5x47JPdDigs2pH9woM4dzB", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qr6LFLtDoC8rfNvbdoRN6qtoYPcEk5Lg1RkrTxECiorBpJz1XhHv", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qo5zz1npNLjbuiJgCZjXMaZhS9Zabew8SDoK2tK38SeM2ZnrsAvV", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qk6h11gsT7vrXoxLNoz7nrXP9ybFYuyZFqHc9ZWtiz8cdkYRzsdc", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqTD9jPUBRcFXPD3rVAoSHe8PX89X6QUuKSMbvgufda7Bv2Kfd2d", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qn4oMZdXsokun8S6R3iRb4PnLTkLZpxpN4U6rmmFNqF9GUTtxwDp", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkxaRgGSidqTXRNQukhduejeKQGsYbsFGMXAnX6APiMs5RyHz8PB", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrqVrMnokMenRJWnSGfYgaNunxcd1UZigXEXwJZQKhxa6Lf6A19n", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrVisTckjkjFCxZnhf4X1eVNoxmaEbr7HkVMFC3wuLUvbzMk841z", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qp95ctCPRXL6f7EPSqJNdZS5PCtLe2wh8Fvuf7g6HCnVAcRERRfP", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnGAuwekvoQHMiDfCZhc8X9KbLMwueoUc8XQ2GC6sw9tmJrAd2jk", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnJ2uH7QXAPvCwNDY4kPovyMG69HMQ7CqyXjmvEPNj7zMfHwBKFg", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkjv8dQ8HtPzxbh5rAkqkMYxTY3aGhJu1d2Q6DyLT46e8N8ibqxM", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qod9rfuQCxpYEgzPT2mfNEMTRGrrfeVKATvKaqXZk8C7KRcaefAA", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmvdUcUny3ukGVgRzXzVBYjdFPxeYztcYy6uWxDmRk4amLhJVRWE", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrJ3WD7CpzSR9kuGV5BHyDL8DYA6DxxZMNL8TFmVJfuBKkYGQWuW", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkGbJzsgkHvWVHTYEKrcECRsrWnuEiMruAggFPdL58GLTBeAgG2y", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmMUsHuzM1y6hNtHanxV9SKwQ49pdsT3ZnSG2L99HuCUXp8g52im", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qicJSw6xhSA2bEiw5weKrqfGVXyFLbAU4ABibwGcbywWPDFW7a3T", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjw79cq96tQ4SmAMkLhwTtRpsrUzPtderYB5dJiwW2hEX81TpRoB", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qiTTFcu5UWL1y4ApYHUDQXPFevXxPt1SF8z7SYJVwMJy81ZxjdRn", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpqpv395nLAxyrLm2dDRXrX7urg5RNUyKfWWS4NL9FvSiS8hYLzR", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrCkGC8UBcRuMgVzzScbaN9Uks1r5H4Pa29KHjVcf93wgWDkP6jx", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qryLkhANj44YeaMeAcsb5VzLfaFkmzjks6gLwYvVbbddsNefNfSv", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkJhFbr64vsZEdMzn8q8FEKvh1fHgu7pqXSxt5MtG46GLQtn1Akc", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoVQHU8NSojSp23XabMmadTGnCzZG8GmYrHCqho1yE2yhqh9jKDi", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoYw5ch1qWmDJpPdSPd1VjufFvDRL1cuuChqAEwhdokR5yudLTeo", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qorYezBQFjprqLhpVUaqrGFZWSqqAm2BNsT9cQdJhJDM69DoCxse", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrP1XyjjGfZ2AfgkxJ7mXZCyooQWcihCMt94qnoayJT5G59GnHhs", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qq9VjJiy318Ck716cwRkgCiSMnf27iShxVtJFUZdn6sjQsAubnTP", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmCbGYxDoeCErcTFUwvW6eWV5WtbvC7ywnHtpNZhQeeLaQnAEQP7", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmeUEKZEJp8J82cvBGGDFMtGfPHUHDd8S2kFiRPfUUVyz7A4wZnM", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrjsRGufMVCHikaDrnRqFyHVr3hL7ztoa6HWn87dj4SQGaGNXXd2", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qof2LRaKGv8zkziwiLp3ydNT3RUGwrBJwRCMunToojUsSabJ4mzN", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrX82KEtsvbYVmKWbvYMVANz5taqY6sxRiMGKFuXQnR78k4V5Wwq", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkHtZyU9MHLgofezAwhNjNZ96o8Ys2kEez77ZXKcU9Xx13hYjWCr", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qog4fre69bzMxDo65G75f2bJpWq6aFQNkwNE5TAuGrcUxMCWTVeo", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpwgTGxfPaJkmrnX6mCxjFN3thzHQWrZfbQvPs1VU1QSHkivCAdy", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qrvYxBydSGHsFbKbRNAT4xmFGXnQ539B4hnCNwHBbiiKk8NodhLe", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qq2XhLADrftMj1YVBhMekbRpZZShR2tnHxXD9DNkFE7zzbY7yvA9", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qohGXCdwZtzDMEzgYGTabA5ydyJapmG4ZfDCuereEzfEANSZeoh3", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkNG3ujmi926VoENRe2PgwgQUZbwc3vnUeJ1XphK1o94R8GMVBgR", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmSKRh1RsTHK9dfe6auAN6wSrAB5nY8r42fWiAssG9kNNsn2hkc1", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qnYXUMb4nzgxihCAvFad51xb3EczSPEVYfn6snqjXDLRVwbknDm6", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqnE5r9SaH3U3Nrg9HJoZf7EixMYbiJzca4D1GVDyRqb6CQ3pmP7", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qo9oHXqHbENd3Jiyp8K11yaxS6HFwYwxrkGJoX2vPtsRVBAaUvAM", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qiskQboj5nHCjMPQFqvrLbXxSakVL86vqp4qhsL2XmYpZdTmkZ84", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qqy5GjBFK6uxrvwC2iVrrxTnqUx1buiBZWcwu3YGkc7tRdgoamR7", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qpvfqGXJwsi3L1RvAPbZcVsp55Y5t1gGsPiPGjWD9SZt34VsLqzn", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoEk87rgWnrTWK14YYqvGkVoNs77kMzbrKvANUbWWoMzWFnuTdtf", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkB7fWdZ3BcQa1pBWmwo39c6U49SMRAG5hN5VLTUmSPEazBwrBhc", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qmA36pE4eQLBk6izrQdAiLWyyNJ2sC1ieBtmKikf4xDeZUz91hwA", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qq42QwcqruMiNSdNBACqyNxnJ1dmVE76UhViqR3KvXHoodUHYBxC", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjTP3RD16dNrUgSjHeTJ7UbBWpbmDrhJXsURjcsPbmskKJjaMFCp", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkUGJCU6MBU19FiPmfmG1nnQ8YJ2ZZ8PSQGi9WD3TKkcC9N36vtd", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoUeiGGC9kocwZ4x9dcnyzVVCGbSkqR3JHdEZ1i1uMAYVY7cCB56", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qjzXMVeRhVeSGSV53goHb4FvAnfCa1yzM9PknAX1YjhAKCwfoH7N", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qoHxv5tTPD6KF5sLaqd1pmVpwg5AJ9RtncXjCeWnzniCgZqb9Dgn", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qo9VHrGCAYZy6dETZC9moKuczrnEwUeKw6uXDFKSLX4do1aLBr1v", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpe2j9sH3efUKY9NWyi8v5Y6a7tTeR55VL9v1UVCEuGG4BcBBQYq", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkseSfF4awUwULqtyN5NLJxwcrVMbmuKXh9x8rNcuDiy9G6xtafT", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qktNVGwvukL5oa4yHHtCy82Z9tSK3XXTNqQS9Dt6i38drKCBCfEB", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjoRXeDttR827jjo17LQT1eGhH7gz5kt9ZBY8zQFma3DA28g6D3h", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qinx692MDHBamSumAvWMzUqBQJNcjoAAJCYVNVhkDveG377AehZv", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpfbNJE8Kkgze9psUeVB7dZuYLAqeLATq4Thdf2xNqaNs8NFfxKa", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjaefaSJ66ZEHEMarBpMuJo9P6y1zHmFdWWsGACZCQVdPKfYUKS1", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrkZziwy9ebWFSFUUn9tVRUfJ75CTfYJYGV1BkxP6xhv7MkMhWY4", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmXoFrq6Re2VLtDb1XfaEpZyContmVPZ5XeM6zwYfUymk6zgZZGm", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qiVsvvBzDP6pzgFCwDEmbbhDFaTYeoiQTXtBxRTER7J7UfVbrvuC", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmNAFGYWYeh3oLrcZ7EFmiSeaSfDLzKJU6W1tG7fNiJu2ntF4AqL", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qs2BDM4kqfQnUuJT8zDW4FiEQccRa76E1wwpgPc8JkVs5Ny2PzTv", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkfsoWBbej4reXvQqz644zF5RyMxztYW9rtwtXv4gEg7kLXasmrK", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrsCe9Wqgi9Fj7f2YbFt43u7CpZ8cu2mxpCc3XJ9VsYF9XDdhJbb", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjUQvYUmNwT6hfyt89y4QUReiDzjVsNFVV8WAsTV6Dp9zSYovbhi", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrGpsvJa81tPGCCpwXmCusi94Tdyth34xfwi21VkiqxJJV1ZMgQ3", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqXjmpnRczQjWRQR79PH1HnbZhM6CKtLCU3EDaokC26d7uf1kd1e", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoK6dK7rm3aZgZEtoEHLGdyjnF7pJmgUkk8WWiT28o9FZwcrwCtH", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qj5zZZuKTjvwGipPwhwSLgPx6rmNo6VhrDSmTr6Kox8zsNpa2b9X", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjjttJ9gmH3nhNzExMawMxnWxRsQhQgu23tPwfkWYcBuu3izL1tz", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpxGFUdjA4BRBef4X6WXRgaMKLmuyLmKqrFFRnVmhDE2wavzxG2N", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkX7TGDxkhcxQ9baEHVxi7ZS5Noap9uKAb4qprWCZ2uq865rw4go", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkuFZJHiJ27cj1y9X762cY8y8Qs8qnNY73eiQXawETfKA35VApXi", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjwgpEa9Q9SUBwEjjZHmQr1bkVo9uwsU3AmakbTZDp55fW74kH3u", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkVXe9xCVASu6j5Zcv8U8q1CzMtPduEbVp4Azxph6WSuMq3mycci", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjdeMbjGk1wtiBVPc2K8hWCp1woq63vXn7AVZSWsM5GkYQP5fbH2", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrYS8dMKzUfauXdqkyma3RdhV6e1yQXiiiXrK61RzRmyemUazJyL", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qj1EimXMcMMCZtxKsrWtf7inhgBAkpyYkQW5XE1hvDBy7TRH1Hy2", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrSPfW21jfUpXLqG4SXZReA4CpheBHYE2iNd8sYQnYZ4c3Y8ZxXv", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkfJW6QNUeiucJUj2xZoWKrP4bRRUZDqqp4B28kEcLz5djU7sAFe", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qiiU1quS8878gfAVsLdLJ9HwSkekRSDQeqgTJF4PXvHhMSbAQTNQ", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqNe1JmFeSm7F5Qc3r5NdgjapNqpCsSZ5SjjxaBVQEzVK7muTC1S", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrWE9WaVhHdzVqtU8R84BdrfJytEih47BgqCLucvAh4bF6XcNfh4", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpEGqWpvxe2FstU1RqFxkYWRZT2wXV1or2scicCPtSXiZMsnEmKm", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qj2UcFo7mX1yWwmHnE85dJztZPQCPfDghi7R2BgpTb52HP18KuYk", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnE4T1wUa6zhzmKjZFAi5HEL12D2U1UjXUvvihg1y7b2TnZ8CsyC", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qicCDxFxvVHg4WQZTzb23MZ4nAfwkLFnEt2HhVdpYePEb8AbRDMH", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpGiTFN3YRbfcA4cDnLtWowHEuyhu6DvvuKSCUdTBxJ8Y3CpK4oq", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpVV6NMmtxw7Y6eV1YkWw7Wgohqc31Er89kYDuspEzMX2h6SmEDf", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qngi7F8g1fJCyyDNnUKEW5gRLWC547JNqb7CY89WtgWHRQfA6DUn", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoxMbDMhxCiSK8rYRnNY2ojKuY7Ucp5KAwngKoan1X58YmkNXPwY", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qm6pYwfbEtPSWvkiGKWH9bsCzv2uBukv4ZzXZwXpDrRmVe8xj6Bn", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnjdjMwW48fyL7J5FaTbpV9edxgSGbNsKJ22EsaS95ML1ZQvwCtH", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qraTRnUZs9NTXTLjt1C6MxdUZvJYtHbSsVQqL7iiAu8EPPC2eL2m", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qiWTBDX53ZERPKzAqkDdUdQNgiyUD93YhWwBVvXXZDCxmhqu94s6", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqiFesoP5Rgf87U4z6ozqiQjJEUg6JQ3Fd3jKeu7z43eCdE2aEb9", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjGGUKcsSBpD3ZYGfKiYueYFRGt3xCb5pyNRurDg4aNfHaXWahLu", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkjM5tfXS6vijUg9H3q18B3VS2LRNm1psCdWGvov2XLh6BgqViyi", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqnLf4m98zqQD4gxnZkFBVEW5umaY1588yT2YQfAUiVWWSCPj3yQ", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrYaNimQx3ZEJ6fu2g6BL5skKaZSAVYgiGsjwUtCz3sbyUwpvKEb", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmEp3kdHAfGQmDyijUjZXabiFX44KQeV5UKT9sD6dwTAk3s4LBAw", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qj8eCBJiy8dydczuSzRh7v4JFnbjwMKeE5bj2B3fCenzSHyoZQvo", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkyjERZ5dKv5rZsKMYbS7GHqfWveQx2sUdB7dz3ogrWJCbMmtEfC", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjJviUZohTkSa7vRky3LZdUUrknaTTxiid2nkXXJus1GBugXQ5Jp", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmVcE48V445m6AdzfvaqDVMKHUaNV4kgkjbeEdzhYUPx8KHcP6d7", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qm2EyGk7NcSRjd5kUf8YWN3bdEPmn2sgWy7NtuGEnQKv77mB4Tx1", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpWaKHETF8XZQpuvic59pvA5Xw3dNNasuuw6CQNMv6nTjHuSL1Uo", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkDKaskjZBVKz2bFw1jd5MJ3vpeLfmgGsBuzPupKHKWxDNvboF7W", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqienaXFvBZBb9sT4WhqvNWDWdvvQwiYRcP2R835rfYtKESFvtiU", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmxRjHKa39P9a8MfFSqMfZf9Dzddq8Jhoae1nkmHzd8445pP6LjM", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjTa4s3bPJJCwoKikDMAnMmG6gVkfzXEcMVTWigxMZyLBG6BbnRc", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qio117Auf7KmDTLCLTnstN8C1GSGgGaCwUnP3By61a1Bac9dgnMN", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjVto7EzTHkDtYkRphT1HB8bkGXSoKLcRx6dFE1LQ5u6y1Zo6yQc", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqiVMLXseXsDmuLU1g81HsPmpMux4VHtckeBtvR7XzLByLEtwa1x", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoYUJwnMheMZJJgigEgjt2CjnMoRsHSCe3rAyFavnSQuqLe1xYB8", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qo4vbQDf9Mya7SVBZLSp6G6s7BCx9NPndiPLkPavfhh6fhpGYJCB", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrBRashU8ECBapf6uLMgSYnR5om83gecjAugfUwcaGjoW5keqzux", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoL9d5x2X2kVBntX7ttvPT34TXbYA7dMi2Td6rHpjN4fQkgqfAfa", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmYZFYQSfdywYT9jeMjDPfgtAFhmdLuPk3yTfCso2wRPuPGqdWKN", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkbusgmw6Kinbh1FCqeRNZkgwqcLJoug11qkzhhB16bCnFEchQ93", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrn4JYTY3qdjCWorNxKhqbPf84MQpS6p6y74P33XKBH8bpzZZ74y", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqHym2CnHZv6er697Mv5E9t5XKDhhychvotcx5BveoZjmQsEkBjs", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkyrdKHHyMyhSbchBmgpwNpt7m1p2grXMv3hSKqWDXtDmFWWnjVW", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqaqkLEihCZR2AQ8TtpAQyDuuhA4zqwBNfpAdxYH4z6f8d7xTcoM", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqJgCWPuaXN37yfkw1KyMYFAL53J3H8nbXeZmLwt9fDWKH6tQ8ph", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqoytad6rLgK3nx5B5rRgaypceBymZQKMiSdZRnV6GFZCR7e8GDw", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpEmRofWr4H9YmSFNhJAwFFDeG3HDc3Q4JTUWtUtsr8Y21i8qQQt", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkvZjwZVYKZX5wJmJepr6yDWRhnn69p7F4AFvzJtkEwwYG6cyBmf", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qk1WctxSwBcML9TxBza2a6QUy5p4D8bAPgzzMXmo93ehCFuab5PD", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qq1mSqWSDAzFjE8H9Efi2hWstKdu6oQ8QQKNgfU1tv88zw8rvHC1", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qj9xkch7BUNhYRohDP1FuCfdbfn59cV4AGoCqBboRa56WdUgwMMj", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmZD3ADNof5JDh3YnPxgZAuSm6vfKupMVq6JA116dDdtx6tnJ2VB", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjfG6dfV7MTFe4J3sg7jL9Hbsbywy9eeLvTVdrijDQSCDPgi3ZFc", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrc1pENDLrH8X5g3LJoMNq9aXqY9N1c7kYQn43bWxwPty9bvs282", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qiaA7WTHkBZyeV9aVVjEcVRZBvm42S82ra3AzGPwWQ6F3TVWYQTF", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqKczKSDYgVHvJVk9ssyaXsC2C6kYXMQ6KeYUSn3t6gKLxtipha8", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qo9CbErPiQCpqdZYkBLGUM5czfu9wUxLyXzq84R839Mwae8VHnkP", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qs1PLjfEng4E5BkhJeEQVnLv3ZkSF5Q6vCzbFP9MxqxK9Pmtah9A", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoC9D6hmFMPv72ChvNTriJoUfzJbmF9v9E7U62iGyv7BB7f3iBbY", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqPHRkV9iE4VmMDAKLvndXSGpRhmQees9wpCd2zVLGuk8wcFmLwF", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkFSFdA8RUxqKU7xnx6aWCptRRESg2ZWhNDcDGN9Rnn7sH36xp18", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qr25D4M1vFLB8XsFGTZUFVeLo8ARQYP2X8q3QbL115aHCEH27znb", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqc9PHVY853FQPSXVYsnaVgoLrvSKQLQHdqjzVRzXfaMXS5NGoqi", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjooeHRXV7pEpQrJLBuF7fDV9ngTphsaAgK2SgzUfzAbS32cw6fH", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qiwUvpc8DHV2B3GCgUbjLWE4d6rysFS4Xsmq7TtMMQuiy9JcGvKi", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmcHyat5iKXkWeyYCmjjTCZMMis54Y6mc2B6Jc1EM6YFnYWix2sH", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrxQJ5dEukAWjBvEsr1dHxUBHCRUnwv4oNm28EGKsA3J9LyHixCD", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qo2HrznN6qw72sT2Ek6E6TjBey6SefwguCsCLVa6UwLBV84EWKxv", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qknvSDFJCbnyiVnt11KVjvweYjfFNUDvgG69SUyLVXsVV2BinZiM", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmbttWfEh9brXxUQZDdEDBQN7uAAmmZcHtaBGMTErJX4Wbpyi8L7", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qr3H375YgjYmeXVWHZ2bm2DhJ3wJR53QxPKCu6mZC78q2JLBB1yr", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnopgzGdaWp3MwZXKx3y3MYVGYCxEXK2QsTVKFydDt6UxiyY1hM9", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmWbF5JH9WYKEMepK1xpfepwMenkGMm9Ny2hQmuDBab4PSbygxVo", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qj4BWffegm3Q13MpX9MwUuKG2RqrkQQTgGP17vCcGJ94LcspCfkY", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qifBaQUpNfEj1CWtnyjRxCG1j8GpFpsExrWbnn1dLUdgn9HFQ5qX", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoTwKKq766WgFroWeNB3DCgdnNyARQpyktHHewsHtA5eUVHpUZ1s", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qr3LPvJVaHoDewzoi66N5pCxV7HxzByVf5JNNJhhpb2f7agqWW6H", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qomjNRRGcctPvU6CV59hss29m2HHxMbAqSYNm1K2WCwHCyk3aCqU", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoHJySewMz1jHRgieHconX7zLng4b4HoE1rW7GBMyALFjT69YVtt", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkCfGKdyiWFneFrcUbvwAWLhxbKyfsNLcjw6zyFVdeMAFsbezSLC", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoVwe7PBpYDPmd4GVTUw6fAUcgShgEE5qm5XxS6m8XGpKy91jHkD", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrdWDRZQhLZKtFfaeQ7NQ24eoipvQ2hpMRnmuMkgo9Wir7Xmz3NV", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpaZfNn8upKsU5eoqgB9wM19a66c6RdJcyMsyvrKHHrhoG6fb5eh", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqPaWEf1ozCFb16UvrSTfkix9KjicWEfdE8vKTbGVNM3dTpxng2Z", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkEcZDnBnwbHtsNEEPnjKMCq7n7PK838nFYsm2dbb3QifCGkVrXE", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnbDvHoL8ViXXHtgnpKGa3AouNwyxMLG2kLJDS1K3g1kWaJ8Lre1", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkmTWS7hgvohVBZZoYdT9AhJB19kg9JqJHzm5N57Cg2iNoRHbJeq", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnVtV9LxEiuUf6nzenrfHVTkrBjtrLaHvnDoMNMKiRcXvS4yvLyV", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqxJQJjYkoD2fCwz9aj1W8e1zs43VSpk1G5s9ncAy462pypTRRUM", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpszQQpvTajwrwziAcWwC6HTzZQ9itbiBX453gvxd5S7somv4zyq", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qp7S2cpYJiGHCAAd3jcCw22UxD2XcUUDoQFc63SukCp37e6CwXUu", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpMF1efVNBiyJPNB5RsvoXHtgGUMGciR2Mkn7neJAiXfF3WcHJjF", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqwu1kA4GQQAuYJcNUnANAhPMTW8bmhZHeozRguMriRFkYkxECxa", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpafDGM72BdHbnFTc4wtyjb1daECWYWn1jZs5Cg98BWue83onN15", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpiEHsDpZLFnp3hQ1U6igzMJvJE8EvKJvDcN9YfA2faPEdvsTV91", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qp2MgUNCP5XqZZG8uyiGkeo2rJZ8P5q3zVpM37MeLvtD85jDiyWC", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjGHhaSsxTzHGwkNoEonyPZt2AD6E8MyceJna4oXxwdRA1Nirqhy", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpDJCjBkyfT7bKcCrGAUPJQGXjBSJV4UTdTz8A7o2wjRrcy4TzpT", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjH8bdHjriMesEuk9pnsgFQUSHzjHq4SJEV27C3pipNnKsKf2mp9", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkwZhw8ghoLT9ZrbUJGiApuChQnJJJWkakf57Ph3g8H5Q7wVpxSA", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qowkxCbz3tJQYNYWWkWeh1VmRYTP9GNhKvCFVhvxKmYdueLEYbgD", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qppJ4wbZaYB1TXdZ9jrLNpPrMBRXDYxfAyeanV8j2itydq53ekNv", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnXWe6nD1k8Hbd3haSPhryWZ3MMeZfnWBBAu54pmogYegajNUFMS", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjfrf5E1Kzgid76d4mh9SoaK5jKgEDkh2TZRqmdGD4Jb5QVqvi3G", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qk2HMU8zFsVQARA4doebv4sQGH5HH8ojq8WyiVpoJ63JxoqBoNm2", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoU4SR2SH3yEqa8HBtJVh2uM7xa6m9yBCHAhokWBER7997E5UVeq", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrBVawHPNewyZt6hnkKrPyqD2JFH12QapGMfhhTX47vwsyh35pWo", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkKNzvaZg8pMzbZJF11WaLkHEr7u3y6oSfzeJYtFTTNQfTDS8ppm", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrRjFoEpigWoMXdMC1psmv7z9wYctk3Pbfx3FrGmNJaVKGMcpK94", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrCfYVkXMdbLSTX5ibXkVYXzwuYdnrW7DwxDqj4nKdzHCAq85P98", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnZYdsLKQ4jUS8tLq9rnBswFgD88Bv9mWQ67A42iJhYPoJmCjuWg", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmFzsXUe86a4YuqLNmqyQS64UW9sDyiiYHbpyGvtQ2WuEiMz3byb", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrFQegNnTa3T5u2WwZXa7TCLGceJAE6k7nftHpLPXEvGwvMYLwkU", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoE3aQeXsMv43XL2LkRQRwndmtPx7rqhpndsjMXB1DtJoJzezKe2", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qn44aBxEv4FPEVzS7Jrce4HXU5uVdH1dS8WtxJwKWuKhigKy9pRv", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qk3GqXUgroV35XbEvZ5sQgHAXEqjaajvGJ7jSucaKuiUFvaBxYS5", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoYfstgWRzLfnMnTwn9PFLeTPoWFPBnH77YaTRY562ye1hpHq9vH", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qq18Ch1canTf1WXZXgHjWuJWZFpJeeCF3Ng9aaykuucUucBTu6YN", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkv56NVpcWybaBfyx5d9V8vavD1gPFHJTf7zdkdxssmLq1PvV8gE", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoxCULR9pJp3d5ntpi8nFtshGkJkGhBcLPHEa8yygtcS2TbrKD62", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrDQCbg3C7gxbo82J5WyBNDrowoeus8BeYpxGk8YWoov2pvxDVg8", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqgvW22MKJTh2oxP4DFWVZ791xjFemugD5WjLEpy1foMt5yQivm4", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqwHTBSMZEXGnso6Ab33UVDnJPg2LxDTZbHSwH9m9ZgxMteo82Bs", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqYvQmih6AmqA9haiLEDfdEsrCQamVgGJUyvnZWQWPrt6MofsuAo", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkJt2ZrcEvnCuSwbzEAvGJMjQiNAPWwg6mtdGMKwLH9HYre9EdkR", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkJ5BfFWyRaxyvc5Pw41ASo1YWXuizEJXEJxhunuxBgMo3f5RKsN", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkZpgsFEiPCpWRoPYE6YvuU6YfxiBf6PEGRQQAMeqDrvEBms8b5s", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqSXppoKv9uaQWGEyvJwvKmPkjoLt91CU6tvPMbWAcLXdhbufGge", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqQYqTwGdiU8JwuNsw4ePjxuSFYkGdJw3XmzecpzdrRG4y5m8Gqy", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnNgnDrjjKEskKdpEBfDSn7Ugne6k8szyRiG42nrz5CsudyNNKBd", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkqsCf5bZTVCpYU97hT3ywdF3x1BQsXcCTcZU3EcDZt1Uu4gwwhV", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjjHFpXrRdqFzCiw9SGnmr6eXv8YTRWCJHAZrShkQmvgb3bNCc1G", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnkKX3DZjekravnYN4fGAGM15SPL14gYfsUiAwxdNFpLDWpDx8Pj", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qiieVrxaWezMFVW39UTMXzhk1wE8dTZKmxCpRzir5cSiQJ1C9tN6", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qiYdPJPtixEbGPDHvsi4BesVaHo7Z2gRpJCuK1m473w4QjXaat6S", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkaiBt9Yqu79mmADCqjoKANKR9qNWnN2aE7akd8SPxT2CWnwq9CJ", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnXovjjCiQJdmcTj846Nn85ThEBevTvh2cbgdR3tSA8MAdL87YvE", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkBWkXSWf48KVQxrDQEiwwQP6hiv6TYMoHNRTrk6fGtdfPkecjQU", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qq5gmdTcHr16ZyKWac6CJbihRQfwu2hezV8ySECjZxATjvowSbfQ", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpypmC1tG7PzeYRrRrbKCrsPXoPKS1GFrLhSMK8UN6bv7mDWnAEw", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpsNFinpQbxvwVujom4DQosdaYXGeCP8CRhuch8w5BDojipZ74qk", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qodnHf6qngcpFQEj8pUQNzzRRCqC89zkiWXTVWtqsB24thgJ2GB8", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkm8rht8YB3SvF9CScM1nMaXaeQk9JgX5s8TR94PES9PSnSwv8oo", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkEuEkjzaacgZ9LNz9KWnTGYHnMgj8pkRHvMVRk9sgKGyjDbmVAJ", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkdzwFvPsZqWtN25Buf16YyvQaD6u6JCNaV3nyxcUpit3n6QFWSL", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmUU1hAsdBXScZXKS3EtY2BLoeFxG4oYtyUuApZj4x3dyzF3dNQH", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqHNsRKU2iSjcFyMBUAJxYDJ8V7opxk7XZjzB1SPsgavzYVdMZtU", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmVc6KUtDc84wcwucMKcBYnDsgnita9Y9V7hXcdGD2i2BUWfWdgE", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qq5CWwFtca3DLH6qw4uZaxugmyXb3gXqoEcK18o49SZj5nCNEyZM", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qop1EtwfJ9KSnaiDZ5MULZHdQnJgJ3oMLC9N1QQT1pkyNVo42WhS", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qn5qHTAPpiFs9DEe7GtS7yQEfDYfgr15G2FhfeSFh47rKQ5SqVX5", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qinBQBmyrN25aiNkpaUkacFumxZf7b46rC7k7ZEz8mMyKJu9fWYz", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmpmMrityUMt1E9aYzhP49dFefGySGaJEVK1A7t3HwKrKr6jmhxL", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqFqKpjiHRt6mGvTNfDEfeX6t4iGczWT9pupMZn4WWT7BzoCZCMQ", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkgcKtudUTR4fe3HSQFFL5gRxz8k9eVn1w16ExvftNiVbFkvsLgX", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpLEpKyBp9vMiVDkjNFr2LAxAqR7LoMYpcBCFVkpQHacuKxFhqST", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrYaXpb5St1p6S31vPLdZioPGd6h4i5upfu7kbt9LGBJ6yNbfdWd", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmAuSzc1YuEuiwXPGiqFWuYPEUk4KevvwPW3kbHRZ5g47aMzcwo6", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qiqQFQXLdn7t3dzc8ugiwCE7qWRwgr6mS9P1FLTmqt1NZ9bDDANP", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjruptwEo3fsTi9xiGWVQTyzwUASpT7qoPorAxh22Yavhmauy7m3", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnrbudq1TiYT4QJgfy8s689Ug1TntSXT6jUYzhYZAjVH9D8GiQJ3", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qq3PuB5iQPMwDUC5Ki5nq7imtjKmABWKM4gbzSpViRbKi9UD9BDe", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpnBeaMgymweDwvdQRA44wFKpsLyTVZFRSvuJwUvxkJhTAScja8D", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qj6r4cr4gbNYY666U5YFwcKGAdQwpnru7YHn6sHSSSsh58GfGfgw", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqdtH2XvfeZrYY7yawnaRJdG9SWP1TN4rDq1Ba8rRnPuzR8HUXsi", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoN7jrzpEgTMxXGK1c4S25EoHnW9NsB8bB89p6v8K37jZiWyRAwG", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqWwZqN4h5T8BQVwuoSJB3ZTzf2NBm3S5SjzCPRTv6gcexxE2KRr", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqvoNLsfLzdHpzzYjb7rybaVMZkt5FwR9wAe631z4EjTAyBVtvGm", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmp716obHySctqYNBZ9oUu8fk9P6tqax53Eimk2wttBNcPFPfZuJ", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkGKYj1LTvGi6Nj8Z66hdDq4KDkRL9DC4LuysFQJUwMwHFu38YWs", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrwCwRPhqzZiLWDF1Kw753mhJ4aiVWyNuV3WUsDjJJArzjjFSiuf", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoquBGBqqF7JTisUdiRmjWeaMuH9YK4HXgqz34HoxS2CQiAP2PNQ", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpgpgLuLi8zpHxsAVvk4F6qLccn88ezYnknwJe3rSLbLGugpesno", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qp4F7UAR3LeiL1xrmrPS7uaB7W5hYPTSQmPrbkFZ84eV8aHjoHaD", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qizcLSi9Upz4vugYXrxLh8JdXDSvYPoF81dw1rxoX66Tkuix8ZtV", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrKCCgTdFzm2Ve8MMySXY2Twu8fuJXdveRzUGehjg3uAUVcmA7hU", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmM7rkLcmeoPUDvv5nvkyLLiNvF8xSND6BprCceZnRmrUUPq9beh", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqEa3JstYy3Hk8KEY7VoJXJznXJ4VhJf9CMDUt1hRpeHbsrnVUnF", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjW1Uuh1DDmFmzULYVgHpkFxsY8NoDMBa1qXGT8Tdzz5NYVmA8Fi", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrRthoVm9f7YBYbVyWoTcwdJXLxY2TW5G4y7Fd2iQfsaQ2F8doTz", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qndT54FpjQeHdpaU2DhKTLQ7YfNP5mykSAiLmqXiJACX7oHqNpDJ", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjrToeHf7WMLkMKJnMwdLVrGdmrsEeDcuHCKe2rVuVPWqMcYb2Ug", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqfYvkHHCKwrF357V5gn6fA1a2FrZeJ76p6S2oRqbmsQBsvzaEx8", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qijQwyUhtxQtkeoKuhgzGW51R5dyQdUy3tgAbk9VyDPmwpnj27Yu", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qobXckGsm7xwJt32z93N2WVsazSMKpkvCDWihBGUXtakLwjsSFbn", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnYpwLxxsfLCBm5bxTbg8V7vKqJVTqLYHiTgREohzcufgavfJaYV", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qn4ygPo5Nks1Gd8Sw2DrHj9ujen5VCekKKLpJ3QW7ngFtASyB1C5", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkuHSvF4Hf2WTW2tnqEWhaySMgQYWKDUv4P8khmPzV5QTUFzQ4Ly", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmiifnYovd859v4yDMmdy1dkQx6XmPDEapVvMM2huaF9sqLfSNxy", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjhTG34nRzRFHH7baXQGE8tp4QZdePUAnF1fa8SQCTjz4uma2oP5", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnyjRbEQLzTTsa3KTpF3iyGfcWUqFQk24qwskupRzrtHqoCuFKse", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmkyXf8AG82cWTpraBFSjhferCAKjAjvdfLMuNQPGfC444uRn4Ym", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrDHthGaT8ftCQEq3wggwugdjC8BFadS5VeRMHE9vBYkKQSjEegc", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqsPPzKxJa6thSxLzZFEng2pbCFmn1fvixrSLczVKAoUTi8JuGSN", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoWkLetTuaF52ge9muzZiWEmtMVxBLF1UwZAPzquvR7uQ7mRaWk7", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoPnu6LF6wTpeBsaL1wdzQKsVP9LwmbX4vWYE2mZdUFMLBfr3ovr", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoeUjfAqGTGnyndoSghdS3w3uYizwXmxzgtUbvJqRhc2XEZBXDx8", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnT4m1mkPwmh6Qv1pXpHEAGoNcWN3WgmC4jpcbcbhYDrR2wn8zBr", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qiYyqmNo79nqxfR9BYTFUZ1r54BWnphzjiRp1dJSqYi2Yh4JCznm", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qs1PQQtPMc26EHKL4Mb1YV28SfkvFEmWCdt9fQNZUCZcSec3eDJP", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoZFLV7cxiJ4vzkkybxyyw4Qd5mdffBRnMb5RLABZQEQk6Pwjxa3", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoPmCvspL5xbBkKFGvBaSaDS5T7njwZiZ1UbYrLm21JyKnnJ14X9", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qiiqemLXnhsFZv7aEj6HEddKFpwVJWBhZjJ4NiuuJPM4gzNYgZcs", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmPPivZodv9PZiDEEpS1q2QXTvq3MUqBvf35SNP4TwZ9bRHhfWqv", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpZDjUSVRtWqMLTdTrTsQnp7BKTs9UYjBrYE1vKT6xvuodCwAMpu", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qofBVgA5hTSzfNSPQ3NoiC36zeL2eSgxZn1wJHYCu9PHAJe5H8Dd", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqioE1rLFvjFT8ZLhdoAhusTLoU4AS71Cio2qFXEAMWnkoeJDkDM", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmsY2YBEYP2vQwNznKC8LTT9pTeQKJrUfkzb2syd8FQSUjhaS1pk", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qr6QSbpd4W537hNRhEyNu6Lof6XryHGjtnChBv9qBJthJymeeKpY", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qraXyrjcEbfX5ThkFVB9phBtu2DdCTwFCmKgKYu4TRJUqnM7wn1A", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqFEMzWkwv1c12SkkrG1ktLZL9nMAj2ijcrx6vBM8eFMyvVVmchS", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqEznmoHTXw3UmGNnDLDRf6S74wNv8vWaMr6DatRpacjqSRbHvEj", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoncvRdpKDSc8rqn7Un2UxojP4hkPYADH5jxUzfxmC7paYwC7FUX", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoHoi3eoeUQMxM4y9VdiNLhPVkGAryK2WgwYtgKhLudcvp9S4aVE", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkCG6mxFq48jRCoSu8imy9sASioiG7ejEZvRG9W7oLMdagNs1mjY", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpNWoHaVjZMqbguoQuuhu9wup5YKJ5nNW7KyGhs5rKawAxB3dnoe", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkFN9vbsfmJyGFxJJQeENM6ti4UysCZhdQV8WPbbJLWFfzgAy4Jm", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qqCWcNvGWuqoPXLz3MYfKiqZLTBgvxAahbRp9phpTdpsUYbEP5C3", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjtC8585g5EEch3N5EGqFUyF9LbnHuDY4H4H7JGyWKda7c8jtape", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmDoKLZar6HJzDYwpdbJsqtfnUnH8ACxmx1MJ8zG5UQtPZZZWFde", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnx8MKRWBZb4tPXeY92tGbZzAdmt72qLr5NFAk1ZmmvtpXnR3G5w", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmqz8iXWQoXcozUCP52ggZ2aXKNBjeeZKNh66C5EPZspDpqB7KNd", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrM112a1XWyveYtRu1hMNh5JyC9AQhLtHsSbHKrSF3rXzmNTjCXP", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmEZaoNfQnYhpR7rDk4hd2mYyELkhXmWUUT2ndAd2pURDS2yLSTz", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qphJUNfRLDspgeziK2Kyt7PQQcfE8jEGDoAAFPqu1zCFRRnnw66V", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjTBwy4DWjuoy97H7VcFdUrrBJoW5McaxxdfNAe5xX9b52MW8TbA", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnHidwDsRx5fsZrbKtYRf3WZv7jseB6obpeJqBYFdpdV4SYCgrCX", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnKaefk92VpRDy6ruGxX33PNASochzyKfoBGqeSpxhr2JqrcaK1J", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjAw8vr1tWUBjdshcLHUwKQ4ybHA6WTEQvwZ9y6FM3N46VwL9Db8", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qr6yVBYotLfqsBhJ5Emuo4UQWvEENKeMAJW9xbX6uEhoSMRxDBej", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkktNrypWTNH4MjXNoMRqBN3SUFA9NChBtqkRvtR7iPMJGaPSEAq", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnwbS7q1sAGYCajSZ4kPAAoJeXvVawWqX34ZvrBCgdo1xJ1vE6A5", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnJ6Ss9fe7HZuDeteBNsgn4HdHNWmptBFXNqk17gpdH9GW2HfTb4", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnmS1z6bFwa7TxZ2b34kGgTLLCxDcNwp645WWDMHVqd4JWtB3Pki", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoyKzmD6PpY9CrG2LPHKX7CJNTnvfPgGbacJP9FXMQvpZS9d5tja", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpajQjtkiGEZskSetZJwXMhnV7KhTJnqRj6ErfayJuMvwkYpZdeb", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnGAA8p78uXSEoT9B5NegLAPK37JyVfN33f61v9CdDp8p8pnKyGK", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnZ1n4Lqf3hnLQ1qexAa1awjdcG2QwEY9MQiwQwQTvVSFNVetXm4", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnF7PLS4VfeKCD5vJhp9MDRjmm2SRws5Bqqj73E1MdnMaEMgqBNY", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoZjbqQaPcAeJ8gQEzS2JRidyXQUafDmNk6Dudcz7BQcdGrGXQ2Y", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qp9CrWcGAitC9vLYxybNHQmoCRySUd8M7bX1vP5vFxWX9A3vNUgX", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkKowds55CqS4wZMPcwqu53SZcBrH4dYBNJJDrAwtMDdCu6Koion", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkYjAQYHNuA5zD6yL85vyGPC2qSFWbf2VBx89GUSjMFDa12LvseN", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjkjSbU2bzmWmB842zVdbphiQhXDcuLmgpjNkni4oN9tWMuTBo1Q", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkB3MTzQ5LY3TFEfHVYgKx6MzcbNthmtCbQHj9ZZr6XGsSnZGnKD", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkDVWYw9KW297wbpvXGSRHvcifT6TcyvW7QP4hhwPfFqTEUYYttu", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qrQGFEjCEQH1YcB7dhhagNFoSszC4qGUExqXZXGqUfxSTh28cULX", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmfYQ6ztAzyGhTU9XM5YzoKxgdbd2EZQPG4soKLR21hpacP8Yhvy", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qk7K8jEJt7MCq5rXtzCHB84a1hYvhpzSj2oujbexUPjtTyJCxZ5d", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qq6Fo5ajz1q3KWpfwKgi7Shk4oUXLttXPLYbj9Uxh8AeqGcCRUmJ", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qovXYhh6TS4fAs8a8Q9ovtfxXjeNio9YwpccfqYRnuXD91uzCECg", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmTJectDFFTJReTT735DmnrRHztThGCrEajHdiw6ztZz2vnaEKzY", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qn2GjKukDagc6V5fhsSVA7FecgfmNdjgZbRR2mtzhTCAoV9Z7X3G", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qm7yMBRQFsu6fij6jr4ncBcQ4kZKhjRZdcpZbUBm3L79aGtkuKbj", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qivJUpB2Je1sdgAgJAro9gAqY6te64vSbgECBxkQKBVCaSbc4HuE", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkmdQGLvvqKMV8vfKJoi7fMRDyXoG7evn7rkG81aomjPWqoEk1j5", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpbYzmgy3tVBnaYR2yPyMDRSAkuL9KHeAdM4M6sPoLLTDNmE2ojU", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qp65rMMAkoBNrZ8rTaZunNs9fPsXaZefpe44692LMdXnVeXYpyyp", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qoRRKgMicUW9DJWLGeL7m7RnM3Dw8Wn55oq9PvA4G18swr1yVHMj", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qmNrvgdME3oRhpfRQdKmSKTWmMXT3VX9AHTqcEwJd12WoMVNR5xg", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qiU3f29VcJNE3Ad1s56HsuxuSGWAupFieJ8hK3AdPjSBF9EaytuU", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qnRSnHKVpTh3T1HLztFMYfJjjq9Uu9SuPvt5yQAPYkynNK6cD5kZ", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qphARTrrpmgy5yGYK3uMseszHv6SaDPF6LsCsrfMEcukZUgJYUs4", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkbbStGdVtSZnEW4hvgASzHkVHZ3hJRYaBsGFshnKxWdUrHwbvqy", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qopLH6zwYX1UkMQRFzzbA3BPsqPUnCN7DLy3T9yCbK2FipNoiWFA", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkmLVNGxvirH3ztuGyKtDLPAp8YPFS7tD8wUqJiN93ieT1sEd37E", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qkqeXdrP16ViyEo3LhcYKDN1v7sysyhKH6WxPs5UyzXhnhyop8Gr", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qpzWKkVq9FrVnNhtbg2aPGA4a7ci9xMgDat4KRcUQHAdSdC58Trt", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qo4uBWmtDoxsu456eeXab8cnUykcBKGreeVCo1SVMRuZ6ThMDEyH", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrM2ZDoQAYkCgmT6X9N667VfFseHJofwaS4YcBPbAfGj4Et2jepz", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qopxZdDfXHidx4d1FjUMxhNacnaCGgNmdZJAmheBbe1kFJ54n1Fm", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qn9RJkxXA1gCYEveT6PDGSqUCRPfgq7oc8mkgKTjkir2yTfq7tcQ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkvHRaGUau1WwEnK9ruGvfcd9mK4DCGKy7MfhvHL3TgtSM6G9FxU", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpvpLTMQmRGn5p8Znq8EusNUh8kEoxrf5Bttys8vs9Y2A9xUGeQG", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qm4xcUa2senvMotFwRNYTvrB3aAjPwxHo9D2F2yY2EPwDAiyGt4x", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpB1dRm1b1xQuYcvTTnscvvmHtSBXZKujGB26q5zVCAu9YTYQjRv", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkDqwACcHoLQjrFw4EWUjukGnMkaeiTHHYeS39bYhyep2krmMUCa", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkkH5u2WGHXWa4SdKJVnKDt662UT2wdAM1Y5Grt4mXhoWDnXXg4j", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qisPbPyN6de3mqjA8CoUUdsxC7jF98cHhR7JJa5fNuiVY7qSN2Rh", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmD2aPkm9jcLMytvs1fL1d1iKXopMe2zWoCDUt5E7KKd1rh6i1vb", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmxgzUjbnLVxzTwdFWhDrb3xJGexRhHGeA2ev252xnpCXV9zaVCi", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkbfc3J8gyTjfPsoUFErqgkoFnGXNnxuV5tvX6nS2EjWkRkHqpJa", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqxGKworA2KozWKEd9v5cWadTYF4AUzcv7vdbN8HiSJZMtRRuDuF", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qp5Mho2YyDVDja4z4HVmkSADCxSp5gfTPppLhg1iBipNEKVjmrP7", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoBFKmGQYzNukWiPy4n47utSNrfSt6zMCtGXuEMpdEbyTgfttLuj", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjCaovRCEsaeDDSxRnFt9RxB3cQFXghW9NfEEQAbJbkbytzZwCVM", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpsh3nrxvNHQB98AzXbMqgqs3VNpP2seysVdYUUL4eBmGgvULqfH", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkFGxWrGKxEyi1hvzngpgkkb8ss1mmLLYwa967FtbnSmukCMaomJ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qk2DeS5Uj1DxwjYtxpwWozCvfitj8rUNmJwQzUCf62aWarzCKZzn", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmnMxuWe8MRFQzZSQJfXSuL2d8TWwinLd42baWnez1WofnXVRZqd", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoDX9Moo4tzwRJBEtnSpP4vNfW9Cqu8a3R5NtcBt57kxfSVHTfTV", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qm27VQ52ScuAbKFe4d8SZVeapbpdaBezAUbxis2EvJQX7ZsBpDvs", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qk74bsUaAG5aBq45hw7mF5xoHJp7CKRgN2SLHhhfaYBrygQp8ecQ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkF6Fdu7KK2ddQdZ1tt15NLc26bACdQhHCvf9iJM1bKRqrNtLT2V", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjKnzwEm58MxuonpSJZi1SmaU1p67pFTMrU9hTV6jSt6tX77yc7H", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpykfUKySAtHoLc7VxNcx7kN51CY8Jcwu7zGwenzyYgAyCo7HBXd", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qj9ijLEG6K9siFyTVKervjoQUJPrdJ4KzbjLMUP4kTmbgkYCBtPG", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqg3mUbL5CtWkXSeUtAt18qJ7Ap1uu2CPJMw2SGPGGMwjLRoaoBE", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qijwe1rhtnb7X2eewc6jvvwEjYKabrZBYQcPYmG1AovF96fBoMiq", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmgwa28YdAzozgpUxcdxmTzV2K7UWqrv8rJ9G8xwoA3W4ewg5hHm", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjSbvViSytewE56SvVt4kz3DVDv2B9nMkwXMPJ2FewzvaSe2GNfd", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmm3QAmXVMn8UnemQJNh8XHZ7yGfvgKp1aDVJt2EVpzuSUZ9un4B", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrVsDB6yuV2epvB9t4d2C7KRy4GMtP6NEaAKErrcn9zq5CG9GMXh", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qne9FV6kuJh279LN3A9brGTCdcPmjg2x34XJb91bju2SuKM5GK9J", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnFugzSPjMKYwsBMrVQnf3WdWagUG4KDRCr5B7cuKDkHjncVSmEZ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qj6eQVpPuSz64LdTNfDg2enTzcQHqRWmGYso4QXRQfBocnk5CLbA", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qosuLzNn3uhDiEsHAqDN5vXJw2UbHBh79sDQ6VZHSewff4UJWF5U", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkdE5bYVE2tqK3c2ZSoKPFuaGwyov16ZA4w9ZwUPJq6W78zEBjwL", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpCEon62EiwJ2YN4m1TfYq2upLxJXVGmCcLDBC8G8stUxL8ACexE", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkGkmJNwNEhxKPpTC1Wq2EsGnYdMJat73nh1SEMwXAoWa88tY9x1", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkjAmwEXezvMpLn1giCoQNHemDk2k7J168fFhj6wL6GKj7CPCRsZ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrsm1izeE2MV5yBDkmVhFPFPMyTfK5iM88vJ3EHCSBB8ELXZc7ev", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrg7hiQXAWYkjepNyN8BSeASptSDEk3phFc4B553nFKFaFsCrhbE", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjcdHcy2BPZuToHit8ZHsvLHxDzpfzppn8m5pDYraJN9LqkU2KXL", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmByYsgYXcAJ5BYgYd8yrKMhpbXrj2yGXsg6G1c6DtraB6V97XLq", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpmGy3QuBwWVWNngBJszuaf4Cbi4QhKbwQzdMNDfHwSJzP1Dq6Ut", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qngYCTbRL7b7YPunVgjAM3jNVTh6rBdUhMDh4qjukJVq6DMdRQQT", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkxqf9AjJ2p78vNPRkJcdpAAJQ8S7rfDqchSnZhjfgDX3JeNePQb", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qq31mjJdP6q9RpfnWoW6Y2kdmFX5ookr4TkXXZYPf3zCiFEJ63FD", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoPJzpBDkQVEW1tGLWHb1Azcr2sgwJcYRXsJGqM8oE74KUovySKt", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qntrYFnoxjrGwvKpgbMz2S1pBainuneFy33v1rpSPhbg8HcKZw2f", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoh4VjjMRrNatT15ped6SkZzgFewB217eYJR57bmXYRji7tqMqJq", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmdbaUhxVsSbqf3AKDh3fBmvGUDEzse5EhEwaVWaarXnGbWWtCeN", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoANzH82B5uzobqbQfash7HPXxjwxTh5g6KoCZmcU2zSRwU9mR2b", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpYg81KgSZmixo3zUrxPp1B6hbYSGWJanzUNu1tve7MDDR6fvtZx", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmr9QoaGAG7kSgmca5aqJKjqEXKuUgMo7Ud3nt9pBip65fB9TNwp", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjY59oM1yy9hZCQHrTwmYn1zS8kG5zoufFsypipZUuuc2VZ8hsMN", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qk6frLwipevQsSUJGUSci89cHUKxDt7pB7TxSFyMb1dPxJax2YT1", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmGErkUtR8S3HEQ999UFWPY6vsygCRzZ6TzYoXoDLA7CvNJaAHYf", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjiGh6aikkvxajL9onYezmxbxqoErS5To5L255SKrLniFDfXBjCF", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpW91JseU4o7SVKnBvrG9N9VhqiMYdemKUQ9eTGH8sp3seFQ45t2", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpSsKJrFPPXz96EhQMzUBiuj9wS1hiB9NRapAhfNxCHa7iD9PGVF", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmy773SQ1MAsYubyvxjCSNCFEJd56C4AraBi6ZMLFs6LNfEDhtmn", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qp4A4nEtXWbnRZ98Z1rqHMn3HwuMtrSUEqbbkskm8zBsX565NcuA", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoewGRivicSfC7MJDaKu2B8rdtzZM9VHNPaJ8ZZYXNaMMyDmeGPz", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qm4ccwtDKKhcaL3vezsdMNCgZr3jWeCb6QqW7mpWbtX2dj5ESbvn", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmBcGLrRKDo1dnANUZppp6UXh3CkMpmrswS1vuAdfoUNxuJDbmo1", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qn5v1C6CAqV5UeN68WBQsfrumZtiyAZhMTXBxNjNXXCU8KGvBMdh", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qp6FZwCafmkeLwv7nNp3H5i7xAXEXwWFhe34cLkK5JVFtznpGwLN", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjkLYgfGXvbPJF1B7G6tYqqcgb2AgAfT98CnLZZcvScAzVhwYM1M", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjiLnXrBu3542qAybqC4aXW3hGUjghFv23nVocVtGrRzSMYVEE9n", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpCwoy3C9Mk2rVxSQimKnm5dttaBCoGPuxFgMGD53TqNbgu7xjjG", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qj6Y3GNwUQCrnW8vqqjPXN1KB6bX81sQB7vfKsdCCbR1eTzXbzx8", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqSCyzrToiUGtdvUdKv8M7cBwdSKyUUFa9wazGUqXrjwDbhXnjFA", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpUSVKEL1Eg4dyf7xHbwWPa56treViRUwYznj17nqa7VxCXpx7Eq", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqudEu3WMWtEo6HWxJU1aXNTJu7fhGnzrj8kUKAY7Q1hRyJsKv5z", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qj2E4PuYYNGvo5mytPBHavoh5jUR6W7s95KEMsnJz5c7c6Q8EmeY", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qionavJep6k6G3p1AacsoBurfBHqvKbjh2GQjDYD5inBrv39pymP", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqs2chVnz8K7SLqEdvcq15RJnZTcm53B4wsVgDAPzrNJXCxoTePm", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qniTKx7vxWUEFGGsfMb5gxNJd5iT5qc8qAX4wb6HJAtTWGRwNohM", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qr4NXuwVXD7aanRoz7PkXw684h2mcumxS36tjoREZsMyg4xujoCF", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmWZ1YtrujuNCivRxtEZHUZPSZ2aPdoScoE7fToot6TQgMjPhpDY", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qipdGq8ARRhSu8rSxe9ZqamGmdADmuQXgFrhDLXE5r7DDao7yGFn", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qr3C5M1QiLL9jW6SpqahMDUwdmcrn2XjGBKLDffJZXnMwz2wPcEj", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrp3MUPqthXiRXBTwvzy2XM2oxtaZEFRqbxVpVA757pyBHhwZbVz", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkTT4YnpLmWPoTwS8N7poyzf42NRqxiz5vPoPKQT8SoC9mHf4xR4", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnp5tnL2tC1Fv9Ctmvzx6p1ucu4X7gLApSJyqYKSgW17Co24LWXE", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrtfcf6sRHbzTwXBC1DAxMDzsYaK44NNE5vVj3ZPn7DTaJa2rkb8", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmpKPJkQk3pwothe6thL7JmunDzoLDZ5cVWyTT5Udqpyf46kfBKn", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqZ4FSMqaadSqYhfu4QM9hHAhxMuTPCc8hkqjQoD2zqknNBktRiX", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpknHktedaHpKjXpcdXQFU4AnMmjiKZwmC7ike4zpYb3XsmSWD3G", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qokY4R4YtnpMEkgfTUgk2NdHe314MjLkX6YtmXmGhMNvUEBaN81W", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qin85Di5MUyY1veFkzpURCARLw6n3wQdLe2ifbN3EE5JHkswpzn5", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qm77ow1i38FXV9uvTUXzkHdM1mqD98fWyVfRS4Gufn1M5yU9KTwi", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkKimbQZ6zFwNhCtZYfwGkTP4PwrBnXSjVHGJ31xsU8fR1TRv1ni", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qivhYqsy8cKhhpGBRZqw6aQ71xbvAJZVeNZtGmNM8egaHTHnmTQ5", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjxgZKsUwT5GupXquToPbPtt5JAoLMuKXk2Xu3XorHzD6BYiCHES", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpzwLj1hgQc8cBowzsMvbjK6Jnehup8fsrpJqoG84JQ3y2GP3rVa", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qijTsC9YqkBur1Gc7UZLbmZaNX6fwot3gcmscXKj2WWGUzw4W6nx", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmvNBrYBR8xtQhnrD3r2oYQZYAMBrC5gBYygaWUUNgZJFfwSHEg3", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqxug5Kphct4DWcUPkjHb5dgzvLnzVdEMetz1S7HfrjertE4F1A7", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkN4jqqmBipNw8kMkkutcfNN1pjJ1ZQGTw6gNm7MuYfTgVVgG1kC", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkAPQSiFWXHeEXqb87UJz6vMp3C1XxJRr23LbbikpUJMAYQWxZ9L", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqgqkzWbtVCmh9xgKGo5sVhBMvbHFCZDNQW6RfLnL5AXsc8ckS6y", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnnq9U71Fkop9wQFn83naq6TcudX3r8LxroVwBHWmcG5zSp91kAx", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkbHXvG34AjUH7kJhxAQVcNFfp5XibBHfphEfDAwbZgQQfAHG1Dq", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoWrFQ1QUFEU6Yb7iKbmMrVygPeL4LP8RncCxPA592fx4jMj3vQY", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qm9TUoVLHNeMwBkqrgrY6tB3JQVsRg5nWDxPSYy8uVuhaV2bnVpd", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qn9Bb99sB51LDpveZpuqVnbfxw6jw4KjwS8j1pNo8GHmcuCAztYd", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoQyWhGwb3kXuYWQ6s3etgazwgwPHkk7ZoVtYgKr7j9EFAy9LHee", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpwnQtRdDDQk2xUNz4pvAVh6SowVQKABx19oENEXXBGHyk3ZyaMZ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qknYo65yQFMPQhrJQu5PQ6vosFj8wuueY2GGBnX1ptW3XasAgukQ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnH3SPDYSyHgJ6MC7TC8aBZoMTzGALjarWdU4H5SjkxzSFPZ5zMH", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnuKn388jL9NTdZufLwMgrGDXW3Wcsvz7Jis8yz4viSAXtGvoYEa", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qq9P7psdTbpvjaKBgceGFo1JV9UZDDaw5aUpTNx9k56m1mr1HVi7", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qj4k7bAyDrcmh8AUu8pSv4KKMuFBmzPDJ8ps7UUwiY4MgJ45DgY2", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmPQMHyaTr4t7uN61PGQEqv3KcFUNurybX5Q6MK9k48PixRGm8sg", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkRcBJbiaWoEHoKaf6UJQWecEmZeiXhKSSsYWcFnHjoEAuAByAt1", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqQYvGomxg9RffmmyWg4J4t72yrPXcmNnU2FDDp5yKC5ZMj6LkPE", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qprMfQmfGKaYKrQGepVaw9KsCVM3ETfFSzhXa2Go5T5swmBV8mUA", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qow6Rz2Z4mAWcSt1nBeMmgRt6u3B1x35dmXfb7pJUJfPSUohgxU2", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrWLu3LD8nLZdf6Wutb1eDvauXqVyoCPwomA3XUK5cYjvYidEvG5", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnjeRfDqyLNc8CwN6EVtURN4WPrEwmBB39NTudnouZHNB9PkDPu6", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoLaox38o5yP2e1Xq6sig1UMnajWvd9q848F8pTvbDzKBkiKv9c2", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnTihpPhvQfKqWHAuVma3QLqpXD7G2CbSiAEvgjLAC74svwbdzTf", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmzZgSdLUCSmGXYaARo1SXHAPjo5gUue5D5hnsKYyT6TrB7FdL5n", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qioA2zknxd7XYQgKdQcGcX3qtQrF67w7T95Aj2DAxPDKJtVrcPn6", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjJRr1Bocsb8AqjgT8NkpEBcbpafWsfoC3N8dKXDUYQg1Gqz9hBo", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qq2auapnoTQ9sqQdDGg69TQJkXUkwnigBFGq7RNeBgXpWK5h62Qn", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjxnVPMxhhHYaYuKWoZAi2K4mBfEUxciZkheAEhuwosGm2PNS4j3", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qiZcgfZkCvvR8HqHg8dbE7uREqCzwCwWMfKd6PwdUqjUCDa8jTUA", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoiKHSuJnVbgLA4C7ujiRWANqMn1Q3gFv23aXMRt6TAQGoZyttjn", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkpxoTLvdaHZ14XcVtMyg3kiRNpeNkaxjGJGzztPjG1frnmmQ7X3", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpaebVggvBa4f5jfScr67tnTzkRPMHjjBanQ1n7ZHQCd3Ps4V6no", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qk9G6omA7v2JY6VsfStmvZfvk4PhEqkYF6UbwLNgVuqqXPeGTAt5", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqQzoL66WLsZZp8qVagnkLKxgxM7GGjdW16qPaWaPyLymK6Ekazb", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkwm2y1YjL6bTqt9PFnbtZVf21JjHLpvoE3Yh167HXxQss6WffWd", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqkb5RfCN64PzCcaztfyNr6fju59bVG8izW6k89k9EySLzXzmUZH", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnYpsNHCuPSC7CAGHZdZkSP6azM7XYHJjzVYETgjLtmNgykjGtYs", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qr2GQ9L2UkqdcpckQL286oUzzJ3tb1emss8jnNhLsdusFKJ99oAY", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpcJkDrSLHL32zdNN3BtszjcXjSfn6TPCiNTy9J5P16crPGpLrao", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qptUzbLy9ruPjzLgPG3TuKUzjwsqaPdE7qynSBW41uVsr5tYc641", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qngso3P33oHHyaU1pcBbcE94SBXqdLmgbDRXmy9DkfmwxyFER7xS", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoDmyHEAC4PFAfKB68VFoiu4m3kxEUBMhNGitd3wspXh61HHZozE", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qiszRspSwXiv5UzfMrSpquDrV2wFVLasBKJHLPnLQHQwaDE5DQhp", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrtJXa3ZtLe9dBYvLm18jvQB2iyaKucC6e1HxwUXYRyBugsNPL1d", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqvJiT348niGkut4LpuFAZ2Ex3j8eipjooUPgh426QxFsamQyWQK", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnv7nxJp46hDF19oC8Ymx9PWDF2EVwQuw2VhwRS5WYPqbkNc8MmU", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqToZ6BvQ47bMA55SQvKpQUfnzbMoMYjDdxq6VbYX8W4xsPfZBNk", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoCN5s49yF1MvF3FYhNUeswU3DMiLaa1UoB93xXVB9FUiLwpmEVF", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qki4XdLH3cXU78AonsimVrcMUytfnsbvtJwdRwo8qT6FtPDczRSg", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrKHKH84uXMd79X6yqjJ3qPiPvQji74QNXM3EcLbCUiTVwQdRs1q", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoHGYSYUWGGRhJJdW6Bqxj4qtq4MX3MbnEyDqaJvpUvHwr7g4o11", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjNvQhpadosaF91VWbSStGtRawQrEkpMVdtJEs3DkiV7PUeBoaL6", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qo3XFy94XTfMBBBr3zYxnwSG8T3qxmGNxXQTzmMBTQvJLdpBL2ba", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmZpW6kbAWYqjJY1bdXFewguw68urAfz9NY968xyrAUDdHyS8FP2", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qiwd5p2vhmabKmGKZJdfTeWKKReKkrVk3jZfuWmW5P4isgegaHgT", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrMYVazR7uCvLVrjSp7ygiWvzetUZFQa2wRBWzw6ikfzdFmNfNdd", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoEkQg7VxqMMgFHfEyMtGkY9XMiEBXQnDFt8aFpNxfr7e83SNJ1H", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qidhBkjD27Vapzfk71D5zzbneUoQLZK9MUKAUTjV6DFaH5jT69sk", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoLdqsBVguLV3DJ3MEdesh8nK9hBCjBfgX1PaATNZ369Rf5m8ESm", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrpxTpWDLkr8nMKec6Jjo1fESLzTh6Fj5sZsEWz7sRLNN7ASGUHH", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoaqKsihueuBgGWZiZzWGJSwyEojjwjuA39LvCFn2FvBZxfYMnN5", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmFLFFqcErMYHnoZ1ZZVeiqLtwKoA3QrLJ42e3NKBCTHh5ZVWJLU", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnNTz9aL7BSNSLxL4Mo8B5o1vb43kwYyKUcvS4orehWnWJT1xNkk", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qom763ZRaHH9JmLqS9gsGATvqqzdR6myw3jKniG7gzRu4qNUkf9u", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmrNd1MJGF24d5b5cmxumLmriEH3Rb12rFNxVbG6RQNX5h9mjGSQ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qo8M7G24vwFmvgBcT7zw2jNcHqGJ2MoqodMmPcEB1bT8z98Huuhw", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qj1oQRqHL5h8Nf3krTiuiDNNvYTRzpYkWWNz931igkRW2XspH4ry", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qntJSNG2BX7bef3k8V6ChjXfn4FVMYtPHCke3ttCbFbExZmPKHia", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpvHiG6EW81faQXzYP9Rbwih9u9hQHAHsKxVskj7L8aFFKBGS5NE", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmvaM48He7oGBAbYYxDrmarnh4LfBX6GyTY9b18ZrE1jVxaGhrRt", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqZeqb3bLg9weojaSAeswXgrPEKQFPUSU1DwFw61vHEnpvck2Jhr", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qm1H6XD52HTnhqdnVFDUUXb6jJASx8wanTKfRSA8FaiXX17mLnVF", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjqV5nHwGK15XmCKRwYcn4MGosD6q4hnShomRhLU66on83Jw3uee", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqkZjCNjuVqVdyM5WqrRjp2UZUdPCAGPszcaPeSEuXBpESGBWKvD", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmMkV8YxA7t4JTvHtDK4UnBGJ32kUEJ6863pTCS2srHn4esAReA2", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoQYAGv3UJoHBnHN4yB3aBzZKvoeGvp3SHWNhbgamhc2fUGwnTE8", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qp1DErbACnkg97mdSrJKKwQhZ71gi8DvB8wWDMZzua9by9kUqpou", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnhVPYjtmvjm2FPkkypf8qHdtJBKSREku9jMVFgzJJ6ctexy5Abf", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qovA47G1NZ9wLYgyy9Q8kwQSPR7DseqEa8SGjCEE75Sd4smWVKBt", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjcj18vhMHNXqvhZNZH9b3fUk73jXPnp5pwvUhjZhLTB9qjq3A1p", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoNkdgoF1yv4TLUuHBvwJfzEtet5UnYWj8hD4Z9umCm8oq4jVoVX", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qn2YfYXJSg28DMsoWaJpuQUbK7bCvxbKtWCXsGQyayitWT2xu88N", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkHdB8ViuUrs8J24NxqoGDwhC8PBnhcfX4EBqhhsh9iBtQJTFCge", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmxGx7krPrN2mTxooVKfMFPsueDDVGZdAEqrouYEzhATNrUHR3F9", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qp2Ue7cPMiQdeH2B68dhCwk5suVUsKkbRa4Ax13mvBwBVa5EKGHq", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qq95R5c1JuL4cGoXeC9yjFqPxZxfDaRk2yxDsGrHqT5mHBvVbhMB", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrGEdTkFh1UbtfCsuD51ZBNE8ERjcdVPoYeLFrax61S8QYoTNXLh", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmJi2vaT1e7jk6FiSmwPjohMs7gdKVR2sGkdPJ1ayLHrnr9dNMX9", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoKiYCpTXfHFjenE89dPy2XNbyFjaJi92dw49ptzKDxXh87pfqvP", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqdk4iVbQgq6awxLSeuqH5QM6PEf4tiy1pis3mHwGC4u3cyD6uqf", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmeUMbzeySBv8C1fwLS61GoNxiMG9bPFt3rzFZbDHSTx3CmMAxc8", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjEmMr34c7iV6hvC1LmmpTpWKUk5vAyJ5cnaVGJYiFwMQQ8NUYti", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qm2f8K1uUwSrFtBVWGEYgXfyvPKsBA8dsAXNZGn6YNWQBsP88mj1", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkBvxv3oUvS1tfAqSnUmaLoQhURGSjfTGfE24nCJGvvfqQGtgFvB", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qprEUwtGkKFREYbtRxHYGFYRrhYNDgVH3QKu3hn67nV1Rn7BcXS5", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpNFPKWierFBno7TuJMDvwMVehDotbrY3UEE2gu8RSTxmsQ2Xphc", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrXPTyWMo1V7MYneq9tpJqNBnUTH5xwLyZmEQnvoCmxPwV3uaCdA", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkWTycHL5dsZ4Eq6wgC2txLZ1MvwPBiXYF5HnKSjrA39ieCQGYkJ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrGRtXghf63vcbMxHGx7MTunaFeB9UZBwXxqM5D4XEeMGUDzjNoM", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qs2ShjtoKNEbcHNrJ1yBZ9ry45BM28rod9AWP6HxSEPZx2TUKuYA", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnka9GmB9fnnBon7dq9TD5c7W6MedQ1G6V6Tpu8btBVjKNkTYJ8K", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qo4q6Jsx6fRDR22CiiuuXdc2EWo4VacNjS6XbCtifER6n6vf6kuq", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrwtYRAxR1XvyjT8ErTjJhhCmmQVwZeujTdYzn6vm2cbEujN3iLP", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrk82h7EgQ27iyXKt95omPWTxC7fQCq4UVzt6AsKNjsj8TQGVz5W", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnN5axGwHeDWc6DvXH743qEP4Cp3ykkHqqKYwfNiHySXbBVJ8v16", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnFYNZzzk9v5oCeiUybrd2nD1gqrUMABccRi4R8BAMvw3hBeEHuX", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qo4uXo5gPFca2ScmUmNiKkEiEFLTNow8xvon72PkLArLz3bgJS9Q", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qr1WWuFc28xibp2BKB1Q6JDwdiKJZsbxzDpLjRJTzDoUPCKJPkmN", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmiyRvZ9px8h7qEyycNuK96xP1itoxgDSw98QzJCsr216JUUtTmd", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqWAiee7udyDKrurSm7qaz4NrWNq5dUhD4MafSZ6DjgpCeZzXUZw", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qknS1ByATyDUEpuiMARUzVo79SE92XdGWE37iYFbHnBnBFYoMnDS", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qiudJqqaYSDuTJK8ET4ngF63y4YY5NcRGcdPMym6icdT38AqAQP2", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qo1hACxeyAGZvp8Y81WmYZLrbh5p6iQ132tudhVxxDjEwZjcA3bJ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qj2sAhxhvrfm6xMQgaqVQL1BtoLw5zqDXQvJz7JQomZHwFr7je8T", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrq6982NMKHBu4zm44PoC2wYeTPd8egxbcgyoFurAni8sV7hMPMq", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjnyw3BCjHzr4BKDMhSfwM2auVGfZ8RoCVoPBMVAaKpH91Zuq4V2", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkZrUwS8FQTe5U1YuzjrHn5pcBb1VYu66sMoZYqyU9GyxVixTvBJ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qn9e67eRXKa1qiWhn4uYoeo7kFZhiJwtiiGaaAcyt4MaqSftr1ML", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnVH7hrgVRSsLRKeAQDpg83TAstXPDN7VCErwtTSX4fHLcFHdonB", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoT8QNrhybxj1VNo5nzbxVuj8ARd6Vuy2a2Y8EJThcDZnjt6q3xs", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnAU1qcLfY1MJy7YfibNmjw9bFdyMR5vh7hq4YXs8KjX5k1ugydR", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoz9J2xazwxvEVoeitnuiooR7ziSrvn5jAan14RsekaLhwyudmK1", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qro3zPfo8BmuwqidEQMid468hjFVR7Pek12REsW6s7Ye6q9cusaF", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpJkNcJh4bFTMskVnqjXwDf8kpz2Yg5eqJc6dhBjU6VLTZRupLo3", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjFKV9EYV6rtxP5wWvxXvj8KNBHX79tJiHFjnH6L2ZgtWUoKukki", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpbzicyveFFYPaKrJZdpLFgT69BfYe3Xd8bvkMvfjuEKPSeajUbt", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpgj2wNrzJTGpAXgWREb7hbRHGnW9jx5w5HSjNdnRWojP4KmHX51", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqzxNSdEx6wLdYPLbq2LT2fvGK44qV4ZsvQFU9cCtDrJeBP4PqaA", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqcHpSxMQ9GEJHWHrn6iDx92pePbCw56WSg3qjKHy66JCN1YrMuX", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qprzvE2FCUqmFdk7tVgbXcgTvQK7MTiJFpBjtFQMzFQHjuj6CuSV", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qidav1UEXWdyARZskGazBpZvUvN9KwUAKAnn9DhRAo4idFM3MKHZ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkQrZfarq2hhHt5SwZpkyTkM81wZyx4uyAKAnN77KZAr7TaAFEJy", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrWWRvH3Y97ZcLhYUZCJ8r8eZYvuoie8nqg77dBggPjgbDhMaojd", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqBaMK6grGt8M5Uc5pLWzn2TD2xPYHD4PWtQvZpZ9acLBJPNkQZV", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnhT6hQctCgix9iqEt159UtL7UasaMTBnRB2KixiJMaDQo3wbiyM", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpVENnmUyNVjgdG6Hy6xCKmtZk7D7uhiYDoK9rCNJscwrDQDoRU7", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrprH4ExLd5B3ao7gQDVRkYFKmA9umE1vrS9ZjEEhK66yywgmPD2", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpQxcJu9ybfsURTXYjfsGG3vRkDswQ36VsXZ6VD1XLaPvCcjnPbg", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qra8pB917towGQrMz3hU6FV28MjHe73jhWbmxERsM9t86ksxmA7o", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qq1bFxZQnXB8N68kPZUGcqiu1wvZdJpxzUuUNYyojRtdqdb278J4", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrHkz817NLYiTJp2ehTRfcJajYm2AiJ3YPNESQczGyjVK6kHjQRN", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkFfvc2NWLQHkSRLnAKRABitF9imU1MNzAovS8PTxj1vqAggFN17", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qo6nGMMNcdDFfFLyqMVTiv2TqBARKytZdudwXjj2JyS6cRcJe5tZ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qoASHfuvn51mgRQXyBQN3UsTLcnWC7sK9GBBsswPVCBDLyg7xTNQ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqf5bRYQ8uJLrhjnjyZCcCCMW2UJBLVKQG1eJNeM8PMtUq3LYaA5", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qr6Cgox83nujFUfZtPmfimsNzVmcqKzePNK63QJ4ywSw4TCLnCEp", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrLGeyNXkHU1u1VJmzsu4szkZStrgXgZqU7uGYBNT8QUFjCMzp8p", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qp2w9kbSJGGvCZP7CNcKD9ayA3evhs46akp1PCRZn4R6cnSy9Mzp", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpBSJe93769vnoKUx8VQv5bazBeTvtpCD14PHsM34e4Uh7btr7TY", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnNERk5nwjDWWzs2bWEsp8LVGFCaKiYZ5mzLgpA9YhupUR96aSW8", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qk7nxipsLUigieWk8xvpkBVB7J5gxenYfL9k1nF4Q2kVH7Q11vgq", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqYBu7yHvC2fHR2h4kCTrY5UzpNqVoSvmBsGZeKAjTcroZEcq4by", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnzcnxuuhrerqde8dBPw6jfmNiNcSFS9LQo4Et67tbXvqdyxopEz", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrN4Rd7Q8i2kdDgDfMcXP3iNuHu81SHswb3qkVn32iZMWiQ8XWfg", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmnMUpZ9Zy2LPKSXpD2FDkXeMECxwWYXuF6ftAoFHPUi5xGvcfyR", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qn3fM2Ma14z91aoY1HShkXD1NvP539NgwAb8ZP4gahcqegvqNk8E", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnj2Uhxf5HHYe9pjGLwV9ByeZFPGpEHC6KSjNBg46on6eMZRyC45", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qr29FZUJMeHRN7sbnFYDv97HT31gwWZNquDWetGy8vghbCKjX1Q7", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnFE6g3MRgxNdC8R8KBGaAvTMgRXFzHeE6F9eqtGEBBSgXjHuyQL", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnM51iE4e9K46fZJJLz1nmc5VJ8khXz5f5q9byfxTJG6aNtz4Jmp", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqbxuGiV5Lji3AxVF52kVvSEmyGhHxbbBXxhbvB8xieyseis5dLx", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrWFiXjAQvCE5SfiaPNdTX9WSZJvXJCtxjy8QJRz1MJ8UkFwvgs8", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmfZ5e2H3UYRBUQCzb9L6GCQkDuBeKkXvK6poJkU1wFimaGCtYLr", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqqGvdnuP3t3Nc6a6vgRUp2avNVJ2k4jXXTtxVXtMTPxRqztcSdk", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqSo69YFig1t66PgqKJvc3EMPLemvo4FPSHpnFdrbAmmDa7dW4Dc", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qiwfWegfqkvX51j2if2Wx1DXSYshXQaKvXE3pE9a14Jdy9ft7N66", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpbDy2gNawgzjhpxBfRetHJAm9vU3y4B3GGtyuPPdmtbN7FBYfS9", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpSQRqVLU5UPNn3cACAjhBmG1YdfVdHNsk9aESV5uxsv6NbeDJzJ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpYJmtubhPJGpK8EhVBHxkZsJL51mwPxTdnz8WApKpoPtQ4kwE7n", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpCPZHymuAE6famZdV21T75iJd7HoUfBUuTHwrwxgSkRhsxd7JSc", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkDtj9Rej7cYnLqB8BHp1AaV5mRa4PuijggHNPnBPyNB5AeKJPtP", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qrQBjKcNRGspAHEed5Df8FTCj1ZxeCWAAeb3uyWa4eQUnBKAguFe", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qiTP7o5Xy53uLxBt2G19igwiBjWgXtcSG1heUQf7r848KdihQ8f5", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnAQgVbKR14Yp5t2p6BxxUmPrW8KspWkcfN9TopXjyFGLrfMmFU8", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpP4kAtj5HUmm8ypybUJSAJ83qafEUBGoUeHLLoe7igyN2ELPoFp", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjt4xBXZBgERXP5Vywy6hwsRiKghTkcQmp2Fb6tRwJnmuCFcGBL9", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qpAnfs6dC2o1yJiQH4T5cqGSnCnZj896bX2v7C3EqzP9oCkAVhKU", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmC3AfgvF3w2c5JhigBiWVWWwYRFDAi7ArGzWgBYucK4A87xcQLn", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qm5qPCnUNmczh4gsTkk6ALhy3qLxHZdJaMvmgXJ1dBvbUwwW2Hk4", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnEkxwDaFePStCLFcSSCWvgXEoVMjVcnwbckMUQgC7NUke6J3Edc", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkC4S41aQYNmR9ax4Hj8F4CZH2SjFZC5MM94kuZTy7NJpdUuBo9P", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnGYGKhGWTkK9hEt4K7Zzft6EpH2AN9y9d6QunbHNDpP5ZPj9mfz", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qk7rm9rPTZzW1gYVoRZisrzq1YH33F83759RCReLnhGybf3dF6Xt", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qnJJtH6B7K8s8NywLXwJ5WfaRUWZ5LHfpSNs7pAdYjhRaVkP9JjV", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qn4JATPsENYJEMpKJV8ZexKeLKnYq5sXUQJ1miEWDKCazfCjw6ve", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qqckKCYtoG3xDyCHTrE1XoaBtWt1swp8pcnQBirmEXBcK8RA6cQ2", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmepf7e1Ah4Rokdu3fQDTbJxsp1L5AMXXmVKsgo8fjRekxQ1914z", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkWPa3bjyixFC1bjd7sJpBGDW8aL9iP8oi3sJx6NL7Va8dLGfQV1", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmH1ytGzQMD2MUp8qVcDG6ERrkYHaxHe2QtmoRQR6GcWGaeFKxiH", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qjmBkHcUvEb25isRN5eicpS2pustVn1FYrYPzsfowMjY3Pxnzya9", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmepgabofajkAGqLVVuS3MiKkqPwq95KG6cP6mjvgGTKhYyn27vJ", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkJPSvcSyBP1Ssohp1QXUdYe4VxPumxbUBxT2hg7v8zyxHEVpxrq", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qkDM2TPxQry7oPFwNChYnqzTpyJPKCsUQMptBnKAqNeQP38nZ9C1", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qn3ja36417QtpNXHCimt7gWQTAzCSnt2WqeeKjQLxmSfpVM55z81", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qo4H4LkxBVZjquVrGPYhojWCpRQLwBWhdrnksJUY4gPpeDjdta6e", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqbUBJHVsrx7yoDEgAELzuw2qbDnGupFi5NcLitAYih3HJRPaqCG", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qocrDxGctSTTKT6ixjachMw4x7NZasB6GC7RSFy6Cw4Lgiw8koPo", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoMDEaaBoK5594KaVEbpopF8HejuW4dYrRAN8CwVzaYoQfs2eHfC", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnctxw7Pm4VftvaSE6agF6TSeMgH4rvXnDJUSDmivDwHVKXDedSN", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoxuNj471eDdV8MdPuDPSnGWxjLroQJDPti1P5d69HybaWpTrKMu", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoA4CNqxk7GdiKRnypBGsEk3kAT4FeFMJd3A2vozFxLet5m7jayq", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmSnAXHwi4E6eNGsbGyt3w8aW2mJXhKrsm2vp6WZorP5wCDcb3yK", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrfVCcaTPjrfYbuJgzwqjd54eFcf1ReFD8XAQkcSUnf3B7ZTxmip", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjcjASAA3ADcxc3pER9hGV1sWLmgZFqgXHioFGbNkszYVxd3kJ9Q", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjyA3x3BvVyvqmzD53m9VyNNCsZwibrvdePzP9t76rKoQeAXmNP2", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qn5XtHMcfsyXQHtVtNxgdBTQMjpjCHFgrmE6RyYNDJ7H3rwo2yuD", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qovjPu3VZqbKNyuJnAR2gAVtEeLn3wuooWhCs7R18GwHkXbvQVyV", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqY1ZFPggdqP3Q5ZH9Qfh6oKX6W5sCvHcwybgFTxQDowC5FhYo6M", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqNE4K8Jeg4cNHjfDjMFxRBt8bYgHhb7veFReVVz9RZLeVsgDzp5", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qj5J3K2LP6MSPJtnSfWu9pUbL3VcbEqwpridFaT4KLcMeZZ5ToVd", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnJM4woKZwXsKCKU4pxyXof8TVsogKtfNKDhE4nhGwLgxahU2G79", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkpSN9Qyxo7QCaa9YXoNE3tVhDfryLuTMzotRfUXRoj5qxYfTdRm", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qr6jwRJdAJqs8NX68FF8gsiN8ynBqR7gSjdF7ZQjwXwf4n7x8JFE", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpbv9Q4ji8bxa1sHfFYbAZPmKJ4onGsSgfHGJsNSNoz5rg7mFRag", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qiW4xvQC9GQhSZBWHxMx1HC2x4xVqa2ZbtDJGGaSYgprqVf5ZViA", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qn3RtUsbaLFqA5zQM39He5firWj49ptrHzjmcRjEdnCTS6KCArpS", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrgwWcwSZ5fgRLjP5PdAj6NnQTcu7DNdKaXkJX6HPewEpoRcYVB7", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjkfRdnHSiwZGNisPCZCqU8BGizWa9hV33QtT4AsM7DfSJDkwyXb", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrLDsf7vSHFMvrjbGM6ASgU6iFZ4dvFXkq4g6PtB4gUmDGswruKR", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnYmqyGbEM2oGUiBWPs29xKPFqUfm2QSi3SZz2qVqP3cQyc7p4ct", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qq7ETSEaZV3tdZpzGui5jHHa1t5bNtZNndxYdWvvjXi9caoQQXUz", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkc4cq1H3Rz8SnUqW62HChc9dYEkSPg9GLVT5PNMQGTMnJrjWVYu", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjYzTpAFZNmLGjajqAY3nQszi3Ki4pc6RiY7r75MYztdEFfjoEQ7", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkWNK6T8QRcf6QwgkiZ7pRpa21nD2fb2QejSsp7Ruy8VgAwuzsr7", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqPVzdXXKFL4jUrqHcwooB6A9PPG6e59FB3Lqk6ZW5SNqCKUDvxd", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpKuPCTnzuKSBEBU5wSkzoD7Q3i1yrPXNWA9QW4BynYi3dB7bfnx", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qn6ZioxzEpCf5HtsgHYxoYKTf63tP4u7KyiNEGEpqqSNp1tVz6pj", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqiH75qp2yQkryJpVM8LYj6XmPGeAsHYdjoMR8FRPSEbkaye9FSE", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoJMBeHD21qASBdAEMDJAqT5o8vwXtVYyJ28ZR7sD5Ha1cHWrX8h", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqLHxWADtT5LYorToEFtvrKPnDXRscRzncfZTUwp1k9S4B2SAGDb", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qk5XqUAin9KhYxZwft1sde9g3U88qKR1aNENYQZxeSzu3eVUMt3o", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkugeFzAaJcdEjTUEwvubLzApo2suDs4PqxBjnpBnBFN7uFYdqum", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnLCoDYKBpXXTXTTSELvZbGBmyuy4kfa8azsz9f9uZANeryMug5X", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qr232osURJ3WGAnc1njAnnu1k9riorcXvEQvvfuPiq5UNvR4AJ7Y", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qk5BjecoJthnho8nUZmuHUqmRX9cqJNmiVuj5HzLvCSGfjL5bzcP", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpnTsyyREoWEtib8cod6LcZBiBJxB7JkPwYJW43aiMn4meFeyFCt", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qs2TcTJY2ASHZTVnzzk87CxwNX8UAb8nadarcWcqLKSzKdq7aM3n", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoRzNkeVdr5AG55JTHvpXEuJfLydEvPqsKayKBomPsyf3EZMveMP", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmLk2MEz8RB2FDs963kLnUEF7rbBpgosoonQuupG2NcxzZqmkdg6", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjFKjNWuWTdQsF7L2bvemPgKV3z1eTv6ipcKk4BVmj7QhrFk72Cw", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmtDg9jVRfoy44YquakAKWK3tohUSUxa6A8utKRx9SnbdYXBt8V6", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqTuLoMyHNaJbdZaYEgLj8EqSBvNWMF2vBmT9yxKe24hwMnj4Y4F", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qryCKnyLZMrvCxRZ9R8ne4vAC2knATsqDKnW1wmSyJw5XHSrxdvU", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qk6G31pU2fQPKzJ5zc7Yy1HXn4mvLX9ehPYuoowbGEesPYGF3Kn1", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpY2oZbqcxbL3Jys2r42Zk34PiDddk2M43ekJkAV3Hn4HSQTKqLq", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqk5cU5yMogyuFGuvGBmmuD1oWwqX47MP7Pyam3QLWB4Pzmi4xzE", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qppq9PeuxDNGz55nqj6NrF7tCfqkv5MdiZxys7qG7mCaHbqBwX3g", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoD5DToV2Tjc86utK1JBwFHXCdNixMRaAJgjNiwcx4ioT2fTej87", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qinPvoSQB5TxoDP8H9CudQjSuPCN8BkSCEBAjx7MPuhkzrMcQNeU", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkLFScX2v8rhtUBD7DuzuPAiMsXusENX6RbUC4y5fX2Jr13Bv1Hg", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmkvb4jsEmNt2WLXxnceTfFDsbatygurYmYjWKHMStSspS4hy33C", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qj2jiWZRpHBhSe7nUTHZrg1mSyjBz3StYGQyYuQMQDH2FHSe7FdD", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqdLmpR8DvKF9LNJB78H1X5uB5oKcNSbRyMqN9V96NGeDpT9owP8", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qogt7rvEHsx2dBiLfVEx6gTL2hQBTqSchTWHXgV4vUbEBr4ZadLV", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpo2sDwihcpY5uybdn75FjPEHPexjGffPaB9ntN9xUgF4CFzFDZj", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpxAApZGYLEcex7tF7TB2EobgRmEiherhond5Atkd3hfcz7eyfsF", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpduVgFkd1LVVd77PPmkXijPex9KNQboW2RhXkBTKi5Fwepgiy5A", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpZVt1pwah7YNMhVTuHus4yr5agHAEBSaycLoDK8mys7yDpRvknY", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qj4bhuCZYtCpzToYCSQk1SB3fbnUTPHnQS6pHUjKuQXC9gUHRLGU", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjwER3jNmzN7H7onu5Jp68fyjE2YDVu8QbUpua82SooUXjQnnnZP", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qovVtsWUpD3UAQvN1zyjmjqT76hFu8m6FU5x8RbJgNW1iXS1h9wE", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjxydXLxTP3ZQis1d73Ria6ssn5qkE4bkxH8NwT5rLnHvBHkxCzu", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qksZbcx4pWp4HER4LBG87LUrU5hdh1uy36jFBksho481HuvRtaCP", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qje9PLWR7VzHR83H3LFxko9yVnm2nrTGDZFVHnKEqPzTBzk5AsUa", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qreQr7nSbGYMGbCyNFHVPTz16mzJ7pnZNWiMXZQKAdfJdUp7AXUu", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqf9aHgJgyvfkA8F3anvmfDLHF232tNqCvk9e6oHZZd37DduyyGS", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmDNUe5RtMS95xyJTMTRtrWRLhtBrJMK1LAcBkr11XKjg2tCLvkJ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjVcF5zWQ9CHe8tS37suTZkp1b7pvYvorJEjeYSVyjQu6v6VzYYJ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqVoMWBGLfXTYuDyJk3VC9qyQC1ki4Se6Hu2aGvkRX2tLpAoTH2s", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjTaLRXt8KR7WY321BuxU3kh9KQjoE9CoUBMPjcaBcK3kRWPhCDc", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoY56bzuoKZtser43boU1koa6mLeQgniN6McCq1CXTLDMQkXhr48", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjUNzwdRTtxXEHwj6RLxivmCThfYqvBSAmkmZdGSEfvMSyUBM4qM", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qp4QWgVDEP1PaL6LJYA7WN63wuzQ7KXZPDTikU9BYdWVSrZQ1wnh", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmuKAkRZ7iktaCw9sfuFvW12ey3KgSQZcC1H6BHNCzvcm1NmnC6N", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmV6A8GTgAh6VhQ8dXd6bSbfvaB9UwLxkiiPCV23dW2P26ZyAQ6b", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpTgv2rBj1kPpxALRCciCad5TeRZdsr1a8NAG5vjket9K6sSRr37", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmqogxXKVjyGJHWWRdoj5RmBzNCWE5BJpJixeJzLGGDqv3zyLsDd", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmXeuPnfNdiZBf2Yu6DnF4jJy5SbqxQnPnv4kMMj4r9P9yTPvM5a", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqGterBBcSnKjsvrJtBnoQPFokpw156AHM7JQT9FDzQRWekWb5ap", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qq47hEMDqXDCrx6BJPP4krPvLu36QT4oZ2XmUoSNoJcfN79Y3hmS", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmSosJ2DJustz91zbNLYV67coG4bioVgystRqifJJrUerXAQNpxr", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkqvnjYZKXRHxgnv6oT4F9DGY4P4jtUAK34QQxFUJx7yHHAdHAAe", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjdySsxifAHaeukgCyYy2nbkQpDw9UMcuRayQbosjm4c4ikeV7r8", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjPnPvGFPxBekciSa2ftX7XdzxX9ysXhnwkEwrNAoqURLyt9qgcv", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrPKL41DhCvTCAnMPULKj6GRBm9yw2gCEqNijsan5EoFgiftEzum", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qp5cyhhcBKTXEFSGNxswPNwKwUBUVyYuNr48CgN1VCpf9qsrzvPe", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkspGZ7i2KQPSF8Ny7UNrH8mHqkyzc2ZkwWBsVicuGvkdhjfkb4y", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qne11CycshyQvmokKKHdZQdtsbr78tLWyLoe8dxuE71rFazg9YSb", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjrMxPnuYbhbh89TPzEgdtAhXkcw9GbuJDwfWLVqVg8tLGTP2N55", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkmRnpxgCWKJQN1cJEUiuRjn67ZSBXJGxqC9zCR4iV3bEnapiqBp", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrU9JCxCcegZ58xTCbL3gqgDESdy7RGreeMQ49Gbn6kPd6KB2rwm", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnpv4TDjn3fggZBTDNAmMU8uTAU8YhoH151CfLWsftFxxEbPtPaB", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjXZ1cXUcw5iEHVXsC5681fM3JAW9YMxP93twhUTmr7feVBpWmRs", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmziJGYadvNCvGeWNEDvJgYnT54gRXCG87CPrHvmRtEyGQa6GpBz", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qosYdoMd9aBRxc3RrDaCogLDzp7P8vyvVB3bvaX49jnkpJeNVFWo", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrwStPyNAxJx2MNkQf7xYYMRtrBVUckNiTdieb2yDfMig2RQvcKb", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnuue8PQA7XgPgEUrZbB7zm8k4AF1L5nWN5Bf5tFREzRkDR5EfE5", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoRYHUSNka4sxDSLKVkoocYugAxiTkNo9XmupZ6jQX8MnWWMnbQG", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoBE5sMHSApHinQPvE3t87abywKrJ5caqeEfqRkLoJMJHpm4af6W", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnyGA8ZTxcrPa8ZfFAuNTa3CC1WNGUPSrBSeQ1nZfwQCTkDm2ofN", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpKA25yvRtkw4ay97DpzMFmifjD4UghcAGQV9FZgBucU6p5dEKPk", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qow4R57pH1wVsrfmCXfxeucQiNvoQmb2RSWDbNthaDLH3a7r3Ub3", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqDtKKpycpyLK11Jx7kDvsemEdHBrJhrJjdnG3xnNia3gSJW6cjo", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkTiu2keLfFsVuUVX3SjpobpZgZ4FYApoymqfvuwgCYAQHACCgJt", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qriRVYCGhkahZup6Q9U9HX8nh1zFpPhFN7XT8XBBQfXMzrEjohD7", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoApYZ4eSb1YkcFecduybzMy822dwLJZ5UzgdJjQGULACc8JG4YE", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnwUotubtWxxEjVg56VA5jmyJeKRMPQB3VJrsAZ8Thtvuoid4x85", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmTAnFYJ5udwiXSJekZEBc5W5Jk5Nr1SrsDeLSozzDdfXnPzK9d5", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnREAWVMCRH2aTcvxN6vnCAqL8PZCFUg3gDjXQnDZknvPM6HfAAc", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpXHfES29aa2yUjZo4RC9intH9sEs2CF62tKqHrPubm95R5wmyKS", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjkxLM2h5Mi4eztuurLQ3UhHQKWuiq2PT7YiR9D845515ecmiXCW", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qp4dqzbD8SCG2EARoVUb4yaKxiRYenxZkAbFFKpnNkFnek8Cfeux", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qokUkyNPy7fBXVnm3JyFBrUMKCXtoVEctzF19CAEuAJ1A9CUyyLq", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrUwsQEzyMniznZY45QvGauf7S5rJgiE1bb6XWFyCHZFvWq2K7gb", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkch6WpSqKkViFszgu2Q7fRdaTe1Mw6CAewGTGXeEEkNCaPaf7cW", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmEK6xUeTGAdjs7NjshtzcTmWerhznd1bAzcmaCCSQTuLZChAd7Q", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoVh6e7LciSASraTsmmxDqoxq1xkat2gctuTy3bP4MANVQ31zA6z", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qiVJ9MkVSnvS8C7Dmoy3s16Xp9FkMZbBfi9dMfkD9d2C4KxPbxwn", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpopeDAww26Vpb6ZEfYKunK3xoJ2GCEGFrYh4Ceas1j4kvuGJvr4", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkxTYQLGsWpSrnWgBsamZgizfxXW5YLVLPMFJ29LNop67qVJqjE4", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoBFH5P4UCXY4LNAA9i3f4ues2xv1Y4xT5jhEd86PHBXb8DnenRY", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkDQZkZB7RFbWMLp2mmE9SgBpbrxtYAP5jCNuR3aLrDRqestr4bJ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qm3f8LvMigbKTxem7dZT94QnWerBiBsmqS4iNyxJZR3WzpGXW66H", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrujMKbNAHiALVuD5X8njcMedm5gutscyuegEf4FWfFAH914oM47", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qok9yNWfmnviFNeGzeigHqPEzXQPXA4wzRR8NVuu7LS3uKnfmGsj", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qk1aUTdPDKL3QtQVdDV3P558FSsMF8wAyppRSMQqhLEpdnEotayZ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqWi5XLzaTpcobi3VvTaR7NkrcoyE2uzVTUJA6aXghPAWaeb5SuJ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpe43Azt9oyNU4hNYP2415tkh89MrUEBh14iGuxHzz3Y1mzcjmED", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoeLAhqrGurUCLQ7BBvF4dH7CY8RE4uiQRv45bRi4nPfucDEYDE8", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqKaHh52xMJe7BHxQazwsUFjoRcRSR3sFkcG2SrgeiBJzpT1psTW", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrauV6DqqNV5V6aMbdWMkDVa3VpSddsmcFsiNFcfwgpGjnDGiiSS", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrsd78ReqZCzwHV5nEiFFXS4qmevMw27txhHNWMWKyNefoeMrBjs", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkWPt5w6CsVm4jpQ5dgkCfFe8kpHvATESupZf7viG51Bad6A8y7t", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qot9ZL41vFuXNmHin6bi1rkt6RYY4RGzoT1r3n5MBQqfvucHmHUc", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qn87CXBNWG1SzktH4EhTeku41V4BzttvewYwagfZzAXjakg2sm7P", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrh7rVxQzd1PCGGV9S8VCsfiUqTuWbssXarJ7nMnBfc4pqpw95Ak", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjKSc4uuKPEzCmHGo78gQ4R6zXNnYxCxnN2RyKPqJ2nbohsp3Xmb", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qobLBh9gt5Tp3QdBxejnJcgWB2rBFxNiu96fJN2p6DC8rkGg9BS2", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qodty9Lh8tdFXXMMhWoRoaHNAULcBkNLTeg6azGZHrX9vSrwnpWD", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qntYCJJkxtJYNEeDec7GrT4CqoJzDWiULDNCAT7uc1wggAPwKg5d", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqQaGpERt2xq958KbBXnP4ZbjndLZ3PzgHhnvi1bUWTNskpmNGDQ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qixg123BNiG7NxLDTXsXEVHNrUU51cWLv4YpTTcbWdDBQmscbyT5", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoDvaqfReSvaTBzgzy9GafZ9vC2J5Wr7p4tQJZquU9M5a4x33ADz", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoHAHbUPPdKGnFfVZh4ZpTQNipZweEss8vwuubN9tf2y4CTgyooB", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qit29vbS1qsEQXpjtntgouoJbrTPKszjkQ5nRsnzixv2Mjyos5X8", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjHkBCxVAAmoimyjw5P3aAxxVefSncjDApdxg3tXDsTGHpMuReFf", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qojaYAxFvLm9jq7e5B9MFHGdYPNoXjfhoVBduHn2q5zRPcWAPkC6", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qiXNw9EmNry5YF1woNwE4JUZxe5ivwcfWjwmeHfoaYGzrWjHMWpm", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qm1nzNBGpinTFA1zRek4DDZbdyMh1n2eZMmq4Mgv4W5SnERatFh6", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrDqiCiTvmUB23eypxyLSSbkMvqXgxyJxhKiKpiJ9XpTo4mXqAwZ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnN8kv31KpjrLzJy1FN5WcffEYSCNaSLah8wMm2AmPKF2sR9FhEf", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qryLbZuPh3qYmtqgyVNB5DGTsM8GBVQrcvH7nfLGmWAErtgfDo28", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkXMNDaoaftZ8RfDu8jHTgUAHGNhj3Dtjxgb3qeL48qB7GkiMnnY", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmt4FSSarAr2bLhteXknyZJekxSRByAu9QMQ6ZHV6CcmMuxi8R2v", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkYxCEfydWsqYtPu78tAUFNfRkc2WcqYMuBJbM3qRCtG4P67J8cj", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqMzFiSCnkKe9yAL7nVsaRCkLU3XHZqvuj8PvAQVNVHaLk9t3TZ1", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkw2aSTmPRE8eHMW6nqJQ78rrzgdCRU7MoPYhmnpWws5qmRr4AAA", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjWnURVwsNstke177sVoi7UTvEhqto9tGkBJkB9c67XKKwfkNnKq", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnqQ4NafYFeRUeuBrRbVx6WwYpGgV454kyBDCjLCWX4uVb2ZFFrQ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qosQNfR2e4RmFxtXegDVgkgvas3QQ2bs4MKXCDUcGXBoRxPAxxzU", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqct6jzXgVvUsPQFMVBNww8gRJfZs7sf9vXYgdikAb2siE8GEGGt", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkTHhTkasEcQnvUHfuFG37MZiCYYHoTRifKGZV6GjxAvwTaBQJKD", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrBGVyuvs4SKkQ7Ny5KNBZgi57ogWMUoC3EhtVNQ539AspKx5XGr", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qifaXCfpSfqDz9bj8js3ojbeegnMcpwkxQtXh92pqE464C7FBk7Y", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmNfUkSm3jf2hAQHY5b4FhYKDCHrpAxfZq1jE3Rcwr6T5Q9kf12f", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnV2HWtJZhc9uF73q66fryDvSAC46xJqzdQfrJBQK8en3koNN1sd", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qiY5wviiGV9BkZF4hfjX2RfGTK2pmAwfC3TtopHJmd8vkEiZJnda", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqAzQ6MppjFDRSVwrmNrrWqvxtCnt84EmUtgZbJN6VzLBEeitqqa", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqLWdTz2tytWdZesjUawe642Xb7PUgohHrWzeYNP4oQp3NEJE93T", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qr7kMGiKwJQDsRGG8SaHTh1g9ijd36XW35Y6mcLsJ5bYj1sR2kzB", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqzEMqpt4tm8AjUxqDtyNfysd2eQ5KT3k4PFBrA91o1GAyFRBfb9", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjpPHNLMT5y1EGyXWUoMSvtsjJcEAJvkGS4KwE29JVjT1dmMrZTQ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qr2PKCaSGtvV1hGfG1sgZmCQCnVUVCnK4aS4hYN1fzv38p9MGXTK", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqEgWKhE15Nr4fpLKwhmo56SmAsJxdzdXG9JwQpk9U2MbiqGsgTt", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpuKcFSY9hNowz13DwA1GjXBkFmcpT9weno2PfxjPVp9gf98wkP3", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpSF91WNHbLRYzqfBjKEcHkaCowNfSAG3Fg6Zr1ED623zGcb2vMt", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnoAvtUUnj9Hynv9MNv8wDUCnHkA7KAtidhJt9vzpD14moYHyGgU", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoosYSrdgpQnRDKpXKGtazdfPVbWcNKDuXzWVaQCrZexkp2cJVCW", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpWSyKuv98av3QpMkBcuG9ctVMkU9NeghDpwGXR4DKrsaJwJBDgk", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjPEEmJPLVYFrjU5qP7K85n6A19e1GPT8FKUHdbvdWiDD6YmiWgD", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnfpPUwV8zBMfkZxWD5RzcvrMgTVfmBKtzCNQwkFiseJXmvEkLeg", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkX1kBkFvRiwRBnUcnzW6yD5QyNeXhNVDYX8fmFGW1MrJG82Drvk", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmV5ytJNvEwH4JnHGrD8yQBV4UU3wTxNCJP2Nz3Hu3VdvfpwsqC8", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qngdJxRVgo9zVS7MqUqPbHRYzywYVtVhEBj4oHdDqd2oNxj15ZzV", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqPy3vuegRhTsSSXRF9s9qA5PCFApWfcgKzMgrPc6aMeYKakSZu3", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoPoMM6nStUBCv8Vmfx6vU7GQz43sjcyodvrgiCiy8JtSU4FqmHm", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoFTG2TTVqNwE3pt69JPFDHCepaVfTBttuYfRD8v2WSrEJrLdD95", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qq9Dk9jdkYx2C28YVMynJwpfiZnvvAvsxM6CFFy5Ah3AZjmfY8ZC", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoRLxbPH5nYuV9XfqNXjapAG4RYi95chP7SxnKQPFomYcCP2Q96W", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qiTdoyWqjHaQStC6NgMa6pVawDw8LUQs4cKc5A4RgBD7SBQ57LNL", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qm3Mqw2sVmKHmV5Hq9p7dkJeZWmfBshzESzJrG622nj9JZEPLUBL", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjZHw2rq43a5FPRJafK2r2ZnyrZSYjUphcRaL5yZ4bK5fEigc9PX", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjxpM2u4pXBAvW7JrDGx1785HoVXRFzWpxix8FSVZfhzhsQpmej4", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qo2kZQscDrLV4nTENqDq6jyY4EAE3rXiHvc54vJReQf8EPwNXtWp", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qp74dT6TpWC78DzaTgfAy9wsc1S2BwrVqMRY3uMkaSYKkL91f9hq", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpsYbdsavnjCmccRMEA63nDsAguYr9eMq1iUXK4sUchVPVnBzrR7", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjUqeeJyR1CcNj7HfRA2X1EWKTB975FtiufJAcnTiHtcwc2xLvyw", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkXMnzoLXijRsFAyqjj4yh2StqP98pYeGN1dzBaBSTWhULZN1utM", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnrUjeAdKhKyRtsevDKYN7RVaw9tWkTMUiWj8pCWxiKAqdmrSaEM", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qma3vzN4KSDTv6VsMMjU7Tv6v2bPmYZY8ruDt4PZryDgU45ckUEs", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnrKj1sqe2cqi7y1kDcDMMwPuUGigfNTPyMiVY3up5b1UTPHD5En", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrXuYA8jUXmK59kgd5jS2j6J7i1bvCdpXddvKgHJc6h3WCQC8JEz", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmfWgyNL4YGiL9UF9UyatYdaN7hxcioFeXrYafCC1XJs1JzinyVd", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnuEfkpWeMd25gwaRqTuyYYU8aByH7fCadUQVDzYNV6KHY4ZPpkC", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnTvFHqm4DpaUvpXr4v9XgR1GrEHWjh2LrPDngFAVznZAngHapmi", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkgiRbBmgXYMcZ5XkC1XwFeSYXM7aVn7H9PATRCsCjVw1SRjdMNj", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmbRgsk8V8phtJpNNoRqWgEQZv3HvcxeBgtGSNwPf4FVn57jLUe7", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrKkx2Ah71VMBKXmKGEt5WeRGCxG918FwjtpWQ2rRn5RZYXhNVR6", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkFgEaLZwCdTTu5aPi2zVbiV5iTxRtkR1fE3PBzW5tZGLtkPhEqd", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnpjsRBKNtMy8AQ6gSr6TTfu28LEb2HUxiNXHHcLNFUw5BFBdMKA", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qokX5aMxyVRjAXagUa8Euvk841v4FHjrzp9AUJNDvXEBo5SvbrHX", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkknXbHmGDTNf75vtuF9hWqPJzwmoViKjQt2bWjmdkHvKqyFy4ij", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkPyWiidS3NPmzGPtsWzETv6Fm5DX7Nth1hVi6XKGTaK6TYAFzBF", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmoAGXhkt2SmUP5ij8drnM2VTSic8N4x5YQzFtV2wJ79erVXwW9h", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjjKX3PnfhA9p2PWtky8skKLqiUepThJBGUN3PffaFooB5NAUyiu", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrK3ysqyQxAZtnTVniJnHi6MYN9EswEYFE1o2XuSHncJX3BNz4tz", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqfdLtQPWmwGv2kwY1VW3hXWMd82obBec9A2qPdZY5ANWTkkFr9d", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrdWojCK4YpYwoVpcE8EAYSGUNNswCLLNJZpdkQDHLGd49xLC7nD", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmETs2VyogB1KDifpAeGVYtAQYKF7hxaLJwKuLSzHYuqW6CSHGKN", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnavkGrGJWyah8zknKU4ofu6hAeAf1Y2GicPBRMFzWCM6B2kc64D", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qji9cv9qvJqWLs3MV4bWmiAwG6ZRCL7M55BvYVZxS2RS5J6FKFRz", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qk7rP6aGGmjrjA1L7yczmk4TqgwRYnMrYhSLLh7d7aWoZCM1ETTM", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoZeJFrvU3CdEAsKs6xnyAeADTZSshy7Bq83c8juHPsuM4jWACND", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpmjMNZCHZQqU7zJm2ABNyPoTXCyYxzRjApynYk34PsKg9FRKrW7", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmBdPZWWA975atLBkegMAe4nkndHcaibiaGkdRC3hGkXEvbjbEBk", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjZEjoaGsrfvNKd9DMRvbAuEcWsFdzAG4rgYVLYQhenPwwSojHgJ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmTCD4dnvm2NURNXohUKAzdZ4AH4faYkqb9Kce494FkWfY1fH3oQ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qivVUgEFSBYeJvxYxbGvkuRCh2z5d5SoLZRkZEbVLjvgTDF29if6", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkEFaLEJFvBfrR41vrFx6aG1cP2TVZ2hy4K3bTtBxbJ5GVK8MXxD", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qosWj5dmKqjSYDokoNAAD4Mmz9UG2CBZsYzFzqaPie7sipchghoh", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qikaEsNxi7TLU3dvqh1kaxiJwWUzqrdiCFNY7yjS48z9Lo49XHGP", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkVJiM6yN4WwauD4KhUCuWHLqGKi8VCVKaomvBY8ppaUWiZU3d2d", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qo8kB68Q7AFtqxSPmZp5ypvq2RqgM42G6Q1oEPRvZmqjZ3CFpSTG", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmEcrryAURTBTqJC75Rqfo7UdWdyD131wnbctdwoYr4LmxGHwJC8", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjxY9r9jAGt9jELTYVHzPz2tQt3MytGfoaUpmFqTK4BvuBBxA52z", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjCNu1E9XMx3oRNeKcChiXkDFk14zJHALBQvPj8zrM3oNnyP8XS5", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkLfAhGsXPmkQAurH9h42y28EUBgKeQu7kRKPwjmWJPzb4TcAknh", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qq7mW89R9Xtw8g1vNdpqG3YBot2my9BRswH1NVQsdjzC9uqm6CtW", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjbc789oe8kvnXZAcJiS8gUJ1tUyRK8UWVHABsh2D3KRPSmhNPBB", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjhBFR3tmjEkK2cTf1qKSXmFPojttXX4wVJNgYAPpd5Evp1R1MKB", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qq7m17Bw13EVDECBKdb3LzhWwktwG3SwSSYT5bouoQdYbWRWKeXq", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrMUommr61hQbE22f6LFkf5yo3GaS23qkkypnPMZ8vBiWsBkN9rU", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrYtsohis1PtUkMRXGxmiwKECu7RcUgSAQHPqRBUUT8ipdXCxy4Z", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkBZ5BhQCHJvxgtfJGFy664NETtTEjtrP9K1r21SoGWRTWw7kAUa", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qq5uepsHmeGywtdq1Aj7DVreyXs565zMSBJ1hMUf1BmsFgjd1xy1", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrjfarZR8NEyxXQTKVBoY7jPMYuAkLPFzrAojP6Buxj9Bke2qeUU", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrzeSEvobsF6PkGCWKm6JWAFigofR4CP8N51hqM5WM9bJ1FVdwCm", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrLfabiycA951Pmu8RRB2C8xTtcyprgNJNG5cEAqBWrkbjoxwp4f", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qni8oP5u4346co2KAiJ8HFG5PRPNarcfhX32ong6UhQBkEQkEspN", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkmnaMzzHSGaDq1b7j1q8aDSrgCva1Z7weWnoEJ57ApPaGQppyea", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qksdAuTg8h79UZwFfvz87EtAcBffMdHbhYMDmboyGvEhjhryfJ7T", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoK7Uoj86W4DN8uoBc2PWPfagBUobtzTW3dYEZPLk1mokU4zfCHf", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qk1dvzSNPXUeRvtKLm5CWbcnrZMRs9q3BMtELgEHroCUnUQiHZBt", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnYZ9b7NZWwGpo5fU8gDFeQLxTVeFD643h6sRPkt2KwzfsJdxNkg", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjGPjCXM3LikKjodSrZ4nFnYW6F2KQKH7fHz4G6H1vGEpYT6MPFi", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qig28pcAArxw9gdEcsJyu149hAGfY2B4oDdyELdfMspSSYUiTBUW", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qp3BnzWUxRW5i5bZYmTn59LwUBFvkcgsEngGqHZFdvP94V26aEVh", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrqL7S7iWFYj2ZccX8suhVV5qK6obd6gpbp2G5WJ8MTCEZE6xj53", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnvPH96UcDmyDQwGSKAXSaAkqPddXb4vrpYuj3fdq93Nreeb8xZA", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmnfTyMYbim7geU25jDpPnnvwoGdvPKRDcyEZXdYeQpMYbVKwEkz", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqKi4WBTJU2JGksvgLSM8c1kdaHZnkEnevd2zxvVV62MAiLCXa1a", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoDerxKyYRUvPzBEKYEYHDkRRWXDXrTt8s5CSinqjJj669Pzt91F", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qre765hQRk7npP8beky7BSzMXkXVDCwQURj5uc3UZoT3opQU6kxE", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmxZRsE2DxoaPq4KTn6HkpvLaoYx8svrqtCoDjXKhqxFdtkAbVwG", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qp2nCQrJij7qvJibHvEGL65wJRGYpWXHk4AFWYubvUCdHXx8PMHY", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkdsMTxQovPiFbzBznoxajo3YWdPGbMhAEMQXBsFN325QD3tU17r", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnyBjEersq9dqtD98Xam3fFyuaRTsMq4eqMJrF8eKKpBZnmzy6VC", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrDFGFemSqFVpnWy9b1fRnt36dq1TAjSnNdATpt1HDmar8PT8UyK", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrKqEFactwXfSw8pMXQqFag8fK1koZE6tj6ERGwznYM5kyXEo68o", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmmjRveea5FfQhwhdaFJh9pn2GazpG1bwPqm8ZNYCYWu2sBn1W2d", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qkPEnctiBrGKBCTbF77b1H9VD3uVHdv6AurXhhytFLpHY3YS3hmq", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qp7Yn1Xph6kk4P4JQSzugpykaZgMPdj4nXrsMxvkH1qqvdoeRzEY", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qppbx1WXo5QeYj4LcjP3uuMZXNPxzJZNzfvFj3dJ3Uea9jvyFXpd", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qirGN6SMtjEBpvh6p43WP45sLTvmqFepRdHA3NXaJYPj1LupXn6k", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqUoxC6qMaYK7T4cuVAHB6oTCNbd8cW4vAcBVLtU2YpGUtG4Mj7h", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqHyudXwNMqPNBNjk6UyefsGUCopeyArZe75c3pJzivCdpofKkZx", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpvevxGK1CG2ZhSpBnTgJeVm29Mf75vnNLAQegGiv5deFUL3rgFZ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnwnMU7vZvPLTxJkmVkFfzFgUfBK9gBn3rrQYDqmtX26Y2Gc7qsQ", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qiTofhnQoCfJzfnc2S1daC6fpjp8fsJMwHhPQ51N7RjV6SX4rYve", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpjLNhNzbkVUwTrQZwGMPC7HdurzzScMBMir9QwNuwpbKVDLrtjh", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qqfmUaq8uyKjeZhhSLUNkTTQngLiZS1Pn1vKiNRK9ZSAFiVJcUHi", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qmSGSjiqVtNYo5tKtrbzRCLuMqqZV8tAnhZ6zKnTMvYu9QMdF6Ft", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qn6ffBAbxUgWox5HDqaV7HEv1CKsc1Md8TtuJ6jPwjzMJDoNSn8X", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjFkLTfC3wqp55wzQhVYkC3PXxaE4xzB1UocyzGYp2PzjbXtBspx", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpuSsc7VvGtnib2C6qrcFs9h63iXwmJHtBAy31KSiHNb771m8bVk", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnK7eTjvQ26Yu48rdWnxE96MsYEn7yCvqTGMzBdP2SzR6BEFzxky", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qjn6hvCoERgLY7LXZy79nYQnjiCJQnQi3iUK1Q8zjjuxgEpiiQZ4", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoNgX8UnPxNV7FJHMGYfw58xq53ZKqjjQKzhvFF7N7fYSJ4sQ9MR", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpbNspTpynMFgBcaWNVXxHkrBLeLz9QQxwLdKGpm7xRSEXPncsdz", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoTz8QWBaZMExiNBFZgnXbAX5say3fz95a9cXWzeaXERDFChouL8", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qrkvwbEqrCBA3iy9WN6LtoyQBnwMaayVRAynwLt7tt2E82wFMN2i", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qiZvg9Vswumt6R3tG7SHiD7aZG8G4M565V7nTaiaq3aADi2RAfUL", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qnhMTsxZBbALkSwLfKTGoJCCU77E9oDWezw56jk97rKh73sxGoFN", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qpttJDZfqAkUqQ91JbGLQGnXdJAK8SUtCLhTdBWLQrbi3GMe1ZAM", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qp8vzPaCwWjhQUixYS5aohr9Nk2EKJaTynpqJCAdrapiFiHyxiya", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmiqAFoPJHMhDQQ7NzDAP4oYQ9km6soXgqSyVDKLsSDMwZW59eKH", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrHgrTmvMjGyfL2R5tffwPHppwTeg8daSkAyiF4fjQkhzZQWZeJP", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpAtwSWzmuaswfSmPLWqTKCvDwu5v8sC41uTgz4ULRnBK38sBTyj", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoZDr6a1Nh5udvYX3RSzgwhHwgT7BKLN3mfeuazHnwSmvx2uD5pw", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qisLGes9bR5UC2FJFjB2pkafQzxFqYisB8C4cKwzVcckUu2eUUyR", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnMQbGsLjiq3XETHGbQXgUNGtLWRBSgcM7eertqAr6gKoJsH8UHf", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qq7UMt4vXa4xWqrQ6pRTwQZ2jU17fq1vRhaGQV18ejWnf8pbFzeL", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qne9WvakAKaSLkZA96Br3YttwyJBWaQPXGMENJ2X7wXQbaqmJa6G", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qniKedDi73H68JuKS5qaMmRif4818AgEkNLm7uKQhP396hMwPLwU", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpxYkbTA2YUEtRQdgHnRPJhisgMVKy4VciWSygTht7Fsvfu2bYEz", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkcTYALQdt8snWfNLc14cPWj7heNcqTxdYa8Yg6Y1hH5FkvsZFcK", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoLDLqreg84XX8hNgAKzteQvfeEPu8Qoet7KUobgK4TbqzqyhNs6", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrXbxJw7BGDzsUSiyKKXHygqoUiV6Krq4FqN8sxUHFHmNopsH96B", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qosp9mBHBkxwK3FkX7TVdWkvhP7RtBf7e32bt6rWJX1WiRm9w1mx", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qni4c8F7HnjfcbgKJJNzFce9hJCmqoRnrUnjxikCiCQf181XrbEa", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qraNakCJheLVPvcRyonyizaDZqpQA2dsfhXDQU53L4M43uAwLCLj", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qiyss7pNZvFFYfqDA7EgDSZ1LNeb5HeEQUCowB4wXwf8K8MmWcby", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkYFDJ36bYC8MDjCfp3Jnpf8psRuKgSg9mQDd26hAnJcwL3owRHW", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qijj4UtZyeQBJwApmFpaU77AXFy78t9ZMrSbSz7XRDh6q9FjdJu5", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qji7TKLSVbXMbhRrVYGue3xJX1nJjt25YEStw2GfgNHHXbN3SCME", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjmxMKtMWhhdfEVQp7BNzcszDpZfea3RQBDdcittsXcM3Z3AFZDw", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qncviDKx1xuHD2zA7Wh9Me1nE7BdAFaoTztYvYT9PxP7GqpcUJBf", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnsVUfJqCAe3xbBmAbUTdcrkzbkbvJiYr3ZvwPETB4wa37aoKFmU", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpsHq3f77htAGA4xVdvURzKmyzto6oysszR7ZjNvAFAfpdj5nGBw", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnBm5BovBozE5CQEcfiCm4p6Jfy9FuAyRr5397ev2PJaVagatUKv", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkvwxqvKh1rYvVNNsGXqAX1ETGaV8LpXwD5nV1p71RMHjQ9Zmexh", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrxDrriKTNtLeDwJrBo1iNfFHwg6Jg3u18WEUAgjoPNajrwJQUXJ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qocEu9X1cJ3vb6cuAKKejz2LwXoAvAb9vcmzQsXsrM66paLRFs3X", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qni87oorKtQ7cuTGaUeV7kHkxjM6ZjGQ8AKbWecdRvcdi3HRGGTx", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpigqZkpqZsHxus4gVa2pN2AXQu9r5E9Si81qndjpEnaUmkiBGSy", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrd79Njey8xk21voEmUQzV1YqFPgRSUHDhNPUEECi1oujy9AYSJs", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qs15iaZ4a4v96JJjbEoWU5DAgwimjQPuCFwq7vTBx8KdrL98QgjB", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qn6hZk4fggg1G4a8i7RpFPF2DHnpSpjZL3szpuDKCBZYjX8aVbTH", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qikiqcDRNJ4jsAQdoYUKjR8fjt5mfEjwQPW3ydkY34K3GYVjBPFD", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjopX9o5JRsBhi9GcPfsE28P5YdsNjQKYtwQdBXnYFFNrnzVJ4Fy", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqks1GCsYgAQme4fNaaixgyTrA8UysWgS5Zu5dQ4uahTBs6xLZh6", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoe6RKTHfiVrDzJd9z5RWzuC1pRe3sgAaK8ECshCPHhNXL1E6wEm", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qktBAzsrTAqjC2HFEhJFxo1sADFVsX1FrUy3zq4RJZPGGHZ3MZHf", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkNFDntDecb65n9qy3KXeo5DPFDGPjSXX5GtDTnUCJgoQJJHmj1z", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qp4wKQzeEyzFxoHSMSXViGy13g9iLXk1h3sebnk9wupj6ZJZ6r9A", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqrek4USajCTCz3HcJV8EAozfWZ68dcSJb4gvSKrz73S9NsrppHi", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qq8XojbayeayYptqm1zUkmmsPFHKJzDUjSpwm2zoCrQ55uA9itoH", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qksTtvJSt3FZ9fziU5JaEfMcjiUCHXKufHwgJesXmdpDMXoXVNHk", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qokUJnei3KnsvLWevh6WyNaME6EHH2hWysTwQkvP8aR5rZWdQAFM", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpBU9siQFrA9uoiuJ79KNv7oJ9DpYnLU9rQ6Y79zDnrRjt21T5rb", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qob7FNA8oWquL8Xm6qM6iQxzfiEjLkvy5oEjKZxAW8z5uvY2tVur", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpgYS1FyRtpEWKtHU41TsRgRhL3LMKQUACkHs3krAzzBRsUr2M8q", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpR4sv7AxpCPJu4dLeENBs75S37L1KawQGgdTjbywVjxVcSioxHQ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrFDARAe2CvKbZMpUkpBH1tusJC8VpJaqELFjtC1BSHYMRvqsuvY", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmT999N5Sxe6HiPXBWFCiDTFNrQCAvKmiUSfiRY1JeXNoCcu4U8u", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qo9Z1viZ4Gq9NiXdKhMjZU5AkDD4D2kyzLMTicE56LQfMF364bp9", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqRgJBNXQftqYjvc1VsuTgXuHrzuCUtoU3XDN6Be1Th9b4PjXCR9", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkfsAbFDsfmTVfsrjGL6dxJnoE4gnoGFZhSLhUwDrdhwsXC1KTM3", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qiYbpLfGnS3hVcbzX5PcfBko7mxvBo41fBcJr8r2rfm2jqkBYHPv", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrVYB98MP5MsAbWkJ1rRiXk6eRa2QnNkE3Gp46xCD1anhu4XUMbT", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qo1uiieVrhoo2Zq7LsVcGxAguaGfiFFLbcZ7LQZZgBs8CLGzprgz", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpmVXsTu2QBMKDN5VNozfgc9Jj5abvUqZnaJBiAfLAeiduf8RUeF", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjqnATrsnsLPcH6N86KG3eYMq6Zsykxz9xUwYEZwKDquMmue9zuU", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmg8hhrEhCuEjH7UExUfpRijz2UoA3NV32SNnVhvBddLASyY224m", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpuAb2UnXUHpFGSqt77rmt6cdjKqp2s6jMArrmGKn7zA5ryksY1z", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qn4Wb1M8xED6Dfi1ooxTFa6Wjy1cuPGBZ4XbrLwuvD8JkGzFx6AD", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qn9HEV1DJF4Hbvne6CPLd14SC5zCedN8q2NJkLMUkTc9ShmoBSKc", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqRqUmSwY5qj7BzqNzXK8NvbwDxkwNhaU3k1Ngms7JydSCS5Nrcx", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjAZ9RMNn86sCsMriLWq1up2Yvzni5dE4Q89tXLChYTA2TC2qkMB", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qouDJENF566sdFCVykJFcVvvstkuBYd54Gd1hSGhueNb4KnWzyr2", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjBdUQtH8xfJWRPPS8AxVUYQPkkb2ytjtuAyxtF5mQZRTCcw8GXk", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrKLphdXWh4LD3NEsfmZEjqM6YkucMDS23DHPGiwDDHxDf14L52T", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qiwjbYrsGCJtywKBqD8eNtbx9W7qvLVrs8S13Bs9mTSvB3DAtPN3", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnDp7C15anBVET6Z13scd7uR3gJ8Gi9qETPzQZV4ZMLNe1iaf4af", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoWxQ8W7RmQKGLdUtP6RDLLtHuZRtnnG9eqAaECeETq3axe9KuYN", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpgPnmpfMKwEYPfE9oMDW9z7tUPruQV6A2sdvCgJV46KogjW3b58", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjKTxNTbpvL6hwsFqQ2DhCKKg8fBpxqs3aqZvwmdrJZBUa7uu27i", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnHJ4jj14XYeMH7nHwQ4VKx3oShhXBRhiXTkjhMmsqoCwCMjGwFN", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmWsuRgSBvtyPGvEcZdYDb2TjULzBfYSR1mQsfGdL3tj5UZ8TyUk", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnTtaK8cWpzaBBdaTAgXawGwC1copM6PPBFDffir4ViBFPcE4qSa", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpeeBjM7BN1G3iKA8FjFeqE3ZGC5MZNpx9Lbt7Nr2sJqb55RDTiY", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkgktY65UKXdSnNDfdBVEvBX8VaRaQ1aV8dsasCMnsPqTVTujfSy", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkcDsCrrJSiPGjf42VFLS1xWPWKEeC1DaGQqwRiYzS2Lpy28gbmS", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjqMhabjRA8LAWjRqLvb1yfyTF8wZbWY2sRfdAwBmt4igqEw3o4P", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqSeYX8Z4EM2FKjtt1LvpW7kvvtioUxQjWSzaeWQk1jeSvehD6RQ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qp3ExtPSkiYgTBL4e5uJQHJyyicrgZTXikPdUWMTzymiuG2r95aH", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoaBMGobYdwriJ7jW6YzEgpsGin8XmPvXFZ98hHwZGCBEaEzekgF", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrjcj7bF6bidwrV1j6V99WeNuwvtcKgDiHcyJkhntrBDd37Ck7rb", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qm1BtTFG19zWjoCXFyVeMd7Uq7P2y6NDk1mfZFaTs2DZMr3EN23Y", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpLKem7ZpYn6HvsVuRGnAKtGXpQwCWm4eKctedctJJceZJfGhLGv", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqsHskJkk8F3iEh6Q5QFLknTnd7NKpiMmRv3R7M8SvbdJaAEWfRP", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrXb7gNzp5edv6wqh21GeUD3GarjgoSZ1tdMCUdnbyuEWFRYDoMd", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qr2no4PxcrK8JCW5dEc7xyUGFALuf4czarn9uEmGumvj2rDqVFy6", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoG7McpwtVKJgV6T3mfEhZPJUQoBFJpRhy8Vp76AVLoz4Z3xVoUb", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qof3syN7sBjKci1SuipiMcXttsGrcTVZxvkCMaBcZ8dD91AiVv9o", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpKqucnaPy4mhE6jFCUT3z5QvCzyYSjzwtFNaiRfX4fWXq9bbKx1", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpKbAn9AzBRMdSNco7uRiXfBYWteoUFHUPcedxB3gNdfRR3Nij74", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqZrSUWBX91e3NbML87sTPZobUPD51MpDjcvdvf4BVnYXYKaRoQ1", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnHEn2Srb3wCEumcSqwbAhwnsg9rE6Dqrp8nbqRDozKcV31Fxbip", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoNSgusgDvZycoXFVD6heGawdM4mhL2bYaqardbc5bm1JvTP4QVs", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnCMhzJ2AkzAHdaJ7H6oD2Nm3pvSEVjE5aFe5mS5hjePunZhf7FD", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qiggoJyuMNCkB82JY879WLUieJWGuRoeUb3Xc4paiWTsmR7AekBD", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqSr4pTUyAkpkvG6jWqzsRttJ7eCUuMpQk1QJXkZFobbSxEXP8JM", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoT7SJPg6wDUkArBdkh9dmL9hGcsJ7e69hXz3jdGE1yGobz1c7dY", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qp4kXLX3NEUZ7aikcGFY7u5yqrhHRDABiG4iCq75XP8LPNn3YAvK", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmDuUW41GHQUgFaiyAx1xuGN79TpShrxNsqqVJqDuUgtvCaz1sSY", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qosBZfECkWNoGmnmP6454jUBapwZX9M2DbP4jHoSmCcNHvU7HP7C", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qn2H3wH5CY9iATD7gAJXUS246ueLtSNsL1Howfi39fPK5xHKH5Kf", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqFMzbCc4ZtUnwtfYFuNTs2XLLLySkticoBN8juUUAfrW6oZFwFc", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmSJAMAwADb2eecdJfS6en5ZNNx3zLXAaTRsgecXF73VodKT74gR", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrbPBGqyLXxV3cDmoityX5euntsFhHKiBuh1xBWQmpDfugrqbv4A", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qj66JcNH2ysNc72Xn67zf71oJtA9nYF2KZZUeW1nnoUvBDA5EjBY", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qodBM6zRmBkWokdMW3HgE89e2DcfFvYk8Dr6br9iCy6cLZcC8VoS", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqe2ms2ucVJLuQsLGufxCRbdy8ZCxwa9ZyVKYC6by5oVwAoJYTib", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qouQsHEu877iHm1DN7mztAHAq3CyBPp7sZAk3qezn2od7hrwgwKb", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmvmCao7U8x9R9CaaKoKvghyJL8XAeLzB8cDXdHa3Bgb22g8LWrR", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qom73r53Xr26fzwjbKgGoUsZZPiGhnMUUxk5W42iYdmeCkXPvfY2", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpLtRtkqm3UzWEcMLyKzr1M1Fq2r4RbV3kcFFH8EubVuxrNXuR5t", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnxzxBGPYLwxPWXgjnpzgftdQUa4mjzTHijpND36JZPUZaqqpN9B", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrBYgDQQGcgWaCn6LKHXdGmBS5qbRjMQWBZjYdScavynSihe9Njg", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpKzos5sjsSHMrm8hK1tXDPGv9cdhYguEWMiX41RkyaShXvHuQ9y", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qovFzxw4mzvyWWa1SbzouSCGci5NDQW2wA5WGWP1wr16Jk9rwU1H", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqfh9QXnKM6K8baPCm3sez1EJ2gKxyr2ikFSxw4iZgNox3xb4vy9", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrguF5gbmavQkimFHvW92E63HijyvxpnbhDwH3Bd4Pr82uBCqk3x", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmJAgGMhYMJYgaXTsdrR5HKXoJ7ThtzZBfsDY8aSBbBwPSAHpora", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpHmr6xSrSjpjp4cd1JSvp6FpBQY62vPYiS7fHe8WrTmkyGM4cVX", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qiVa1iTvUGVSQZ4vW79u9MbocqBz5SMXTijJHQ9DhhUpWtGCiDb8", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qj59Udty3ifWN7x63h7ob9N2aAVBhbqJHEL7BxorQcYd779yvjNd", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qr9QB29LzsannE89htdGy68jUme1nQyn79QM6byuL2gvvmwiYqmv", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjn2oU7sQJmN9PSbtYKzb2jPdoA4AVWch2WgDJfZ8fUSuSUTpYpy", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qm4j4CqbhnzturMYyFYiEjwWfitwA3qR9T6CSGJHXRMv6Q2vNDQ5", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjoCjG6LyEZ48Te9hSkQwBRyMGJFrcRc4fvgt4Rh6H7fZ8W4szKp", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmt4YB5nEx297ZA6JpmRgLQMMonT5aosPqxm6AAJnELdHzJFSFXb", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqBmyKgBWBUDpupxCxSHznkiJrdWRT3BSX24kmGjSWCCKREdj3K3", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoP8y82o7hWBuYNCkmVYA1Xm7n1QLgMuQVYm9HHy6gXoTywJYp7E", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrYjeRvr7jDEuPfAjraTVtjJvPRYuz9cZrTkafNisaFrdowNPoD2", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qiVtopHfiqyVocQmxKCDsZWh7RovX9Vdy9KnHWsAKKMHRdpBDA4E", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qknTGJaXjheGFsR4To56MyAvo13d864tkef82PmMbWb8Eoio7mhA", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qksR3A6heXpnQuNmeDSzaFcqq44w15QnogHFs9mBnKqsRUU6VzQZ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qq42VV6wokSs7AjfXNsH949xLZBhd5neLc23h2eQHXLfGa56kMvT", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qihK1pxVYeeabu6dgD1nD1HVGL5fzYpsppz2ZKXZVJfrMfuqAaYc", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qptGPZXr2KW7T9EGc6CLdF83UbsQeuScq2wJB5kEdVLv6Yju9mrD", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjy9rzYf2b73JpspoZFvAtNkaxgvE4P1xTzWYoE1hAb9f74sMSwb", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqUNHHDns1aXHV4582eQBSUU7VicqLmXZjiEQ21W79N9aMqmukgj", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjkxuVQKxfLoPETeCpFEzud86YCJtxcoin6qU5qitWEbU1awwCJF", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qj9pafqXVQPxTRAicgqnzewM1LN558RyVDz9qrnFWjZ9rg3NQENj", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpPi9rKQB9ZjYVtvkTRebuX97iVD1gnKtxBtUiWwjGrVyF1P18zP", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmDL4p471K8Kv5nBeYWce8rgmanRGcU3DV1d23A8TFGonnN65RZ5", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qo2KrqJAcgz1jNia1vV6uBrd2CFbzYefYerRxBg238e3KgHTsJYs", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpyZxtLbxgVSnjVv594KpCyp5Nb45xHnSyv5WhbvTQmFwaMfRzgk", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoHwgW9DxmKe9LSj9aBs71R14xa9Svtw1SgYbHuZ22XnmgFUuZLW", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrbJCz9gosCf6MDAX3TUKYfxvcwmW2v23Pa682peqmnbWz6TifpG", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qiURJ8kjraKiSdcXNHXJ5yKtGpSwYmLmyfTT3yJGQohJTt5f5mdP", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qisFZpAEvNdzshfM9iV3NJaMeN9VWZUL9UHAg4jPzRC73Aa7pFgT", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnmuBAK2d9tJMzeMN5eNgs8Z86wmUesko3M8GdFytnSsZVmLcRHo", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqjuakwVbrNAm2zNzpag4QtKPxufThtyLa9HXr4RDtm6TkQJAuMo", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnXzfPXGMduy33arxFBjNByfQmSkZZqzGJPfTTdyAVJpohju26sX", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjcnYiFNzdb56Nv1ymg19YKYQzrPBm8wcjb1uS2BDJWTQBaw94EX", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qr9GUyhBVQcAeEWJ2A2U9sMTi2o3e326ovt1pCu32sP1jQKddQAr", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqMyek4You4uuSFbbz7Eij8WdHUto8GDLH766PrrViK1eY7wGn1V", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkckPaDfRtY8inbMD8VJnEcTqxyEcgxym6znPJdtuzh7ezpgZEHF", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkHvkzHJfYzkyantmKh5RDGw773PCPA8aT8rcoaD5xjeskCkkrVN", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjsr5HjER9uTsZDDRLfy4zdAdsuMvLYKq98LEkKcXttZCmU8ThiW", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkrsXcG4CNCCWWt3GYHVxQPb87c6GzU6ivbqx1xLLc2NqX3qqkSw", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmEeiqTDDz3iTShh8kmJ8U2GeBWqFrJ19jMsmZhrUvVZT2NggoR2", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qp9E7Gpiie9C28T28AWwdzCACr6zeftP9ubMzHchH2Daq5Fi5YdA", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qs1m2sBEB936g42Ff7mV2cpwEqeWgk2epjfut78KCMN2raFr5rKz", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqcDZmsUU1Y9AoBTsL1rWC2zRjojjBD1b7XV2PPkPVPeLKLF4iuw", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmtPmSUU77sNzkh5cFiDkDwkuoRGn2WNoNNPNztMxXwv2cganEkZ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkTkZs1q2XEYvry3KGtdFMPwAmxbmio2YvTc4viasanYunHsr8K7", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkXAZ89o6GABrbF9TunHg2KMoCQEKkvrKHyi2He6kt5YUNc6kS7v", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qiuTM5Vu97o4EXezT4nnjLNaHaqBnFagUEPXNRSCFurioYp8rmDz", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqhXq5r816qm4Q3rpQJQDWpfuDTohzRn4phhLycWqnPreLDGfu4T", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qka1F6Q2JLrrU74TBfp6ZbtPw33pTDnjHWHN9GzcgYhTrGgq7s6n", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qja9vxL5rG2Kk8KxkWtq6jmhnqei8Bw1ezXpMANqNqwp2xq6ff5m", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qitn7xRhPfoFpLYSJnam5kbCi9XfDWLUvSMvF6qWGBoQ4dadrPFr", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpgtoAh5VjMffzLttbSaPDPb16kViYgnscXj9dZR4Kq17HWXysxj", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qntUrhg9iUAvNeGzSENMq9BS4SeDuyaXVAtPt27KP5AYxL5xfX1p", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrzD5JEmxDD65PM8trqBJCWXsE5X1je7XCtvSoyecAdvULTshmeH", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqvtC2oGTbuKF3Nr4nbxgifygSv4rcdaYQ6YqLsCV19UfvEJgLQw", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrqCyY27Xnw5EXWpmfCPVN6sLa8jQhzzVxSXQNgrsDEMzo7FGrxT", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmNpEGBCb4VB6itcRhRxLBAmvG7XJnWoRTjdiu2kABMjVKHnMPsH", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqBoBDKBuMdqqNXKGNdRT7DmbMa9ZYjQpkAQmqCc7yF7CVjGyvJd", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqdRLTGktkLHCoPhJPzr7V5k7x7kQNE3dSdiZsEgFDJrCpSQBeEJ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qndy7jty2BPPGwhyYW6CJuyzPg4Bns4UVAyrk1szYFfGNjgP7Tqs", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qphNMVXmhyHZDU76JrAsauhy8JMENmJabrk3jS5yV6pAcRuGnACa", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkSRPVPjCKZLrBSbRvPgrfW3zwy7oPsZNfAMhNbuTao5XZL5L8v3", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpC34QPkKETUTmm1DiJS9d7Lsa41AkqrmkBVosTghfjRqfMD7kpg", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qp5d4UMZbYRmr231Mh7qtEcC3hm2ZDT9UhcQHttjiXW6y8gwXjbb", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmiTRjnPvURSQovsBhNMsxgDEqY3eD97Sx3ENnc6VpzcT85Qjijj", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qm4hYrnwKdQN25uMMUAoEK5uQuXuRnNH8dBn6kE3gbpmvymknxXh", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrfcvBKq6TinyP9eEtdXHTZwsgJEUxRkV9cLro8UMULp6z2J6WQv", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qopve6RoT4KpVckikLsc9nZDpjfvQYCHfouqr16wgVZZoTDdGXqJ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjpb1LNC43DKodEr7eYRuBnRXxqAxyRZYFv16Dde6DFDpSkNKxft", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrqcZohbvzKRb4kWnxCnYu2yxtAfq5mA7GnXd1AjhmBFcCrAhCvx", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqJbx34y3GhiGVh6yD7z6Gimrm1axjQkoipEyfXctzCYfayN4oug", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnsCfamRdwRu1Si7Nmnpbyrcy5fuxTrhFiEDHeaS2zeXfBdiwmAU", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qp4fK3gixSNeNhY9vyZWPMMXDVuMyv2uJbA3Ji5v7vNYCchDYTV9", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkCcDLUwy2LgGQ3tTEs7DvxJoQQnUtg7igBUh7NJtRgHNHmLb847", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qp1NVLsfA7FCRJk445MnV99y33696FGbXpKuWYmryUbzmXZQqRgN", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrzQFYtpFqXwrCJYVwFRkyULp93QFEQShZggVU24fyUX68AgvhPT", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qms9osaGmRVNfZQDSK2qS1G9LJEX9djTyt3xd5Hn73ZGCcfJtRPJ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpfKeJEHYaQ27pGW6g9DYxEBKwrajM11AtxKyPYWVEQeTsgNG1yk", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjdbchvuNyTShL8gP4C6XZgECvj8nuAuzkd9Kfe8N91UnCK4EfrH", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrH5iUMGzCSL2627GPsVPzyWT99JCGS8nq7ej4G1T3EX5dH1AbTf", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qojyYsXDw1vXwSWxkeVMsHA1KJXgcyLMNoXeuPgXg3xTsEz4pnB7", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoMFAjnjgzoebsrqTmyzwkQc9yQhGftZYuKggBY6hZXtTe7ZQiEa", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qikBVamu7Pb4NTukv4yrkYbNfxB8JPDWfTDs4e3Xoh74pat2chw4", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnAAY5fZb3Ro67K2jGHe6wVPrJua8bMPj8dubtWTwCfrYs8nRPNP", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmeaGthGCexsR8Ps1AxHX91fBUW34VCuuafv4iKDwzBKxD91oVeK", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmLxqzp7nJ7UpkryVQ2grc9dgpRBc6aAMcHewSuRjrsud4t7vP1m", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qq4Bt59wpCryVAEJCWFbTe9eXx4111P29m43iWAmJuMAqDLcpuR6", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrDUsbQ5RqvBvmjVypEiMMfUXarC3AAFoCbMxQeNSKHS6oG1P1by", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpdZ4WaFMXL6XDWPEMic5i5B575NuEQCpfiVQUp7kHvG1uzkcbPd", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmvZFGMcsgEKtoJb4VaKbnwJ6yVjBqZo1DVG5kWmZVYoaEC2YeSD", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrMkwMM2enu7r3eN6ZyXrEnEmMf8eeyYivBg8dKLDXb6RZ8BeEAE", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpig1qF8AZo9z2zNY29DyXwFfjVARjAS9DuENJCwe2RGHHT4gsfp", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqHGptqLhqPy78Rhagb8hdgx8QsAHm98YuVNnHTih5fcLd8V6ptY", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrEtfFFMn9vWprnv8RsrHAPgRZoH89BfPnnW3V3wk6vNmrEp9V1x", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qj3gJciKHKMehfNXWNfuM645Ln3eqaB2Z1TCofYyER3jxdB8KTB6", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qp39e7MYTbVpBjKmK2L3RRfAPxKDgHXFBFhcmUnGp64R8iPc2sMT", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkan6rNxjojrSJuoZ672SVoUTJCvkMNcUCVzDDGMzDdgvbcQm1Ep", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoVUGz6LSU3iBQwPkxSpX2ZrgwaXK4kQwmuoTQZivVLoSNNjV7G3", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnsgSZnUKWPbXJnUyjywoizejHs3XvkEXVpW6RgRxuHGmrQ9bjCf", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrHT16GdoYqBHCu61JXYnbLqMxWr43aT77ATyA1Du722YZcafXaN", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qncycYW13XVe9JjyxB9VX8AF2hkWtRrhnPcYkvuBe79BNCGWpByJ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnSRYCsu3UBQc8sorKcnKdqByC9YSPFGKr7NrHaFy8UWXjZE2hfT", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkfqzxZGUm9osu1tAX8CLLeE2RmjcQUmHLNQ89br6D8EPrDzvo9f", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnwmxTFgCGiRLk9FLopCxHS5FGCrcptRaUMydSoqQb6w3tvYftzU", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkTuzeAaF51Q3pinV1burLb3SGXfvXAf8pfARS7EyVgeHF6sMQXu", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qroa7D222kCYdWUESsKtQvTrrVo65xbYSvdfuPoS2JcaFfs191CK", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqh8BxFKCP92ykeYrKoBStb4a4ce27NGcALXdhFSpm8A3E4vriT7", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnfAGd3u6qXDuxfXod6uS4hveN3TcbtPYfZ2qdE6wzUfMzxjPiWS", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qopVwb349BfCtN8XuqP1StmbJL7ocJnSXXaQmv5HdvqyPVYeza9E", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjQQLyvi2z7Mz1vXVU4wBjtNsnNcQE7EHoFJ6CbxwYxTtuMWSHdp", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpsYEmX32USexz2e7UtdyFD2fRiuYRgdMTBuwdgt6rcvx56a99ry", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrMd7EApEcGFjfQ6twgghnfa7xQ8Azw89ZrSNFJ7aDLQtJfXLgBC", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrukcmpU9bFJeL4dsAFVLmCate9H8mKcRZZ2MvqPpGpVc3fYiKTk", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qohSbp65CSsM3rF2BSGemK1PoN3Ue7vZx7FsZycAPwbptsicqSDB", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qquifAhJm9ooYfeRWJ3n5rVD4T8kninioHdLNPdTEZ2P8uRxmzPs", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qicDka1SrR63ioVDoSha2u8y2AFg46hdG7b1n6MGxvXzjuunWtYA", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qm4AKorsLab686xfCiNf44pvHjbMW76oYMAF9y5oR6xbipdwEXr1", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrPc1nem6HCYnjXDt7qAHcEwLfxEAb5bp177G89WzK7pUCZSpBjc", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmGB6LBziJt3T5LeWSqBxmWaMsfvjP3ckAXpuYLpaDDNgZKpf4p1", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qj7T45snCN9AaHN99LpohuGHcdBov3zTEPjbRZFvrtcAYaiW9YJb", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpXR8Dts8XKUQDsxxiRsvcCDnW6TmKtBHo25XNLnVYEqpaoYDvRE", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjgFtK2XCwRAAR17r99wtQyAwwyMY1oeW7rkCBCGF35bqkSPbJZ4", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkPP9TJFHjCyk3DaY4ZjaAxHxvmEnN8t2rnmFUG7SaRkFUR5io2Q", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjLE7mA538d6py3URXY7WVnZboyS1k5RrGEV2skLWkrT4rAsHLNL", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnFyGbJYhBEwjXAVmcReJm4YtFYSdArPYiUZUry2sEZ5ru7KscrS", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qm5dV4PQz5jBRiVP8GzH9Bxi6xevVRo43wooHdEasygrtDdYGreZ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrM8USqSZd9ZXBgwnGL4QmKCBv2bipSfW5BwuEHmWkCko5G6kzXh", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qje3AdwqNkSi4P9w3cKBJsYCKh6XTxcTg8UhouHc29P3BN2gDVv3", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkgRFPyHrwt9RmLAaLiJHLuyGgReUzjmcvQt2XcQivoNrvkhdDPJ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjuknZAcVKy7Gw1sQQRtH5D6dr8Ax4uadZnqARkNF4cGGuYHLCkD", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnHQdB62br4dunyaGR7NoSHTdDVFHBV9cERJDyWbXQWij1KjUxaC", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpT9iRiwPuB1uM5cNTrwWL79GwdWSEpCBbY46kWhd8QRBa7wqKCR", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoYwcZz4u5Fe4N4qdA3zAv5rTUfBSW3f7Cz1vLoU1aMnW2EQFYkg", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrKAAZCrTAzuVrXMJpsb9QBy25qSmkrdEVfvn1DfVnLU2A7h1o2t", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoYhYagBA6qbkyDh9R5aFT9SQ52fZQ31csoKkTKBtbb4JxxVTYLs", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qinzRHSGM6fPG8UNU6fqq9GqN5MzjmKnptG8XXUGTZ1ALXJiKwbT", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjSZzMyF89K98p5AahxYk8DXZnH5kSYQ4gG7jZyseUPaisrnskdz", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qk9jaYvfKW3KsitQFeyouFBKqcGkdpMiMBYXUJZHBVNGEfzrFQtx", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoqDx8vD5QTXKjQUFykVS2sq9i2xmGskbus1GZMHd3wbskZA9Gho", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qq3rngNWTFd2g49P55gwSY9koVCuwhqdkFxKJbUpwJY9tGChpFQw", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqHQZqC93cEH99tcmwLrbJrkhyhfKx9Na5v3ZgPPjHac2HQECKCF", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnZN5z8qoKo8bWcVVWmd37y1ioarBADAQmKUcAWBbHxEBQi8Nbp9", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqJuXpMPvk3DMZuEfbGdxRx5wvmPuUPPZoVnJGSvPP7bLCMGeRDR", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpUnGBSAqzni9o8tj2RzyEGifSxK573ScyAdhEXYLAeLQvQwbtyY", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qouX7YdXRjAZhup8La7jAWoEewFGamJx3CBTznQRq99RuGByCYAp", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qjm32E9EwtLzMkS24xpMQ1y2AwpZ9UaTJwDQy2CMjCBoAXbcpWJF", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqcL7YKue4FgFQCFU4FrLACbzG6aXf2rAs3QB2b87JBa2mF2Z93V", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqjqCk9r6wTCmJmbq6z72WS5yYyCznAxiUYDeNkVxQGDpZE2JhoK", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnBUGXhAgJadPTvwBPb7pncB3xjattoSnG3Y1f2jKy5A453CGDY4", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpAfqxywNfGt7AYjK9nUiJYGLzVL8ditMDQcixiUZQKxY9sff8sD", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpFhg7fDtTt4L4HoW9iv6vzKSjiBgjng6CEQ9GxyMeRpprooff6C", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpPQccqVou1DjCYGdXJprRHVH8FR8jZ876SEbomttxff1jtNmcu6", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoqVUMgMAxFVXxBbnWxbqCaG7TYVLDqcyLqeGTazT8EwT7mK2gK7", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qkPy2Wor8tZaup1rh9fyTwV9Nam3Rdfjx1pSEmDgoMnvvfWVu4hs", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoC7zJJ4VQjkbFLm3zjX3tJ2Bgb1UARH9dzxH6iqs3Awx5H6cAyt", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnQCF25gVZmYswXAFoN7z3QAnz1fXjaV8fs6GBhC1F89bTmuEGen", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmZXYzFv3p41EVPnWmVgwnZEMEHKdMLuvVcUKiSAXbSENiw77MQS", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnkBupCLHovNrmreoW799m6QopBgqmZb7kWEJcep7LQY1B6YBSMZ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qphBVAhLx8rmh2nFktCTGYEbcZ1beakABV4EzHf6f8bUhDFnH9Ht", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrQA2rcEtFq2XdaNR29gXcXNivsYbn9Ns2jDnT1wiXtZ7wzkbMwh", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpv48V1sGYxF8DAK3SF2iRCt3NZv1npm18vaiUCoMEJvz5qa66Gs", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrGjykfCpDVwXF7Jc5nx9yBCzCyQFfDXyCTBjrPGqpSSGLZv1xwg", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoEX6szhzBGMhe3T7pwJJDjXzwx6TeHJ7HPzr18Vd9AAJwAL4kCs", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qovQjtxcNUAtUQEmDvNiZrvYW6w16H4NJbtVcTh53a9SMmsDoS72", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnxhJKJsXTZGggGeg1Kcg53ev93jecquUH16f2QGpxMUBGNceYSG", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qoJTMuvD2EfGYHHLHXX3886n3fXe1tpPHdQUkowUMZxf1hbQYanf", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqQvd1kqQeUuTZi9qDiZKQEZ5kUhN2BdRiKrFuSBWAkzH7D5DU3x", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqRP2iYXd7sbdMBoTNRBBKWeYEBDdtYt5qPNkPKRHWxzbqUejJNd", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qmBju7P5qKgCzhxbo5vpgpg88hcs8mYgycQVRSgEF8UN4Swb8LRz", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qiade4fpM1f2svfbStfRjDEe5cwXxsmZyCegRRHMbXmjnHsUv5by", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpy4YPBhCaMdPKMvj25T6UaDUoU5scQdigVbW5qhwDhHgD8fPuZn", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrEXTQZoWrVYegeZTLQZVj2EHas9a9c8fab1mDGNJrFxvmNuoHxp", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qk6WqHsyJi4QaQtdXm18ogF2BHmvo6uxhh2tn5DVBMy18zFBLgFg", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpgZjASqaY5H85yoZmdh132quQ8WkjQ3hvS87zFKaoNNX2TxgoBZ", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qnLNQhoEpn5ewQ8ob4LHZMoS5u67ZfY43FbdXCkrkTfWmKXtpiko", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qocDCqFDqTdnyHtyipbERh9oFjvaRE2FxrMxgZG3R6K2NYU6BCGv", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qqYWQraL5hjpyEiVfKc5qwyp6VrjWMHXcYQLnvgzmEbRNme6fqTA", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qrgsaKbVTmvtCNbJ7pSKCxAAYjbXaHuJKvy8fVT99oq9NKUJhbL2", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmmk5hfRrAm94V7zG5GtvxVTRHMiaMehqh3pV4yTGGPzKqeHNZyE", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrKU1mbLAUygDknXRy6s4hQziFCEWVKea1zYKV5XJhrJFx4yg2qp", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpSA1eYUVmd8uZFCXo7Hnc6g3YjiVdG6FgZA8e4cdcvommz8Qjmq", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoRZkRdV4LfzDVMtmqx4HAxmS5LtVkeK1V1eaK6vzGzV1jzS6SDH", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnyonC1bDvUNirDoL8tArThJNxxu7817NUtgutWuc1qNpNCRNE74", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpXTtP9CHLj8SBCsAY933VGYPYp5fSAy78LEhSRA27GBRqfyxFkN", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjuQQnC44BY4mxYEQt1dHrruEPzyJWHDzrhCTTH85VdaHeLZaZ77", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrNN1w2npg5XiPh3wEbufgVY6ArxThi73mbSWycyTD59G8Xrz8Vf", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrwc5vRVGQwcjs9EukEsRr2JpaKb1KZPS65uLWiCAJuAwr7xCjpF", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmG7fyJw21WmTaWip5Sq4QBRYnjZjA1AjAPexyVxtNxSLjD2oger", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkSiZG5L2Y7SwWET5g8GHuUX8KekMNyiHhdvVn7w6FVdraUHM4cw", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qimgjYRCqsKktaXcmSuzzVygFR9Pq7k8H4ef9gDHewoUfXNS21pr", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpXdXS6HHHRVqPwbMJLGZ6tjoDxMqQvrVghK8HsqCmhmxXyHhB7v", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoiPNVNpPXyJXP55RL497rQmKfAUjsgGTAYopPrhHTCYAE7sDfwc", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qm6LLg9o3DnR172Aw2WQCiANMCvzvBrNCNbdfETFs45qRRL1zFsS", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjhKucoPmC5aw5CMW6M4dM7gwQdzPkJZGvhi5h79geRoYWtFEEjQ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpQzpqBoo6MA2qqcfQ3jQeFykEVhC6caWPJ1ojoHa24Rr7TehRrH", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnuf8sdGQzvfK6Hb2qSy8AGfjokt5qzrnHZZ9rnkGJpTzAJyFGTc", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqb9RBjtjNe5CZdH9NCpFXL8BHvU8FzVHB5tCaDWTMWtsiQKfbKy", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrwMRr7fBqfyhkCWQ6v87n4w6dELjeDZuJZAbL9j3GzeTFaLfTQ4", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqQ322xzKX9MjQ7iDcbzryv1hYpKUPiZc5ewef6jYVZ1n5xKCNe6", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpAph32c9YDZFxs3YSUEbBzfnoRxhnFidfEY3y2iYL42YRHpvCx2", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoyMiNGbx9VbVcesKiEqAhJp4LWJoJfZoYrp7chAiR4dqFFH1gwc", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmKzAiSWMKb2BLossH294UiUH3FMG6H5toSgqW2ZQL4rPFdQirGh", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoVRzWZT7yRVCwVxSHtMfVPSrchkYgNVfcxRA1nTkdp17zutxfao", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnMkB1kx46bi9Q3mam7ahUdE1mtRAdgVQK6aXFUos57y9eYrmGsa", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnZVm8rypkj4gbMqNpgibA17UMXVQ9FjQ7V13GNzVTvBzfebZoYz", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpLdvivo8h68ngBhAv72YcfbyeEsvk519YdbUbVuQYE25onpz8Mi", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkomsXrnFdBEHHCSqGuKCiRKuavFsW7oFqneE5QuqxoUGdWvjyW4", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qktWjR3QTW21S886P5mA97cpFHAZFYxzT7ZuNtmfx81uU567ZdiY", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpT5u8yq4uU6xYRN2X56gByT7AEKfNkq98WsxbM82K12TSKbUWmq", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqnAMPvhxgQ1JqDqADVbhMg5mdGDztAtARdmfQpQM9ug5iCnt9wQ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoEvkCN4RKMVQQVMWZTsAYGB7es4Yw6spfBwX7J25gwfTFQvWZsr", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrgdwkXedD9ULwWXvBGg4A5jkjskBUeLZKWj3h8XfwaY9nRpSHup", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoBrVYkggmUFruJRNLWU7uSAJM3L3yHBJycXQKNJx99CY1iUR7UA", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoxhihLxZBUbHcg2WSRHuhvWwjxgNfpSGg3ngWBT5vBu7ZF4gxmF", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmHRCac4HHEMJaAjYSmJkzw8ySX1pojBMnb4fAg7mLDgigshQmCX", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqhLwYpKF4kCMWT9Ywj3EDFBRmQYDJ3djMs5EdgPZXLjzuMLnGFL", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoGpcFycsHUjCqEogTtbWCxn4peYFEyhjqhbGSj449zRpXRk4p8R", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpTvFGm27sHhQf2EYwES1enppj97s9325aASXWcza2wKfLZVCrxf", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkwJy8ErJVBRpJSVnJsnNJXJrqhPb8gK94WS9YWxh49rQ8W21cAE", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpoJpzpCNgLN5iAvoXgerG8iZtWXU6fDWQzoPZnpcxUgHa1TKto6", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qq51BZmnxvJjbGV6nH8jSwFsqtKyiWrohDixXgSrXX3prAKJ5vdy", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqaU4aextqFWkpNswMdjezhN11ZPrk55rGkr4PwoQUK8vZPtK9NR", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnW3yLh23CqLTZho5CHzKbeVfByvy6ofR5q8NzdrJyjPQsvQRW8o", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnDeXF5DYKBYBbg9dLJXfvGmUpmLf7YhzFcgpxyi32RgevvZyNjS", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnmcCLPybDh7kwkYaav2w8QHt36WGWXh18c4kdHjpdn3sM41mfgJ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoNf9ZBtLqbDjnE22rhdM9KCKgeNhVbnbcEPNBgKqBCRgoSh9dnd", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmB92WJePF9r2z4NFMZ4CdoEFwEVAakcQpMLJqqMGAqnBDQgZcL5", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpXBqqpKnveWR6zLBSXRMTWMrojFLrLjqfEJjpJ8RPRBsuyubpvT", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpgg1YHj7sdvnEE6TgsxEYuaeXYGvD7nMEcjGr9jyoLVo9UQspBT", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qiiBJcp1KNHAf2tZ1ygeA7EdQEGxSPAvNAjY1VsoyR4kA152A92P", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmQJGtpgWipKkQuLV6uH18v1L7Fas1RwsVmGde2Rh6ZDQWAprLT1", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkZAZPrnoQwPoeVPTk4q23L6TsuzymwinpjNyrD7KrGre7RUbbeP", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnxsAxWY4tqPA6uGiSPTLjcmC7bnqFqqnyCqCPFUEG4VKYCHmPRS", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnEZSm2vSC8zVwc8ixb4boVwLZSxAoDh4kTZkDC1btVWiAFw68B6", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qiTjytLLAaipy1C5zTcPixSN4ckYM7iQ6GBukpcZpiVtESzXT3zz", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkZ7feTd56TKuEVg8KEP9zUHu5JcNTjJ9YgPro1uiiFmCH1Nk3YE", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkqXrpt9jUnEotDM9FyMWmeombVt6W4brQv9L5Kh9jk5VYfVs14r", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qq7LGfN7cYQDfhy5Z569yvMH97hHDHtRNgqzwANP7vr59tfYWgWq", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmRJhyGcjSnuZE3Jrmz8sJ4csaTaFvBFWweTbWCZmA9vBjywaLCy", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnAFsMgyC8xzaVtdpit7YsdeaL1WNN36gxfqJEmo1rVBgnbhfhf8", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkWYiyAkntvtvymrUW1oks29LuFBVd74CX9eKRnUMqUUSfQezdSA", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqMahT4GiRtcQD8pDpDz28AorU4xa7EKhnFT117YuRY1y2vEQCwc", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrX2xhHnKfwcyG461bboT9W6qTAQfj6VQoVnBybRmCJH7Jpch85G", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpeysj1uVCTXSjnE3xRRYKgLxSsitYMaxkpCZXPVB286aBehp34o", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrpd5QzFtpzxMQJW14HUw8JWX7Zo6ce77Yz4rYpXL44KFMzf2cHj", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkSN1vDrvqMSkqZCXqWsgUTSzmErD9frBtyLpxKuStL2yPkcoeVC", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqdsATTSkSYNnxR4f4MFQoJhriYpFB2HXvPKJeP5KBckP5ekJDfC", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnCp1s98VADhEAAj79ZJTYnEBjyeLNdKuYRX7Au2Jaho7E9LHLmq", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmZoXjMusY6wCrRJqniM6yURnPZFLczgc37QpehxVm8KM4GfTiJH", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qp4AfcSszCcNVXAytgRcKJUXvyjEgbb6jHgSofc3Yx3XdjaaQobG", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmLrfF9svqELdWwAF6Di9QMVr6vU6F9yYSD9VpJiKNB67FcsWbwa", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnhKXr54CpCLAcrQLXKzqgSoPJhDdG9Znj2KUa4oREFapWaWMHwj", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qosV1axyzgamLDj4oaYikviR3aQby348hSoWy8VWPDYVsCwCAPJ2", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkSZaJwaorxQhrXJ2ZGTVdhyRNY2NoJ12F9EdLw2uKTduqXmEPmH", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqXM3NNgFTReP9zgMLsbrXa4HnWeHszHmb6X7o5KSnnLgRwPmNaH", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjjyPnVcf13Gy1wARBYoBy6aeqWtQW7Nui2t8Qqpz4RnQeZ3azak", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpeM4MPF8mM1gHaBHYpycoGH8kFiUQnMJHodbrxBMcJcJkQwaPy8", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqZYmMnL6rNorSBYVq1dUPw1uYzKmCiTQ4kRnE4HDcj1xwopRjVr", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrvwCTnufd7Q6Y1Kb9AnujqwZRGhG272cSYGZrNvYeu6YJh7eEDs", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkRxePHPpixrAVCbRfCNSKfxNfA5AVjYJqvXrYcagYz1oEDU6tdQ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qioNut36GnS78PXPZvrGmS7BzFrjqg5XZprN5ciqbjJMbM36p1BU", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qiuN6TgdEDWhcqGFMkCQTujTzPeCQ2cGWq6He5wrLfuVfGpeTKMH", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qo7GUpUoZMYPpkHKUtd78JxoNSmoNGUoTscG3iTG4PmsvoxA3mfB", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qo8ognenu8Zaor6NVPq5ismGUw4E6W8eKzTi4yNYRMBoRfeitSP3", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjqNpRQDkbbJidtVE7gBL9qFptGveHbvZbAFAHCGydSQQcqdERuV", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmb9pyW8AAu1MZ1UfCjHnhWbC3Ca13ve5D1Fk74HGJZZyf2MGzrc", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjMdxfbw5JWYzRs12impsUGkrKksZyz4nMB75QmRyAjcuCRY9GAs", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qk8WXWMJkhUs1RPsLbvohpaaWNvv4eaicJhawY2d95yH4xqDuBk9", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqAQnzpuxtoBuw6RbJqjeNnFuhNkFvAKbeuxDxpBrBP3mZpjNS2G", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qic4gSUJjMLRSecVtBbrn1o7qezBU3VCMPf68PL5yx2QxwP2gh4v", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoyoL3GA3nEEeMQaydKLrfAVpQwAWKJgGv8vCbrVzsq6zb9e1czQ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qj8AvG3ezV6aZfLk7ojKwcGpBuEEjai8qHvtsJsEDVWpRmCjfcMh", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpYNSmPUpwMioQZdq4wsj3CNP9Kzt3a8vE39Cen61gufZqbmLpcm", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qigh8oj9XvT6Z1xYZhnkAM2bziCgWhTvHAHX5KDwGmToYHVWiYN2", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qq5QRq2mJjwoa3XMZZZ7eYtjvY8TpVR8Ny4u9SEZKdPp58Ndcq7B", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmuE9k21orEKzsaVCn66sMqUwovthMtrJnW5ci1pCLFGqh5fWji4", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qosnVCNSn8QaroaFWU3LBEUhwQsdrcHvb599pAADKmXBj15h86s6", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqqTqjvD5YzrahWpUXNv8BWVivdNjmbhVd6cHz1wiUYT7HdDTfLN", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkdh1ieNGh5ZKhJLbbRNaJZJ6H9DFzAF9CjdtoauQsfmKFPpYJ5G", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkGNTZ3hWkwd716yKEzHdVjHHnD6yPpDvw62wVPZRXduEJF3djiF", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjU2Qkh2Zf1Ya9nmpKyu1NX3Tismt1iSHAgGbfK3sQMdWjfzkr4E", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qr43RFFkRZimbGr8mc9CWBGGPCxZWxPuttt6NVwQkfoo9WnbRRV6", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qq2qyBTK5pnQ5pouB4R4nJj8s79La4RUmLQPwS78RiwZzWYgubLB", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjDJwnivWSZiQmmWMiMo3fRkAanP6iA8JnN35NTwKW8DyuBT2194", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqBSHbnrHSfQR2qzq4JJucBWqocmKkNNt5VSYtLWhC1mEAg8rA5a", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpNBL8s1CpdgG6vqbe5hKYhZtqi8ABF76mkwoixYTsfJTM95UAgG", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkxZrMRJ39BsXbM8WPRniU4jJKf5usY2v7FnY1ZFqWPDa6mLifZQ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qn6T2sschCs5gfRdYydqvZXQ9qsAdYN8jr5AKjK9ZVNySxpr5JAa", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpckhugLsgKpCQXHKHkNoYaGrKiWVMP39GVgbmhBTTNrXcvLuJWP", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoTgRL3VPP8nMH8uczTUZrFrHEXfwKeh6nvUN7RaJH8LS4gMckLq", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmzwuvTCkAF7gHTWcBr7hmysiWvu3zNKQXFvHp1deBTdg4UrMTMX", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmWkeTXVeb6gZuyXvj1EfoUKDCXbDYTX7rTfvzGFomG6vBvHKSyd", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmoFTbn6y5vRqpJvtVkQepuHUg65XRn6TVzSd63NAUUwspWasbgG", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qosVGn5ZCm5tfzj8ysk2dCAmpmCNyhby8e66g3t7TJskQVcoF7uz", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmJ9LwLxRKdLPi1FxVvvxUDjRpjNShnpyRvS48BSpcPULwWiXpFQ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnRfFyKQxQmpRRCu9QA1pc233DnMpdzrD1YJVJmSH2pf3q5NXcS9", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmUcqMcp6eHJ2HXytDiPCbv4X5pFEWgz3e7KcE7p4iHvV43HwfJE", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjP7tQEZuQFtJmdnydDRAZxmCysP72c24QcxjA26daDUu825xqi7", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpvdGk5AuM1iU14g3s773qBxPE6FeXZ9pK8aDw3RFqJhpeAiCMLR", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqxw1yHPXvfk6CQPF8SiVwPZD59EqyajEEn73JrrMz8DjFam8wsp", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoFhbTvwX3XeRcKRKW6EGxTbcw8Q7UZEM5SZ7kqsKEx3FVHu3dLy", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkCcW8SdPqf8avwsrjTv3ARduLfFe2vJZXxkNhkzfch35xh2a4Gw", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkKjLWeD1LVmYjouJB9auDTAVL1VLWReNKwU1RJh3X8BVLi6aLZg", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoaq46SWPJQEp85x9s4DhDWh5EGtZR3hzrJAz5eQaD4L6vSswVmS", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpRqutmpm7cevovuWuTLsU4L5n5qXWzsXrmRookNNVDyRtZwqgAK", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrgtw8sUhspQ9FUHsHpMNazCF7Avr26HVLv9jcWbE8azYaZbXmAn", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmWNghenwqDrxhNHbRsEPrmZ3Rnf7F8Lv1fPp8UU9bCgKkPUU5dS", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmsmmhAGD4fMCSapM6jKcvFzf8b3Aiw6RuTYHEwkaRK12ZFju68B", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qj24GuuoSPQrFo8rjbtCusSzJWbhPZmmSXb7yP1wqLE6A3ejVJ5N", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkn2bZ59VzZo6LYyjRFBkcaMJFgfjiEENuYr3rJ2d4XW6ownMT9S", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpzNHTvtaNoyYnqNmG7KaJ6M19rjsbgiux2uqEMAe1oAnGnzPNXq", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkcoqRMv3FggLDS6KgyhQMgpE5zqpRdV6gBuwKmqYLxAU6NhpSEV", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrxej9V6DNXBiKiHVj6nmVXdEpUDFJfk8z5AsDYygkgPVrRLRRHJ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qo2d6bxJYFLRhgHpqjAJ9Nk8VLR4tVu2xDH8ZqH8aM7E7deEtwGX", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkDP9iA1xSZMw8YAqxerq622vNPtCcFkAMPB5oY1YPQ9Zjj1Xias", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqX6D2WkwjaHF6PdRjdaZCABbRwp1oRV6QtmoWJU8e1LuGH7GhBJ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qo8Yv6uLJU4dK5S6SasCNZu8Wu4HGmGpAV7C2hxWdt73ToQYmfsJ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qp7cbwhtHR233zqeERUg3zS2h5qtcMAYKw1T2F899ZaJsdUQHkjr", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmrAUofPKvLpMCC2FKasoqRiSdMzH3spUsTNPCynwqWt4WpsGzZH", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnzKtZ1D5gfAKUUbPV4fapyxuBzA1Rt9GGe2oKXxzVy9NRbpqyGu", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qn7mxGFkg2qUzhz18vkssd9upZ2FKTgvGN1g5BDbvcYoHiNF5FPr", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qp8HxExXFL4PAei3P95gVxn5y4Vtzeri5wpUb9pRBj4KWYqVoqMM", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnpZmNfTy8y1a7vKBB6Jnvr9zeEBSc2PzJ6F4HVx3ECAwQ1hLhVk", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkFiSXED1bpCSxyfYmbQyByQwPgncswMLpfZuZkKbwH7PZ8LyW6G", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjhshwF5LRV878vCtFANja8vHKX8C7M3CWZrfDoP2pQ6HkzaK97S", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoVsKdT7BkLXeUwtfUTZDZm2iw4knavT5CjoJCHjNSZtgAcvUGm1", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qiipYMvtoy3KY7k96JqN52cCRDg2KdkskSyELZSLo2rLYMxQaMgB", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpspD5E2w2hzNYPewQbE7TLYtHkGVAC6RAHzxDtuYSMEnW6Q6FSq", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqmEfe3bxsW5WxCZSiJSEMw4jJf4s9LrZra8st2V3VJMhPviCYHN", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjNqqiC2cgjE5FD1YhCUkvZhAHSXM7vP6FWUwReEBn1uEX7hCaBZ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrriFS851DEu5iMaJQsN8KZeMeC6Gu8za81kg4p6jxKNqD94xjhF", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnkKuxJRT3BydbuXtM7zHxZkJtTkzScFRzKRA8xU4f6dHPm3K6qr", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrr16CLmB4eVSk7Xx1xduJrgEZmzs8jUoFXYafGwcLjhrsGYGrnX", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoTYp862fDDw9B6KVyua8sv5sUFX3s4mevDQzqCLZKaWShRip19t", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpUmsKB4CJ6wGycwsEtAJL3RkP4afYEaFMEC8aMJkVgaxqjX3WEL", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqbUBh8Rc3qEKnUDPt7DduHAybNcsFBC6mBAYxJJEfvfqPXViHdC", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmHyiquSavLeFRSuJr6wzTJzp1uGLQrjXv4xzysNRExK8L8uGcpt", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpDUNsLH6sXUQgdRKVEjZw2P69pxBuA6NvfsJUaKJsEKB47WXfzo", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjomR13qU3PsCt1r3qFRCnwYZDyoLXoM7hhqeaUcmKvqGef7AHKa", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qib3JRTWhn2GnMUYEFwatuuMzyMKJP1LaRgG7JvWJZX7Ukvs5SZf", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpAuj7dgvn6z47gW4PC5R98SXfQR38E4yt2ZsbTaNhrZ8FcecDdv", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkT1DYjUFvZdfCUFskCBaZgiA7pE5UQ37WNfyzgVDiQc1KKA57Hr", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrGHRTYQVbQQXAiu62rESAT7eQQXi259b6w5hbHt3rrt6uegLDPp", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqWprPnrCgjFKZyJH43aUN4KVrwEnGJqMfCzGjbawm7utVhFDmTB", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkCWBqGuy1M6jgCjur7ambXKUZBHAoVR7mieDzhPJmh9KBToUcH7", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qq5WeXQ65wk7hpc7yEjYujRid6sdGvCP7a5ERtZhxLwG9htASbuv", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmkWnvPkdr7Z5mhsnGVwj78ZpJq5njYEAAzQiAbuiDMPCVdMG15e", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmrDdQhFWxQcjLENEorNJJw1y6ZVZNwa6pawHGiiXBYLhXwm8mdd", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoZQenfRUDW8K9yUftg3cwwGsEN29C4nGKWv9NSMSRvQ4nTXEPBZ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qn5Q5vgCcWR71gpJccuHYw2XayeTmmkZjrcQFB9Apy73V9SiMmBM", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qixAVgej3P9hJMiJ52gEi8hxQNtBPWzxVyWwJKBuBsWergiH4YwB", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qifmXjgGGmvUwVv9cnq86etPrBCHHKAMfRRC9BL9tXkPff5nKfd8", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjq7xNH5aVfNW3vn44WG3BLpvitgmM8HpF1U4tRT9UqsXTr4iUur", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrfUjKqjSMBuDCZrqKKziWsuKWygqZNSeRhv2uHUMHrXNbLMQ1r6", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmPfLAQsC27uwCbDM1x2eSQCq9VBouThUSFQmXKFmWN193d8GzHu", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjdUCLci681WS5KTwJcTYkS9wa3k2d3NkXZiiybp2gb24XhZ9wj2", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnrDRBS6Q84iiKEcgFgvLgBe2w4PrPGA7FAaT4YJppw1mYW4NQoB", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkU1wv6fjq1LcuEyDZcr3a2YRvsLYKS2ouwy5Ex8qr4916pc83Bv", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpPcSLqZ9uZ6BtTYC4Q7aqxzufUC4BGWEXJQ4YKnMp6Ffpodo2xU", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqi3bVnDcPKuAumo1ao9b4S8Kxdcdc4bCvmhbrHYBW1KKcQdRWbi", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpwmZ1Ea5qSXpyGa6MTWBPKb3RGnTsRt33Zp7Y8j9CHApW8xDR5m", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnDg66DzGXqfrAfKJtFprz653WGnXXSunhtPjrtTsXwUzp6SFLXL", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qivfhvF2Ar5KBSVZBeLTY6Ci7rYHo8FpFtz4qpcdD1KjuEnymJJA", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qprb7MiAfyvwzdFAd1LhL1Sd5duRtFgs6XWvg1gHCV6QK4oFDa6Y", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmgP7syVDBLyJUCTQvMNBFQrKwrfmTTbWh33uBBvTLxCXX6Cx5oe", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qs2m5n9T6T8gnAf5TV2Wq7YVqeCdQKhCEZ8fio3qb8VG4dgdw8We", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmzPw74ypXJocUux7LxA4jPQdCd19BgUoP7jzxvw1dxBgNuecuPs", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qiV3EPYpHtumeX5SsgawoUcu3yTvRbZvoWh83DBaAFcA1mdGNsYj", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpnigds8o32uhjahXq1WCLehmsc4qryYCDUztWQ6yjhGHuUmgBPy", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjPL7qdW7ADNE8KRpL5nJoRBwkTwy9XLgTauwUXdVJR8YTmkZKAg", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrSUVU7WbSNPxzcnxWkNc43FeKwRL3t57dDnQp4vdxbdoiM8hDJM", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmiiY875YychzAJpJDBybt2sHsmmfMCLnkMWhBkD45igVZtyV27G", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qikZfWV772JjxRMrTUJh9WDNBuLizUwwJy3JgkLUHjRiXE9Zd8Xp", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmZN8SNTu1xx9bcc7dGkeAzcZyDj7FmrQiaZ7fgwZ7KQmRwsniXk", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmQV1o48Bm1CLdqJdFWukABSf7oaYQbyzTqrptzCc58ceUKXAUsH", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqD2Lft57CtYmXsUTApTxampWCsWKC9BQ5Rs5yL6E8HEBiHRnN3w", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qp4Ac9shVMB9raAN1kw7F4HmiBzvjCprRJG77tMMmW8PE6F9mDS1", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkNq7H5i6cd14bTMdu7VrJk8eA9SAGarRRkkHQd9FRzhDBV2PDfb", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qin5PMwd2b45AGe2bAuvNGjzkpwnAMq2Bp5JrPy72Sqcy86PdukG", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrG5G55fnKEXnb2jk198UZHmWuUWgPWgrTWqMPohypKxKeAgujng", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qn11frDeETcuPKCfMZnGN29XJe3TLGJDpFEipMeuwQZpZSWU4Lsp", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqCkyLEGHWpi2jKCNUCM2QrH7qU76skaJVoPCQJiKBwZg1vnHA2V", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qp5o9LHXpNnZEeYAaaDZTyGPL3j6Cko6XjgTQKmqSVq893cA3jb4", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnLa9AmYjn4Bjg6R1Bi18jtMBA3mnbKuPeixUcbKJpSU5k4UUYmH", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qogKrzFypUqW2Gd3qWf2osGPStUQ1CbdwdFt61LvRQqqdpi8H4Fz", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpEGgygYZxYk7jfHGK53FnHPwmCffWYEhUoUWAiZv7Cj5kjsApL2", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrw4a9rzdAaPTU8VHG5JM1ysys9US2AJXye1pjv6zpFKU4YpnbYg", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qk4hDSWsVrsEjC8bURZPNpkiXGkkC7oKvvEWUJ2JS1tq6DHLAuDB", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qm13oi1DPq338ZDahBq92ErNFgUdks7dhyTtPzkAYnUFT8MFhqiM", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjJkVnDyT6MhaHhPi78inh3T6jBkYbwMpwoszXVE9nVfp1aFVF4o", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmEWvWPVJiYyxNXoMiXDcHrE5xxkXG3MsJFFF7x511jFmXhxEMB7", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnF3wUF6vMwTD5s64TY1oRQxr99eg6pKH2ZaRX9bCbKjhGBNCajM", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoynq77Rda9kBvsS7VXAHQ5JrrhvsUCjGL5weP4cp2kq9diui3RX", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkGW1ZQj4KdHGXieKmPejJaqDCDb3e9N1PaQTckKcYNabCMJ4igh", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqUZEhQgm6NMYHofszV6UfQB7Qfm9VqAjUQSpFUUsaAcoxR9KiVv", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnJZHmTvd2eh23UYy3khoqrwVHg6EaGHnShCPLtXrHmqVx3f6HCw", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjHc4jVMG86KnzHmnZXKP4dSGSpbtwPfCgTuYvWS2FVH1ebCxHBd", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpcjSZzXrRcE75KiZEos6gKBU6f6arCnk4Sw5Bbksua92fmKLVnp", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qk1nAoEPZW76gEWVam5aqX6FXFiQS9DMUdgoAjMKfi5heD8vHnQS", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qn7wrG5BySfBiyiPJ2bW61C326qSfjnKjAgWofNn7MDT2zvaXe8k", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjMa4ikTRPpKg4z12rA3pS17djQLM4tGBMHKtPBkaryqULdGAVZ9", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkGr6RLisFyodmxz3Uwrf5MvLMLfjsHNL68AnPkKphvNBQmfBNV9", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoFHs1YQ6prQd9EKDQQz2M7hWAxS2HbJXGMmT6CKbr9tEjszH58W", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkcrnUCgXMDn5sNu9abQBkPiHbAUhNPskVyXqaTx28DsMz3MwhYP", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnoCCzGgU3wisy4wJgLUqPrdQ96Tac7xA5YdvzFVK5qJmK8ESvH8", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjSFcLc38Q5HFnqyExnHXvBoPzcT3HYHtHcngnrVAZLYNGQDR1sd", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnAY5eHDYjiDaAb5S5mkzJPq2CWY35yGZuXrbfuRhhRPe3Ry3LxQ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpezMuCWgy4Q5J3iuUgFr4QaJ5VdXQCnSUjDasm6yNbTiKJCK5jJ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqvN9mzipdoqzjqPDpJnUc1RVAQ976agUeZVjPvPc4y8pTf1C8bU", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmicUsfXDnzg6ZzSxdujzoZUCwMAog7FBBaXntgPxdejg4okEJfo", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrFAvZrteSmdU67vMr9ZzD9rN4Wz1xE7DJJoGPaX4oSq9dbUavNP", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpH78jrPMNofHuH9twu1qdwcr4PwJDNuqnz3hx7sDMsErv31mZ43", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoHyM374nG45Q6EA4svSqw29kSQbWbMPcePtF3XnB77srpuvAUXD", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkiFJMmfVXa1uQEkhY8Ne4GYq9tNCAHmtqtBNJ2zG5iGAgtyaukq", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qiZumEVSJHfjvQ4JkfGeoGZj9GKHD6z2P3odAYrSgEnsnoQCquJU", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrhsPNvBJ6tXW9T8to6ETZt9WzMc5zBA4R6tLp7NpNmmHUAD3i2y", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qr3zSwipmqH7kKe1sr8cRaAhnb39Yk1pMC5sdFQA859NDR89r5v9", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkTZLvWDuAbqyqrfKbymHk92AdaNJC6GWY9z782zKsWNt7bFCx2y", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qopVDH5CrYJLtAJV8icZuU3sfZp2JdCo4HPUUunZkKv9H2GBp5DY", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qj1U66SunKwoDzx79MJUs26ywifRrCdffnZHrTs4qazy9UJXZjaD", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpjBwUvaqoGABR3wXAopC9GqxSLRVLSeYFT4PeseLKYamPYqGTXf", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpfFhRyy5YzKNCBsUupcQU9YnFUcmG4ieDcxEZuEwCBiTWpRi6Gm", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrYEDjgLGiX75GXCaAD8dpf7V7CVcYU1ZkESU31ujvMDH5j8CKEs", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjcHGtARjb5cuYEdyMCiUhwTJLnRtnKVA6UMvn9RgMAYf6CUQARV", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrszC4bjg4rmBngwzAu82vhoStEkkY3Qfnw4feN7x8W1fpMHnxxG", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmUL1ZFRJW8JpeTCSiUnvKBbn4BQue489DwG3qjc3EXabEou3vcU", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoZeBqyHeHeJb51yfgNWNDswC8dzEos9WKxUPpwJmdYvbtwzsuPM", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkrdB6YXunx6BJBJh4kExvKd2K3DjfYuohXqTbaCDnZwH2duEaTQ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkxBAZ6q5G2riTH6DjSi6CjRe1YHiqixHW7Cv5ZAuw6cx7PoCxDe", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qooH7yuFxgqLzziuKXTFana1Q3dkCESPMc1jeiCZY7sehpHNnExt", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjZPkwvqZVTn2zZmz6DPzLSvJcz72f1aKVQUMR4JSksxd2Ussmc2", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qie5HT4bVz5Rqmmzb7Aik5VHZ35kDLyPFAH3F92Mb9seXYJaHL1f", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnnB6Qp86ossExMBhv1uPAtFL179KfE6NcmxXoqxaaBmiGcDAeUD", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qiqaSTQhnwNaEsUWyEWehp8xHskCkgNzopqx62ZYUsoWTqW31JvU", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnDcnELZiH2hLeGGyThi3DkKziYYaqiD4gknSayENSAtYgKR9hMP", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrxpYhQTfjUQqz8GDgvDeCzxk3BUuEuC5zsLxmNb8TK5MLzJxz7E", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjMH57z6NvQ2RLThKVNZeGSochzvvGCHayVvHDaC3UPZDq7xLsFf", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qobcFqzYDkQRykUWWad7GD7yDed2cHuULetawhQvSwA8CUcWEtpN", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqxxpL7ktVpmABdBNpeHoZKckDWQQMAXpkS83pPjRmDTyuDLd2sF", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrMST7Kcv19ULPWBEzYmsEkKsHg2HMtThuAYx4oKpLXvDFbRBHoK", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qicg5RiGsU2p7VKtMdripsKxmGEGQkYDCPJaiuLCwi18hT6Rf7yE", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkadDMdX9uJzCG8AtLBBxPQ3LvWNssqrbyADsH7PD1oVkyBTt9TE", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmiyxXST92nHNofzsatvk9oxQVmbCiKM4HscWwEcXBykegsktVUS", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qq4EQVpM9yGbsqU5ubKLbWyYAqBQbirST1VvA5jx2xW3nWUoDoLe", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qm3QpMgxyeXWJWG1mvoqFe6XcXtETT1egrFZkx6pKwZcBaoFDbtt", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjQb4Qttx4Bd4WrCMwXJ3yHPxaUgAMd6AWGnFkgzzhCNEbt25C2X", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmrKx4p5PB1iX62LKXDokrXhnCfY2wb8d3V7AdvBo4seB7fW1DYE", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnh7cgYmAyBJowZPW6SCxcdoH8qmjGuyxNVojEySbdDLhES8eXFv", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmxAHprnfmG1oZUsXTKPg5Tw8Snr3QJ8qefhrWcxjkyigk79etui", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qm7EYSTcpSzzYz48zDdn4yr31mCzWT73RUp8SqiL1Aey5wrBFnna", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qoYVtL2GQFF4TUwGcmHt1zYYMo9keZ4vtLawvoTLD2f4ut7NDiQP", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkFP8edCT8zjJsja81HbwUZv3F5VED7nV6tTJqLujC4fWCXfwz9A", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjX7Do5MhE9MmXXhuWyUR4XkDqVgtc2VFWSXyxfaqWcuJqtZTh1R", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qna7h6tZZfXujwdPsR7jwBP5BnkjQwxjPmeh9a5kx3dtDqDWR5dK", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnFK2UVSYvjoPfkVAUNqFiGHSqVkRb3HLMuY1FwgKUNdT6vgSFVD", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qo5DNaok7CRBGKVxgsFwWfRZnPgZZtpE9f36Cd6vUTy4ey9ify8p", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjkU7wBjP47agG6saLvmA4f2fVQSuop2LzkYN1jtHZFvtHxUDjxN", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnFkADH1Hw8NKjgxycTE2kVAgzodqhLCDm3uz1x5n8ojnWT6fzS8", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqPiqs4Tq7Vhdbtwy325Me7gg7NakDVuNBaZ8BAg2No6AZmiXd76", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmE6tb4aNhK1hkAwHAkXjt3JeGh3sdigFzjDhfrLquLPmbKkHCE3", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qrHHvxi8QqEpeM5AxHLTj2ohwfUmMpGEyZipr95FxjrStA3x3W7T", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qkNqU231cj1QzqAS5osDqCkhEX6UcqcsJZXYPFA9vt1uHCUP1FGK", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmxzbusrbeLjRTWNbHWLkTN1tCoKK78CYgqS7dmmp3eTEzNC3ywo", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmGd8aCqiJgwbzNTzqsxpMEV2wZmRHKPh8tiB95zNA6UsCTFsdrd", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnJ8JPpeXWRmhFL7WB1AcbGsJwHGDM2UNA2MsKvUy5kBT7fDhR54", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qivrNxHU1GC4joou8xLZLDYanQfeNNYDeNMCsa3oXwt36cBnZgqL", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qpSAWz2riTGxyvU7Famj1qYJm61RfD9QCY8jJnMUG5sXKqyfD2rM", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnKi6sU5CaYL8KajY1jfdoBL1dk4AHpFuyWXKJsaLkhvGyjg8vu3", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qjG48Ws3n9bLSzniwLTL18gpoJAPLvAas1YKqhtxxLhQPKRtPz8Z", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnsgxTyPHnfBsWpkB8quPbEZRz1fG2TKSjQi4WmAFxmPuaUbywbm", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmFM6GPiwfbF3dJpL8RNQzUGCvw3rXddCXgGPwSiKMSosCvcSQVp", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqctupP5nCja2rY8BXJW8g2uFqdR3kVE4m4PJ5FiZWD4PGw27zzj", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmeZLYoZ3MDtAWY8L1gZna3GF2fj7jQGJhcN71UZbJ2azVw1gxiw", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qmRJHMpE6Pf1HFp3vbWUSDoQkAvNFTaAuqyLYexoJiTiLTtbG6J2", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qqKVLA8qzZZ9VYFGpmP4UXacyiQAitoGr1tpgvEUZ9uPKZt81oRq", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qk4xXhMTfn9KmFQs4m32TEcJaLgYzHqxygFRMDc3AkNUyZKWzUpZ", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnLQzPiLYPinUpCunLCK7R4oogwZz3LJHcrPiLA3QJBRSbC1crto", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qigP1T5TjdkkjeXXxxxf2a1AvSP63P8pXAoxg8DyuM3d2iDaCAbN", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrvVPXpBiAUvRmdCnA7qjNyGnEHbE8pK7pfVqpFrJbFNSG53K2xR", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmSH1ptFTjkukXq5iXKtnuYvbhLEWyoe6KLh8HFqNZjkA4BjYPwn", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qirMXRhFbt6vbHaoano3bjb3mzRAkzcBhJSuwo1gatEkW5NfAYLZ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjuYVafz2H162x6ua3k4uLgBvCdR7iHrosUxeNMxum8bd7WbTg8D", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpXPAvUV2v9Zdsup2ji5EQVTqQPoDZA27ZRNhaNh7rcrUa41HMdF", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrfZu6dpmzZnhCqYRDaUiD8Bh6cU5YYsobAmKxq8J5SgQf2RYxrv", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjPHoinBNNpjB32L3pctmm2ooCgV3X9w8ri2RNEXm3gGEpZWRt17", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkgtwC8Eh58aZJbAkAoFHMFL3ZtFDiSAz3cTcgyHQcENhVkcjwoZ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrzk8VjUSoz7G6R6CNYquLmHnZn1Cha4T5V52voXXcg8f99e94gv", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqgauHYKi4ARnPhiiiWk3fQmeQhqegsoqKKqWRbcjZRjE4wn37Vo", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkd1ipM1PhiM4TPYpk5hHusC2VDfMk6smARsH9mYniEBh5MKc1q4", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqGkDM7BRhgfDX4ytNTYDMWkqUZXMeoMaezrztzM5dpnqkbKxMrE", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqUXUbduKHHqSUHBHEqkVyPzv9nXbQkBCuZy5J8yGGmZDCW4PmqL", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrjbMuF4DmWRU1WJKYpJtkLk1FNq3sqdUnWmdLxz7bVzsajpQjLY", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qo7vgkFZDJEN6ocZktkUQ92acfmcp3HUxyYCg3APTaHAzFHp7dbu", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnSaFfdjToWveS6bYtX45aGvTbEoTomBsDyt7V8MWr99LqMBQ4Rd", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr9LoRe9GrxyGU9UFaUEj1VDCCL6FNWCYt9oR4zx9GyNXjhc5JT6", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qm6Z1GZE4uMwKKD3qYLpt2F98zTohebYmydc35VRTQTLCjUHm4wX", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qptfKnKVdDUsGL9qkc6wrdP7DRjozyz2FVnT4QVZ8hf5hKzKpNtM", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qj3CJ66pAeYJufanNr977S4i5fwMDzFdeSQnA3JLhi1f6TTz1hSd", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpoMrWJXSKUmzujXZo1rhjgb3pYHRD698py1kJ24Tk2y7Y2ofNBP", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiiGsTExkBFRayqM5JoqVSs1Yst8KBYBThEe8QWv4q5Ei9NaLM2f", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpc4JSJEZUUo7BVrptcmM9rDTeqN7ydXnryMpm7MguU9HLEvKjW7", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr5nnFNxeBTGfDoUwMc1mgHoBh9dUCbuhLVDcMMtmqFwmqLtkmon", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qigF2mr2t9TSWbSjZEAXupdWYFQy7QmqizcZMwWQyAPFHRHVixBC", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkUuENGhEWaFVQ5LnSiNJp3jwogpFKVjobJtdCo5Bpf2QXf8v5Z5", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoYZ9dnoL6h3DRykjXRhfYteqJ5SGmPFm7V5ZnVgkx3KijTZ9Ggq", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqwVFqT9j99jcWuqmgEVcpowYUK8s9Ut15s2Dq9qH1mmB3xvrJcU", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqdVdoYBWFj911jNkgo6odvYsUtxxaNtC5mq8MEmwQaADVjfo2mW", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoQjcR9zA5LoUpdRyTGfN6G2Z1G48bfTNybUfYTLPNCoUXBy4UBq", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjr1MSjLKuJWFdViVuLw2y4qRG5CXufYDjGYLtMzcHBTxdqRNqBv", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqDcF6UXjpD2NoEEGxCrvQjyRQWPtkZjDsoDsc89zjk6ar2TG7Uo", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkXkSgGTwJ3LXkeTchaitdottT7EXJ9MWHwoWk1F7ozVeQj65QKz", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpJvTVEJz7xyZRnN1vPGiLK2Uga4dLo9nGFGD78yentEHqH262oH", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qn23bZke2MsP9GXUT3GDg4u7Wrk41AnvL9MjrAyThoHgjN5tEQXG", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmQqteLnLabyZwNvfqjF1ERuemPUsXwmLLpvmmJwggABL6arjQjP", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr9L1zsXivJu75kavGQFoUVQTw5Ghbprf9ZqMkB1GPs9XB4wwtZu", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnyotwUrKTrVR455ZbjQ6weeot7ZdGUZrnkN6enyDW3MaJ6NLypP", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnKegCsmrzHqAjXw25Ncjxksu7HGLsR7hCniHGqKL2ayQSLNZpkb", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiqsoAtPAxtUVjZoR3N2GyfVbkZm22XqEdrLcbNoCCTM61eJfRZN", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qry9717kwXoy125DGcvhS2JxPywX7SsHiz2k4j4m1XhbnJFUvAkH", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiX3ajxDXNfvprrRLfwwn1VqNkFqx5Lrsn4ftZ5Jr28ZdBvVAwPX", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr2ubi3DMi9TUWDCx1TcV65fwxC3TJTNFMEmjtov8tPBVcKcE9PX", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqVcmDEXATf5SQqVJ2Qwx8Rqkm3DLeL44Skfv2kvjAnYu4Kgq1Ze", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqboiumj46PZYurmkN2mtWTd5X95a9ouHmeX9pDw6SZwXCuyBAZP", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiqtXxqajWmfjRE1RWF97miTcX1TtR5b21D4c88NxsvEiqHT92DC", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkh3hAEgkHRakjqkdWgBMoYckjTfRJj1FZZDpBRENqcSjLFdJ51h", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmhcVUghaD75LJ9hKTaUHhAbf2kLHr58gBuwmgNsEHX5N2GRwUY9", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpyy7qPebyqBnE27KYC9BqoLQqWa2dxkMCz4JMSVR8WBKbBtoPwv", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkoaQMUWi4NKdPMfeBBnKCCD5qvSjZbJk7zkDygxEkC5W11wc5sR", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjGYtydNQQLggdn4REvuhoZtT5vdErRcifNJJ4S6yGAgA6dnyFPA", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqK9C1E9PufBXfWhCEFpc4meJAo1wDUsompvvCYcrccsL1Egsqcu", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qje3QRzjdo7aQMACxoF7YjNwxpuAK3WHedSL9FQZJ8e2FkJkC5rS", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpuZ7YoYrZ34VdnHsyXh75iDF7SYZatS4d2T7DMvD5ccrcCu4Vap", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqsRKfpEe41XfeZVEU9rUh4bJNbYoZXtcMBSArNzqfga2gC78i6Y", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmaU97DjJSWCSQirP1EPjoHYnwCfCfUriox3s8UarW9pwZVng8aF", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnPYCvoEtHZLkJzpnVUjb3HVBVMTcqmbWFjYcbjxD858LTwQdMBW", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnUFAgX8i7XGT6eUXRxr3VsfDvbYSonT8HHRm4ST62Gw1htZMTkk", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qk3U5mQz4DrhhC7mZPqGRbA1wyyEkuSzuHQMGCzaVure2VkcWqGM", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qn7NNw3Djv1SBZDasZCeiLTp5cPFnYjeHVrdx64qobBk6joUDMdQ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjWuPyXt3KrPWRnzU1Zga8PK6JopcRUZX1nj7EdEqJFSi9Zy4MzP", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoPRtg6q53wkMjjZq5WFWkJjEZtYkwh3MZU85bD3mmESFJsqWBC4", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrt3dGJemYPQLqzeu1LGK7vfdsSYdmDHdEZabhe3TBbXhMVzzGWr", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnmaFDjiRyWWLAXFGAWzdLgCz5hDPfWThZXFqzBa7udkCG6qeicq", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmZKPpjUc2w3s1aQr7G3djQp371VnVLGAr8s3FaT6DBm7ySqyPwz", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmWFxPu9MY4thJ7361HtdbVoHe95ZCDpsWDxWHPb8oMLjQyPQVNK", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjXcY7FoybeGQFp7MVr45MA42UtQDu1opRBX7ZYM2z2JMkHX87wj", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjdp97crt8Th9oAPnpj5tyvkiZxGXEz9j8r1iWGCkRpMoFicHwFk", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqb1gDGY2BCCpgCMbTka3rr1SinHmHqrFTBwJnscwnF4gbT4aJe7", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qob2aLVRSbTggdi3ZVe8QvX6vsqSHMZvMFtNRcwdcfZ3ukwsZWXp", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qm2q6g9E8uSzF9Qxs2WSxEVSdq6D46S9WbVgyJYsF7bBHcb5GRUd", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qisN8M4GuUso8VQkcnwZaJj7xP7kRCoxHJgPh2pNLJ3cGPPCH5sz", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qprMadVxDydHzUqepxig86ERbWHgqzCc8dx8dkvhhxnfMjyv37m2", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qicfHgxyF7DynhejszLFu5GpsNew5m7KEfrSntBQGemgNtFpbrbQ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkjGExRGn8eS6EL9x1P3NFreomB1xWsxa7oBpYtQFL5KyZai8qym", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjPjWNhiCFKrrwqshmkn2LZBoD1kJnNU5BkgBeyJ9ui9by71psY7", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoYe7PBvxzsNMYoEak7rcamDr57T8FVLPMQrLkcZfs88T893cdW5", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmHNZqo4xZwTZLALfoTSPbY5KjeB6V3EX3fYwnes3s5RjcrLTUoX", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnZng8JaJVQCJiqG2Kw1mecEG6gGxvLNgthmZaT2YFE5Y9Ckk4pA", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnbdHbmcQn5Qb5A6UppwWHggSJg1hNXomyQyYVb5NFbmZxReeq9Q", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmkF5A1UdMcTnk4jArPq8NbUPdnkvjAF4ECCRC9akgoC351GpKP7", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkR6mSyXEMp66w42p2QnCwYgpLCYHrwufmyti9pb5TahmWqA4dFJ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoxL4dqnCSrK9qaeTrXyGittgR4tkmcVmR8i1GKbZnQpP8tZqhvd", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qniodsNHDRDg3AoiRMxcQ2bC4rPTkCLLmhYdPaNu9frXwehXTwXm", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qigQ7XsqFDy6oMwBwV7XKmXCEGozYcNFcBB4pen59q6nec9XEb2E", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkPy6qLfAQoF3ez4iT22GZJtJVm8xmRy3HsjFMDRgpJyErm62VMG", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr5sjUigGG9dzrLExNraXLAS3u1Ks7iGXkWQpjtWoHkdagkCMxw8", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqrp4kpWZ6KvSWL5cadyTbj7nST8qsTCgVPgP9K65itdfpGo2993", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqeqBwZ4tSqXjd7PtrSYgt2PvS61RfpiBk2tpj4zZMG7mtkabYN2", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrqQhQddxtLRdqJLLwy2kwcshzUmmtectnHN9sediuwaoSR9iwKQ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnA1cFrcSPruHqfWsdwYVUF6JatU9t1qgPBdQCtZofCySaEVfaXJ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpen1ibUu5T9YvDGk281PjhVUYHMy2ZoKpfR7hnJWsTPUg1BjDf1", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoPLnquJYV3QZhhSEpebFhBS2A8JTCb7NFAGe8pwMJqimrDv7SfH", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiUd8rrrDgwT6aevW8m1Kukszu4k5bw9T5C5bA2KeCfZkNUjUwiH", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrD9kUXRDtGuwWu9W9cYNfsNUKTKLw9hsUY7WgYfs5KfgBzEtS5L", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qn9vKsyH8HxHh3aUa4qShgzdrN85M2unuoRFNtfy6ex2PCrGt2W1", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnJ4AMmyMchywZgFUo9SJBpY8z7iWhnh5qTAy69KfS4ZRmi1Ckab", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpyYvcFX5WgA4CzxQvvpEgZfzaEWWFoCWEkee8f8ax81fei5xp7P", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qptnAm87d9PMDBiixtRSZ8rMYUksos1GC6g5eNvt1yXa5Ev2E725", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpZXHLNzFnK3ctVfEodD1JqT3vqCn2htimyRaHXaGVaHgwP21uqC", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpuwW55S58czMut3MPcEap5wcyDyJgo9rvJjkWZAsGQtqd3tftAK", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qicAe2D88NxC8KiLUjmHQo46C8gqZ2EVaHSLuRnT1TgR1yyZKR3V", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qn2AgKrsNgMohQqZRRiyFv7thxxFDd5B64DMMdbiuHZmDKQYkYqL", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoQkcPcgjn3BqgdMLQJEBZUMgWznoa3nvqWU9Zw8Hn6pF5GGBw2a", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qk77fyLDKWNYjcUuMu9DPLCLZ7gYQaQk4e4ipNF17wvCqZHZ4Yyp", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqBWJPjUkVAmLUhvQMUGWoigr3hA9etoLNBeUDhg2rGhkJJKkRzF", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qo6PhFS6DJRRFkYMeWeTrDujGR9biJe379WtJQWHYFtUddVY2X1e", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrZKFghFav8db19dheAUr6w87y546JoTdbXYmXwR3nb2tWQPnSe5", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqaF9ggGPaLKkUsrgzagvZZNVMTD7ncz3DL4yj9kRq7gqC3y8rYZ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qk99ag8FSYQMCQ8vkbxY4fAR2ChqHTxd6gx9AZBkc4o93kfbG27Z", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjLk3trypwqtumM6TfNphpTcLzv2fn9X449Zkv5n3gqCTfMNSNHE", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrkujCbzgVE37LxRt2SyZDwhxgSgyDappqsj3T1q4vdJnSybGqpC", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qo7Rrs55bgwnc4tWWevoUaRJwuhDfi5FGxZ8v2eUvSZrcViqLyfs", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmfa39re2xaBeVWHgwoDfqC18FHsVnu9RH1hkpBntPrRnEhmRnhg", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkNvDcN3rgrSWXbTdWyXHoUvUvZRiagjHpdbnnuHbZprkvVAewbV", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qo84KMvoGefC5msJgy9m3oow8EFdfBxjKWzQLy9JBJhoGdb8PTxt", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpJNwCY3ce5AH9csspqAPRTBD9THoz8n44NTZ3be4UgYT79Cfnq1", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpTXw6uJj7xBXmzSNCn2L8FuvvMV44yS1h829Snmz3o1FbPFbCJP", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkKSezrc6KyWejgcQs8dW4yqoeQUeTUR6WMbtpeZ72sqMsZFf2fm", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiYBwRLhbXr6bGsMXTf4nTrSTeasg4vasVjwBx9nCwX61f3Pzk8R", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoSDGB5JoVU7grWfirB8JoV3kcR4NYnW4Mw425C3SVxChVMSVSw1", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qidq51VdWd2yxcXzXEkLoQuhyrEjUXcJk6oxRxv5mtGydzooBXf7", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmLUQrQ36vX6bLDaiXEmcZCmsVQcLoG4bo1sVCSjZukvmMZmKhJ8", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjWu1CPafBmKPkxdWDnhc56j8PKX7JLaSJmPBJmneBCBRY3uLwdF", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrEd7SQoHPG4rkbvdGbynRQKH7eoYoSpCCyaFHU16x4saWssevp7", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qo7YrCSQ1rRETGjJXQejvV4Mo7qmSNiSZ3cntRqxg33WkHmSrdJN", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmj67T15vkqJgmz315iQpTLDikXaBj7J8poVuTwEUpnEodirTUGK", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qo7zfaz225gczpCzvDz2C6uH3WhNLPZ7vPFyov6T1s4pSxWrsCZW", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qj8V6Jr6uWSxBz8G5McHc89HxgYCHYXrR5ULiQma9zXAPXaMh7XG", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoDSjVmSQwTY9a8a2EGCcnczv4iCmncFVjqzeCPEaEjLpMFJyp4U", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpJPi1dqCsfnaBuzERWMxLinu8XN589k1TSjLZ9xQqYi2rLJ2uXW", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpdcZjHsJ865S1YAmU38dBnwoKHVq2vLv7kMGxFbh59cfN26y4Mg", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qq7cWasrcYX6v9wSe8BbwsK88EUuo9XbofMN3Dz4XTCpLSAstmJB", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqjtV6m8Mu8839dBiqafXT9XaiNCoB8q9gyvPq8T4DdAoLxriird", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqzx8te6n5yysAyzARiG3wXXCXgEWYKviyUHSgdgertLvPkBFajx", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmptdQhJim8izufb9XSGDUC3E3vcPuYFPJrntVHDx18qgFKQtTPL", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpQnA1TfZpN8asALUVQPMbD1dM6uhrzKqd67i2LU32zDxNiQvfF9", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qp2NnKknYPpJPMpSURRptBAZeHqUmzio7hCwUVzW9RWMGiHYGUJD", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qidaHeADq1oxsZCoExtD7MowdWgKSQQZhMBDb6iT5SgQtbTqjs8t", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiVtpWSugcPsxvCnsNtQW4jAK7vCKZXiiaiVWwzvqE8dP5rW52vf", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnAM819843DypC5z6Cbh4Tv8sYkdfW5BXyLn5WkR42xRdNFbEjcp", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmRzPC9MUen3trmFCCfvWpGL8oLpXGkF2vWYRjcbYKfwz5qUi7cZ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qirpScMwvNCzGDypJ2YnJBuHTuzEnztbyiWT1Cx4f7zBjFcwpLEi", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qp6pybR5B6UZD4idiwEs12CwEYnMCmZkHcAeZfw4fCpXZruDk7iw", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjqDPkdtpwGwuHnD1w1VP3tDBy5kV3dmeCxKEnChuWs5moJKxYvu", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpnKrTthT3qxu6USHS2Ec675RbvFj59ynJmpbMFfr5h8itjLgA4Z", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrojnevYLxoor7y7LVYjrRyJNXRYeCCNFSNRYCFFAd7H3yvvc19p", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkqQy3HSczSg8tXCT4SVaUVZeotx6WJaQrAei9bPCz7tumqJxfCC", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnXBX4smzFFAB7SGr3tLFkWGTh2ZTRhREbNKoeTu2z7TrAwVthpR", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkFMuJvGqWKyk1BCF4AnhtxtLPX1LtC2nVrufpVVHHViWB53XuJg", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnzyz8NQVanbP5R268RFkuvZkh86ocGWLdMor1Y5r89go4eCG54C", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoa8vhyvJdkhU4ZPrxMd5hhc4UZdrSK1Rqx6AXhYtoK1AhbTyNm5", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkQiKGBy8Zoiso3JYkwmsC2UcHSrmZA8nR7xA9T39dkyU8ZHiU59", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjAKoofcWRsnGX8jDB2NEmAM6Hz5VCNHVqES7JgkNLHFVX2uchDw", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr1pkWvc8UsPATUVjE2Rx7f9kBZQrnErF9bCCeR493UU5DAacJzY", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkVkZEWk55LMJRiJsXWUz44LceRNC5xvsaSx9ALhFMR8iYJjivEp", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qigB3kN6MEas9X2T4QS1R1k26znnSrcPvHENGEQyckf1iBaqy9Su", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkhE1jrqimNdR1Fo2qBNBcfqEjhno94mWjUhJ6xTttWD7ejtBxSF", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qohfvgDctM3QWUSbgyXbvVqDHHwpZUGdVA7s1GRQZs7TCLBddY3b", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qirzzpW5tUmxyUw2AjRg7GgtQDGE5PpCNkRLnbNLjHqgbm5QvWXR", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqzdbojkar6R5AnFbypQfrpaVcAqjtHcwYyUFyUUrkmQKAJ6FpgG", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmomUrD6zGF31FfQbSf3wwurzBsASnupUjbj5emUo3SEZ66FfmXz", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqtWRhEaTrHAScV8wGQyRJHW8mpzJBEZg4zrrmnicYB2PsJeh4vL", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnDJpRMbZJhYXuCah2fNvmRqNBkTizQK23pqeyQWNRtab1rG9P3t", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmSZmaeB7VorH7TsYpFScFvdGqnLc8Xv1wefAHu2KUgE4AyrhmjT", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qk31zKL8w18425sJtqHrSCcZ6rQW6srxjF7Hc2HuA5DuiCHzrFrv", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmnkGy1SnyoV41jybu8aFAFDyqFYbkT4pui6Yt2wgTWnkj58UFRq", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjuu1K2KHvSXJWugMkW7ZUdp4dvzg49aUMQbYUnpYjGKZEK4K7w2", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnGRL3vMKBoMiksHMW3orNRYx859SouWao7aPg522ts5joCGD8pf", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkG7V4GFAua8LmaX9nyc6pFBUNRYt3n2DPH1rKGCJSBXV3kkmgPG", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpd67k9EiDg7oxWdQkU2CTmUmgssR68mVm3a3GKMjMMKu5NRv8kX", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkG21B3rVkyBJv1GMsbnWz1CNVzPPZh2DwdwtGCjhAAM8PDqRzdz", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnFWjHfHZGYu6nRcH8MKsEtCerQQYMxgaePJkwuYStr5TRzzPdDc", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoFz7a7FuwZYUZGZxXJLeExKZPapBieq8Ae3MiQUPQriji168gmE", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qko8xbHXFQaBt7K2kWZ6HuEQhxrvxqimgxw96AYwoYpW6PjfMqBU", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qooaBxuPVcTFexwp8kKgJtX4nfNWkVbvmKZAqR5JdFA7HDTBreUv", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoGWQk6iKJiWZD9QrEqSPhDvBqTc6Sc9F49bdXnvBR8P9mVhZWcY", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpPeNtARu9RhPfrCMihg52DR6jZLmJ9f3CD5tdjSTqG8GX24Nupt", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qo5LZLdNHnsA114pLT6vGhkHwWS5gwGdD1eEBdR4Kwr8SjHQE4pv", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoQX5ni2ctTV4GgnqTSMUKm4cjqXufK9wcnbzNCCjSLR6LEXALLr", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqHp76J6a8pQp9dVhZYGpT4dwocqkAEh1YpE5RJyHvz4ZBWHPZoJ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjHSdTUqd4TjcdQYERLfx8MjWyE8dEa4da8iKK19cUzvrbU6Ry6b", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmVXTDo2bjJ1ysHPJaq5N7QsgVAnbXHQ2gUaaL1Wx1VogreTSFF9", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjjuTwEFG5FRtg4EnAfnoX4bk62MNxsaWEYpmq7QrsyGT4cdKA2F", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr87FRZNjy1LpFCnYVF6SJsEtD8PoRSU1ogZjL5Yfxq4HenYDpo9", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmVVSebw4atdDfGxpQsQtFWuvMqmLefQ6Y9tzuugQ6yafpnuiaBQ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqYtcarkuhhckAiNX3UGMJmCicDGYcqSKN16G6SwuyRfgi634YeM", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpqSNyrKcDMwRq9Hyq6osL4KL9G61m94GMhFTzP8LRu32BuWuNjy", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqNmc618SRPfH55a8xgPEmgqaucqRu5hqBJb2vB13q55EMfbW1TE", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qp9gq7xyhLriV5Uk6iDLeta8UynvG5n79XNTF9AcFX6eb53cMXcw", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjTLrBy2VL7aErgdcN8gfwdXB1mrSYbiFBB377o8S9ArdHL1B8Ko", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qofr88vyRj3S5Hj3wBj5GJueAf58KrEFnsDuHeWtU1khFamsD59o", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnMbdXuSRtb1aaQsXNM7tjcn3YFMXD3ZkZSyGUgRDcNdgXbci9pM", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr4ZyzfG1brg1pzMGthJ8zJkEcuGg4jtJ8BYmpsdzQh1TAP3Nzkp", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkFne1W3m65MUfPyBqPPrwfsuDmTn8xTZckeN56yamjUQ8VryPLV", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qicMYfC7CudxVQYR5wp1pYWbvQSbHUiFVKz3MDver4YXCgBd2Ytv", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmD5BeXHfBgBCxyfg86Hk7rsEmE7iNgFXrsGZMYnMv1SpWTbsT22", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpV8njbAqWXoGg8Y8BQYVp6kCqczD1c9kRYie5jiCmH5zpZphQft", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qj4tL55ih62u68WxBjBWEsP9aVKaDn3an8myHsVjoBv5TbtE2fWX", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmjEDr6t7m8TCTbYR16BUkrekZ5ZSwKKxdZK8XWnh2pBrTxJKfzm", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoAjo3t9C8NZNhjuVCkJGcvk4jwaFXd8YPZt48Xdp5E2haPTgM1p", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpK6gb5oefDyz34kXqbWmHuJumFp9wMgaM7Xx26G6Sp1quVjCefb", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qizCSsqJ3esMXyHHZjjfTZLG1EANbqMAsRnzr344haGyaFQqapjL", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrNHoBBVKJtoaL7XjKcuFzMozxWrXwBxLeNbMRey7PoVrVh7hU9y", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qm4kMcPzDLjqgsDGGpKmYhU3spUtULqgTbJL9o1rLws4YBWDSt3t", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiZzfgxDSdLEMcdst81Uc6JeXYj291Vy81vHsCK9We9w4JSFdzEc", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qokjvH22HBuKN8MURVUG6a9Hwomx3QD3kbkd8aJJzgjByEN4niaA", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqSVLKQ515AvojFAzuKi9y9cJogtrR7QSp5t3PrXB1dKgUdRZUSU", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpF1NfozY1UKqp39MggQ8QfcpTbHpnppYbm8LNSTEwsXT1hzJuTG", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjRDopuMzpUtH5Z8ZwHNqfqzWEYFiAB7VQWDYzxEA5FFdMy7oZdJ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmcdfKPjfZByjtxgoLyS6UrG1zKtJsASG7esYkJA7ML53bk7juet", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qns95WvmY2rP5LBH9e179dQk7MMxjMcXTjRTFaMNdZbTKdQP5V5v", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr3wPSUDiqSCwY7NXfEbHTR62Mw5Q7GLxSofg3qDia5kA1PR5CiU", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qk3PLBUZvMTK8MwjGGobnNfZacoSqtjqVoEUTufivSck2KtsvjLH", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjLrVgEMXBJhMUSEevgrbTB8Lz25KeGDRWUpcVFVMeZniLpks4KW", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qik1UV4kgoU2WJvCrtaHayxHobJswrcccc3SHQrWdrPbTUUzAZUf", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjtdEi28Dd6wkk71jA3CFzAiLgMNKyWfNbEVTm1jk3Z5oPB7c9oT", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkAiM3UXZxTvqYH6Si8mkuFnYdhJykJ4tWT5JMoGp9BgeuKFHwf3", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjzgRPUcT76UkY7dUX3wmTbsWpZuUemEyKc8PUQ6V3T6Af5PJWrk", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qooJ2J98CeGksHbFt3wuESpwPJAVa15FFPx6AHPa11i79zxoV194", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qo5act8BmMPee5kfs1SMghWyrvGyGptvsKdi83zUZkFn8SqvEB8b", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpycg9kkEXRncLiUQvQjp1J7coz4fFEQPwZP6kN5gE7oCTGWppsH", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qq1BDotf7aG5MXafs4odup3YvxhCbcYf3Q2QdXL6WP46RYMibbGD", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrhFVNDhHCLxSp6Hx3PAVtrBgfFXaUBD1158NNueZ1diB194YsUX", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkWtk6RdpyJ5VtBqFh9anLzmF5gkNSegaoCVpi8gEFsrqSUtRJNh", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qj75HfiotXrokssTgijGzQDz1sBAv5q3STpLBj7nq6FFsmAfUguR", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qk324EpWWkGXPCr3jBo61cL65Mej16a1Y3X2xQ7fS6zhxc7Stxh9", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpGjUPr2vsRqmufCJgJxtUNNUa8PHZFQGggHRRN6Vru1Uqv5UxUH", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qphShN2cZvDHEjn2ayHf6KGA7HcuqGBiEr9AQMfyZqCrNFZERcgJ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr9eE1LCCp5bQVTmUMFPbSfuiSD2tjAu6C9fzwBF6u3dsQLvCu4Z", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmZJKGT19zpaPhVC7wU5uUVxMjiLVnpxf2UNCS4jrofBrdL3B4bY", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqMHW6Wk6zAfCGfn94VetD4snsspv8VHy8Us5DLGAeaabL8KKQvz", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiig8DkefQH2c9oNPfoDxHYLhqCQfcsC3j1EMCcU3wk8qc4bYe3N", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkRPuwVLcc7Nm4qTZ7rwaawRy6dMHHg81f1dcZzzmqyjZjoKyEHC", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpWbZd4sXMszQR2rAZi76fZcyYiEQV9u2X8P4QANahXfZt7PNR5h", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqCdSFJPJia9jFvrMFUcP9KGFJXxfX2Xk7H8rYJtbr6UpqzLSy3T", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnYkwyNeYpP8j2RuQxJT299NEm5VeacCgNQYYgSaHnatUYhq71RU", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnDFuD3mx43D9C6rnLg81LQKSTx2UjTLvyGZaTSicM3Lk1WkK7ek", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnSaxunQGaEMGtWhj3ea43PZ3dJadnwBNpYKZMf3HJdUX4sBtzVP", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiXWkJtRQiHBVhW9vVSqa3GeQ2B7UYvqNiCgn3gXKEviD3mvSMNz", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmSq7jgfGxQGHjtj3nTgPA1HeQpg7cY5xVx5XhhFfWaPJUN3KtpR", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnpyxTtb64AS37RYpWq87k7ZWVdji7caH8r7kFDLa54wspffjKRy", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrtj4wrMTfnXbT75uFYTcAYjeJ2rgdxZTeaixAyvew1G7q2gPgxt", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkaBwV5pRXGHGbnUwHwCBBASq6K3zD7r9gr9v8PVpg58f8KtiZwN", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoyCuMn6AsAUexB4x1qW8c3fHQCdu9WPYDfCDgNNbstXHWyPkh9K", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qn7EKFQGZBmJAkbCkhTKRxj6ZgK49RHDuaGefFic8nWtUwdsw72o", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmUGyWaPpgWNoFGw7uvSZgd8rxmFhpnAfjuAnSxjUvssmPGEPGMd", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpJ3cjQMnRyGWXVBdYNNtAg3RijttRsnusGAq23Vr9daQKDNxaFQ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkfDtn5eHzyrAYjbqrjYt23g7f1J3bv7EZ6JWhFprX89m7S2Au9G", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qj3uiq4fr9eSd1FkNPaL9GxwVjXt9vgUTcwXyMAeVa57RVZfdEMM", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqQ4zqChz2RrJqKgtP8VkoieumM6Z6gxUe2mYkCwx3yHioPhV1mz", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkV7ETEK2DaU5KGZ5bp7zEsettr6dMcEbMLmmXYwabt6Zwkfxi7R", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qixgbGxx8C7eyPpExn42T93SrKVF2XmDDRt9oqbjqSfQhdhAmHax", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnPfqE6nwVDVKiN6etAtb7vw7njeLEcsGStdk5QRbjAVWzSYzGmQ", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qq5jxT6YDSHJaLpzXixgNhfvGEiD1xq2SEXPjsVQmk4dLfBLvWwu", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qidmKT7vxggbpnTzzmp8FjCMPqcbeXSajiEzAZP5Qz3oemQbrqCc", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrfym3U2n1PiuJA2dpgNGMqbpbBe6X7vi8ZV6ddZTNaSo7eNUcKV", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qno6WoCYksAE3PS55nVnzfaYV2gYK9uvALo5UtvGxoeAzGmNUsxq", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qockACheEtPV8G7uvjZUsobf7Mstn8NSkEcsLsMksWAhZYGnu4gz", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmytovEGsa98MCEFF7Nf99cCL8XXtteJcNGZCkvBtA96dJ3xoP6U", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr4kPBxDvoHSjwnzPwua7Vo4HiCESrdQP1qDiUBdjPLv2FK2yDUG", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkAAgws1g3VcQ6piqp5AdwcC6Z7wTwsKDmwL7T7bfTqmhxGaV7d1", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoayAXwDCXvxyGfrPEDZfx5Zjs2pxQXsKhLDbwvLuNuSgch21BUz", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnM2VNs71J1DHjsAsEkxx8baCfGCNY6G5wSoMw2LhYtDPk3ZKKes", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjNRgrMvPtR8ooGjiZNk9eCiYnMBVq78vvPJTwQsksMbKfnZB2Fn", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjh3hxtAn169G3ZzsywPm7fsmcCFix2DVvW2qptioToCBv3tGorp", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkE97xXKge21DD8JWdK2qZ192ymjiXCr4Z7GWrYDuJMjQEfskYrk", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqGJM9XdWqu7L4HYJaGSvA1EWWCzUcRXdgYk4unn8LQkm2z6bRw7", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrpYCk1xf3RjRWWQfeWBZ7D7Jd4YoVt3UGddr3XoqJr8ow35Jhcz", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qr7WvM5nfhLaDwzeDmYG4J9VG9YFegFfdB5wfD5G2tsCAzLeCvtL", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qjmJU9A5iQ8pYFDT2vkE7wtPExf8MzDLdbxvXGFoomKcgfqVmLCy", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiswk7iztQb1DGbv7xE3kF2QwujToeFbrzmk6fEiCTNMKenr24eA", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qj1fzbDGrbFifANqZKWEuW8XuyDBHqb7LxhS6tGNzt1nwzWQp6f1", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoEGP1RPHpkdX82i7dkXZ4fKkVaSguizb9oEescTnYD8FkNn3rUc", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnpAP9UmzDrfEghRNaitdJWy5zk6nfUzFTwh3teYDvxaX2RfkBQj", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmDfrW1DrfHeqTqK2n8U2LUbdtZMjiiEed5ARv8FtpbVFvPEYss1", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qru2AYJ4nrL8dYvKwebP9ysT9J5wSFQGWpiGkbwUptzK5fJLcBhu", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qoQh1pzwEwRgNvRFP9RgG8vDnTK8rWVWRCby6iAe7X15ciNGbAxw", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qqGTicFpMjTE1qFui22K6Tjs8Ceu1bRRxuyvQVrCZoiG3JauZCHu", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrJogC83S9wnK4nnJzR8YEm1QUafzAcERZmqNfSx6uRLCZX1fUY2", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qnM1WyCKUkpWJmCmuqWGZk9zFwPsN7XAxTzWAZY8GyTE3ekf2SL6", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qobuHqd5sBzHVoudsgmX6yAdNUiJkN2jbhPDrV7qwE67kdDNPpyU", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmSHqDxoPdZ3q7f8gcZSi81RifsJyk9TApp8ufqyyoeFzmxixY2i", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qovHadNDMoAy6JbWTNj2AKDE2ELorbqC91U6eebU2Lgg27sQTrWs", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpszG3uwuTFK5vMSkhW3cP8tULiCDqbPTcWYQJa8hrFMFyoUUazR", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qrmrA4nxgGzELGBJBcBbfB7exQcHzYDf7cm9rtBRmtz4szEWCfN2", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qry32MCzqVsRu53bduAtHQSszsSpVKxiAEUoK58vkRC2vX5DawSA", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qn6QMLE86EvbeAXbt8zAvCLZ6mu8a7hGc4K2wb8v4k7nYS6tCcSA", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qp92pfoQhPtdstEay4EfXhzkJDXXvrPLYhfSH3VeiPKEdo4vayZH", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmM3MiUMZa96eeCNU9gpAqHZ33vVru5MV1WjeSEjpmWAfn3JNQQW", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkgskVR368mdjcnAp5gzYKachG8tfddsSWLWaRauyrbErSPSjPhm", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qkWHMCLjR1mCAAnBKZp6t8dVW6KuQKv3Wioi9s1NEiAsxLB2ypPN", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qm8HCbCU3Mq7SAH3dcunJ511QAAXLTnVdR6UwxjiV1o6Duon2yTY", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qmMPHfrYpTZNT6sbYCmgrArw3xESyzRdecJoNg8TK5YZbP2QShyn", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qj7zjoknT8ERcVorRRRx9guBDi79KXmY9sDW6wvvvKHhTMBG5EJR", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qiXCNh2qQkPTfE2jrodRoUcp8fPZUDGRTHzSpwtMuNBEZgRH6ije", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qieaYLyiQzjU6f4Kq9n4maty4vHqsTvoHU7Js39kQh9VFivTdNdB", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qngqQcx8eaayiA1pZebqtVQftr8q2JCzDSuJv7AbFVLfnDDNB8ud", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjodB4NPpRtqvQVhsdqJpSur3KL5iZti4FdbWwpXJf12WNL7NK8V", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpWYfPZUXHEj8tJdPCzSmTSrwczFjq6JsP4Pc3f1HYja7DkAiGkn", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqqmPebDwXznveHXjp44uuYVwEaorp1vghfFu6Z3N2LAFEhqLg8f", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjhtShB3WfeBgdx7TJ76T5tgiSLnW3vTHfwwEJt9iMxy5XdBBcbQ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpdR1Ktv2gJHdrFqx2eQrhpntDJxpTRQsrBRgUt9iTwDXhVWFHhW", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqeZHxpWmRLTcrFRT5A9wpYTwKUagYscWshKE53NogZffuzQi4b8", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkRHvUs3kRbvQXJM9eLn1TqznY9j5KDJkuZZuaeYkpfn5mfe3aia", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoua2VF9BMAep3FfRTSaKSsgVj9QB98Jm1xCDLg16FuSWwTXQuui", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnYReFGHsAuXUCgqD7MK1CogbiVxsyzqq51NctktdLBtDZCzKGyA", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpdEzjRhQ8epD9C8JVoPZnHVRyc7n365FzMC3qBDgcBEVgcRnmx2", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qooxjZmLP7Q1S8VJJgbCJcW6CFiZ25K8wydtSxGbvA7Pmo1kMPpY", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiwXa9UW4QFTSxYwrYydrNfg6krBUksgU6keno9eApdRL7MG9S1Y", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmjA9qkik3mPaLHrx9pK7nEAf1xAWURvzsDsdxeo6MkSRvwJmUYM", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnvZNeWhAu8jzVsA3qjdviuQYS4PVu8aqGs6SS8v5XBQajjw7crG", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnC8V6mwmXLWEZQP2bE8ULBHBmo4WSgoc9KnMt6vAAzezBBrMAfP", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjtnvkqe2Zpg5UuCA4hb2Jct4zPWbzE9CCWV7Ee6nbwzLECPMZKf", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkydqfP4kZwZmFZhCx1jpDkycA6jQvjWvf7oTVmv7ckeH9AD7Vzq", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrQbk1pmZP57ubnXPsJ6uBrbP5LNkmPB4cr3D24Ty2KGmtPyVifb", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qipUXduMBg6LGJG6FzzpK8BNiS3udH7h51xJ5qgu5NisnrHT3YTx", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qocYUSRa3UJ5hWkC1K2C4HqbywhHULUrFhTWxZiHn7qUuJxRRsvd", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qohsmTXMTPJBpEYYu7kjfXv6xVrpXsQYX9YK56S1TVsYgJ23Y7aP", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjoMGyPVECCpqVigkeNLJ77K9WceoDZpqBKsV43533ekS8dKopzz", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qq1YGmWTbxmCXJNV9tXMKCLGpUvJmtYP9mxoapF5RbU7NzirJTD8", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpwBhMkr4jy3rmgmyKV3LsqQF1yxFvvyjCR21TzV4bV2sP5veq4r", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmHKJVUHm237xyTNxGFGyE4yjk66TwyEWUTzHsmXHnFvKcGsGPTg", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qn8iJAVVy3mYPsztzCN68qb9VbD9V69XiWBBBXtmnhUajLab2yib", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnJgaUKx6UFMJ9HGPt6BNMh6tvsM9weVZmn9784JjeTwQxNEH28o", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qq13f2cC1a6psJ6XbqUtuA5iwaYnhmUErBG7Tz7vBxX8eMfpyV5f", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkngoTm31oNfK2LvGnZUBGLpvnCE1e3bp9RdbJaTX5gVmWuE32mC", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnDZr9rqB6CPqX3QAr8w2g4KBkcU13jMroggYYWCrK1ZC9tgH2cN", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qm7PbVsFw2kpWbxrt8tif94U5tJRNLnAuhdutNxaggyKK2xpjfu6", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqe419qzw3obc6T3QhLJctr76pYRCrn7GmBFGwqqEwToG854NzGT", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkvJXQPrGe86qoYDV7aP7ysYTmVZkpHJfwoNhUdsX8Q1mbWy7bTW", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpA7y2EkRLzpZvtw7p6B7tVzhAuSo4HbBvx7CbDSSwDcdMuSXugv", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qm34QubEisYnjRkiVDACBYWrijEfP46ZEUZ5afUTbUEw6ELz6eE6", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnRrJu8mQakjJhqDKjmvZm6YMK5JfaNUu1ckDyd2n3RbQPj5f2gz", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqavg7Pfz3iYntujBa78uxksku1igBHpnHuxqaijmEoRfFWsy6Ti", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmbiq89bZeN1VYct9WjZoLUCb3oAkedMwevRUsR2NGeJN3dWaDZV", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnJAHxda6GJaeQhcaHeH1ncyvT9oQgF59Q7Mm5DMLgbJfB7EXkzN", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmWxhYRxAyiP6MxUEVBQGQKiK8aV9ZoraKBHnU5JXS4pSYyf1Sea", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiXgtv4ikTfaGtTxN4gYv7uCpZhj4s8kcHjAfY1XXSRi2Wp761Mh", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkPvBDKPqBfq4iGcZZ8YcmetBWY1JXEU1r3q5yS4vjVDJb9EhMcc", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrJYJFeicaaeBwQkqUBe8axZAzMze9vUWgDexagFNts47pbpNDNL", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkHGTheDX4bgPhityCLsBJwj4n1VpCgQrr5zCHpCiYu7HMaVMV3q", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpVduH9DaRJUHFYuaje61terjQp37VLQEmwvVfUZjRCuDh46PEgQ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrM9ahZJZBLtz2xL8r1quZRWcUSdpsSjd9zeC3655Bt83bWSM6ck", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiVij7trH76Wb9dwmBnDo8fayhRp4xiLdek2gQpgHdhqERvjvhcy", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qs19PHmEVoQ8ZTyouokmE7MoCCfqNiCKWHqJVMcGNFMTmy53X92o", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qn1c2rc7xcthmzBiv3qLbmhCBqiu5zr7EStGo8nyG8WNQDsqMkkz", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qq4QDXtWay2EYopSgW5cu5Y9ZV5xBu48FLtFN9MmFhygjEmKmKPt", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qipdtpECozaRatUfrDeR1vbE57trxjfZ4nK8g1EABqdbfCSRttJU", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmJDM881LTUiNCPcpRAtZzMDQes7cX56UahBKg2JtG5atpVUy1mK", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qj5h8ugBQhoHnaRLycvdeJL2JE715kcGamiSafb5HgRirTyLumR1", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qni9hhF6YiH5QzSkVxjaztZnm4JxiZU5UbKEgx7bqLDsQ1ftc1gF", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpX9jh83b3H8uomiAbLLjuUuyqzNAXtqHBaJk6DtfUakWSgrs8hW", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qreFM99mkdSjJwSnh9N1ts7m1KhxL3Bgc799jK3MNB89qsBuzspx", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpUqTa5SbeVQfgyRAtzJhTEp8iWP95MFJ398TmdEsRFJ7orERhKv", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnM6DQGuKuiyZuhT8oTRq6657ZYkyZibai8nQ8todFbDYt3zRPUR", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qktFAzs8Jxm6KGAW2VHZ6xGNxqrLqoqxX4EzmZPPQppBoBryP1Qn", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qojoAacVpMz64fhBJWcHTat2V2BK5Ru2mV3KRrFpfjhp1S9PcFgX", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qovX8YzVpLiTfCCUUdCGGVMYsFeEcLnwYHZWWVbjRQgftCMoa9mx", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qn42Tj34MTEFdgMgeXPJq99av5L6yD8WUDhDJUiikfP7WLQ4GnG6", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoXT7N8h92DWUn2bbcE5pmy4prgaRnPTRSLaL664VMpiLhtCTkJj", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjE6sd6vkYJH7rLhwW7faMSAk2JoWiwRMLwmYZchi7fy75ndP6rW", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoZUa8RHLMUbAbYR2TH2wnGCWU4p5hs5vvVr435JG6sTXeLM3pcd", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrJw4c8jJvk7ofegGGcfWUhiB9v8nTkUT43CjQabdcYwxTBqzaAc", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qooNtaEcgJfw2ju7JFbpG6vyEYojR95YACp67FTheF8xgvgDtCun", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrbxt7KKegB1aNr3RrbRCDwRdChhPyLpaJEZ2TWSzui7QBbCCV66", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjHhjUAb2Fw9L6qtmRsVEuamqQHSYZHv6Mu1HafhtvVBgL417RKc", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqhgyFRbqb3ngERNwSijvtAgc1D5XkzxeVLncVgkMU61nXyG52Ki", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqmH4M795uXuTRiwexsA4LQfw4Y5hmxuXeVja5eoDNWS4rh4q2CM", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qp28SpsPbDAQd1L3wThYoYFPzLL35jx21DC7x7MYRw9UYQi6Jew2", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmWwEsZ6L6itqtRcWw8N5pn2HNspKj5goGy2YqvfP4mvAo62QL6C", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoeFsi8Nds3ne4SQjhyB2zvadTAT3AzE5D1wiR9qpoviUSRBKGR4", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqkBezkvSmkkt5fw5CDwDxCiVrtr4WuKfDEodSFviKoHmK7urLt8", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnVtbUFSgGDPku4yVDXzCkFPEbKiJELADM2ZZyKNCSFdRVtseCmK", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqV7unbVMko4XAXntbGchC8yNw7uu3ovndjhJJUnowBB5Gt99mBp", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjxzVtU85PYGpkKLet6sb6b8EEgN8DLZVRsLHHgiS8JV1x6TkVmd", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpgcsne68ZM2wxoua3DiT1awZKfZXokN1WqKCu51QnRQXJyge3Y5", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qj6gZPNUpSom7pNXCaNukELxGZYqDk8ousWDR3w16di3iEehD6dJ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmF4HD38qEkSR6x7F24BQChzhPBbs8BjuZ4bZdpgGHn6v8jnhj7Y", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoC4dP2mzn4gjf5MDTnpNZT9P94g1cEUUaaD1ovaeJehvWVZAkc2", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmFXBcA69KEqoS1ooS6BN8D5UEibbcrSYZgW8WctNyzEjSFTA8k4", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qj8Ucy2nP49Ur4xyzyB293KCLp74b1ZTg6UcJieCyAJsgau6vyKM", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiwEYb2h37XTzPNL11H1JoWuiy9FicLhhWUTgZm1zkAqtapYPrXx", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkNThABD14h3zdrvp8sPa4aRVGYoFy1My7eGrc85p9nE38bXNiqC", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmGJPKZMad8SB5Zm1C5aPMC71vPg6LQDCwrqqFVuuFtz3kG6Dv29", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjbWFgTTyQfTNNkUJE1FcQybGtHKv96zGhYwGZX2SVuHzX621M1b", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qm8gatwt43rrRk2qe25rPxQHqzXB2UXm3SqSBifM6uCSnexKw4Vq", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qk1ih5T8jis3bsczNDQh3zJU68fDFXNmfBawt87Yhv8HB2FA5MKj", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qixCTmWoRGgc16pV7z6L1mfPo5bytYnp7ZmkLvWmddxFHCsYkLf6", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qm2FN48aokmGgHxPwGNkFupfwmRHoRFUJBaF3m91tdPwZemFFygZ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjsFZbupszzYjLtnm1AYfxbB1uh11pfDdw8SYX3MeNPRRZD9w8Q3", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmY42psU97S8422vHkg3QZoAvxJ8aNyZX97cFDhxNPvebCDaAAyy", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoVtLSFGwCquhwBriiPEYoNvJGVEMeYNzDyv6ZCCwsBbZkb8sfvS", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qia7vSVPcZVstwf2fCSHpxun86hoKZCMGvhaDS5dCk4ST6fTzPm4", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrfE7rrezLRuWBu5hSx5xyFzszSW8jHAAhw1fCrE7ym1531YLC7E", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkNtFVgf3yYiBCB5FWUAXYUHvdC6RUcpV3SnntzB4mxfZmGwMef3", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoo5vLZip6hznfjvtbtzocjgp7PtXTaNurLf4vnnyJ5eF9LpeLHf", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjuXBEu6L1aoAsx2YSKFYztK1tGAbY2o9y3nAZZDReaUBPoa3KE7", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiYzMzmHJQCfMmk7BV3wW2dXDc5N51qWigxXekBNtCphRAdsHwNa", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qp7iyERFhLMHiMn8bLMLBXNzqzYLaBenaEq2MthcernobxqR6w3k", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoPPpEhFSWtp1pBnLMctemcehqb3294Cbyqyf324sYQHZHYMjyo4", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoZfMBzmZyMsVDZPdg7oy4aFpMgABVLT8qPkQYz9aVJ9YzdRBU5v", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmwJjqiL9LPf726bjKUKJR9N9xzzZSSFYrbg5qzzFZSwJ86NQeGR", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqMr5fWLKKxQjKonLsBwqAzWiwzReL4MgUXXqkfsk85zu7tuX5KQ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqVUr2DSFfxipsAx5jKKPBzHQe5n2obH9qtPebFu1Tvchz1658RT", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qj1qF6xWKdzTsRYPBi1HkgmJXZ9LpYAfwqSnGAAegJEdZK6MBP95", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoCpiEVqKRPXuCW2nX6NLMRnDMGAx8XdDPFPMSagxnoQt7ykzxpb", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiojoh8wKY2adL4hkA5C5EzNLcCwwd7p7Yeus8xm2SE1noMJUSnn", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnTZb6pNCe7TadioxXKSUjYcyfQEWhjxAQNBRzBpjvgCZas7ZMaw", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjnugso8rghSL3MZMVyVnyYAmuqDVfg8bJvFPH3cVhDSGgsP1CXu", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmvAhugkwWiiqXxgMGicuMMvx7DCEmXhP9xAavP1d8msRJKhQSwj", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qq5xprRtggM8Zp5vWCZQkS71Z4tsX22mMiQix2zzYx6gzfzFjA22", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjPQWW7xQeuSxqRLLw7KhJdCi4oJTkGsmQRs4Rthyv48rnWhbxJq", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqBA8WvSRTeZQ6eWWv12fArbDUv9jgdApfucLLqBvgUyhJwa3urG", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmvdRFwC1RpLqQ6C7rLW5rmSVRGtKNVmHwTzt27pazja3fB8XkFq", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmQiWReZYJdKDNgLgK1FKaPK7gX8AV1RTaQDfao6L5ZrLEnv28nc", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqpbFKXBCcRiiiLp9iEKfTK8UmBU2Pdv5ioRGEHXmaYEfi1XEDjC", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnTzNhn6FnB5GbBv97EetrDUaXohYLmWJxDiT2LpiJsL8i3TuAWd", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoHifwrdNwL1Xs1FPskhBQvJFdi11MSjfRHSveQ5DuMBNWFSufsf", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpRGnearh43ZLhZa3ZW5M5vAJuPAqPFidWTfwC1PT7XnxqEobwkc", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qp5XwxJPtBDxEqxccVvbintBL5vDAF33y5ADgqshpsgb9yAjBhnc", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrQYxvK2d3uEEsJwbMo6F53rB1SQwsNQro2hxauUewiYHQSjBFPe", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqyN3idzD2j5bBFh6nGbXjk7KNMmfxhWKshLvBF2tVbZoKudhc82", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqsKsSbArDkDo7njpcXWNgTtci3fQw9cRxHqDLMGVgCR34YUEkdV", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qp98p92t4AJpTsCeBoh9d44ApYfpBZFvDVgerdqWZPhy1HM832Ny", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkXBgwC23kSwCL6nyhN75krfiMzWr18WpdoooGVuBN2V4jjXKLPu", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qq5fMbjeazfKJgBB8HSdiyRHCDfETDj9C6LMic1CC3TaCkgdMVs7", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjWFPkQbVUqB9kqgr9BMwfSJ1wpkTpjBjxPZN3EnXyvesQNhqRdz", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoCU3dP5mxWfxTarPKgZQZzVvbKJAjuKeXLcsQfA7nNsM9xrpFVs", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpjuVzoAjqG6qVSWXAZg9TtAiAPM3HeuovQgPtB7Cs7S4dg8UDXw", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmw3oDLrTqUFHMnXrL2buBMW3qwjGnNkTcEF8ibPKE4T91UpE3KB", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoCvHCbSeM8Wqk6wnrzV82LdojHsYY8qyoho7hBydUDALmTY24W3", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnTpy7X7fmGL9HJ74ia8LEHZgbep48ZTS7cP3ggv78G8BfXNn9NZ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiuX8rf4fBvRhGRhuJ6d9in5NxwqYod9p8SWCf5RKLZ6fzJMwBzM", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkUrHaFXqiuof5VPzQEfHfvLHtrRKck5xgx9VH15XeTqhs7cism7", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qq26vF5B6S5VvBFuTbDbBZzcqcdoiTmxwttFfjQn9JYAfy2XEY6i", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiqbNFKpC98V1s1AntVPKfyQ7Bg3BX63XUwSeeZiwTneLLWLno9N", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmw1gsRA78ukTMwcC2kKDDxsYqmT1KrW8CajL3s5dzaycBnweMFR", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrWHagumR34LjBhKSKCtLCg4TxrDsaAmBy8NtdtFXFrzDPFYTP1r", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qigennYUuap1vXbpxm2zAqGu7H2gKAFz2CYvhqULzcyokqabBPkF", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkkRd8z1oVUxad1TwJ8J2g7q36eaopgBN6dV67LGX8cPwNj5AhmE", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qieRDGbVzcHcJ6JwANdU5DeF2gBPTicEahDhcyxHAV26VK7GZgks", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjvX76mb83Mu5peVxT9ZykWXyYUzfBvubrKnjDDyTb69nVeSKgSD", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnakEbuqVLLCvsikUBgpXScnCMu6RW6mRuTG1cj87a6nfRQJSbdL", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqbcRpjvGrE55zhfdEdZm7U4UXqvVkidGUruGoNJGFU3vknPWo9L", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmgnwtyitxxAgDXzs6UfRBobxFFqMU9bMkZ5zi1UZ3Xzp257qYjC", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qj45BbbZ3rkFtMYw7bPE21n1wC6K6aZRiNALLQfZf7r4koW9PtNL", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoVgWdAsmHKxyMivaJsqPeQbEeQdpXfctMVXPzogXvZp7emQEScN", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkw5ZuGnoAMRN5zYDRWcr29PUharfrY4gArt3uxicgNdKTiNuAkT", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpuSJtfgpXVdtpNvZbqr97msXz69u4e8JsVuwN9KtrMMCGDs2jFc", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqGzxajzccxCXtPxjmkvBcjW4ev1EwyxiaarC6g8JX63oNuzJAsm", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qj6Wpy7Cw3M1CD42ddi18VjveBHrsCJtksJN8DpYML8KALW54CPm", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpeqqiJEM773h1JJCa4epD6TE3bSNRfMgHE2FohteSiENrtxmuJA", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qj12xsydyCMZnWpFhUPGUeK7PW7q4JvGpngrFtKEtY2AC56wNmy3", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjAtygjF5rrDo9hpB6VQ8VFaaedhqUArQdqf3Zns7mN1tb6rUGMw", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkN4Bh7eRKUquy8CUrcTyKD7DNMjjD4LvnH7SaempwwJPHDVwJns", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qq9JsXo3FSYLJa5zofVtNGLoDC74WV6t8PchEvvnFrLp4rKqYoSN", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qp6yF32kfN4YVWbT12NCpQf55xZZkJnjT5w9pPVAieq5QRsaWPqW", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmvfJb4avDx5bVsVSsSLDAcxzAoeU4NBwHj5HRS5nWYfxxJGAjhp", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjCn4qCETeCcyuixNVCBA46e4d3tYBdukG9yfCVu3ecuaBdCHbyn", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmbX5Wbvk4XKeohtng43Lsw6mkTZarEnguzKssDZ3pW69ov2y2vv", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoTNLoe2WQ4BFNw4pmwqAaFdouqsm5iWGqHKFuC7tnuhpRTtD4TV", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmef95VTYu13UFCpRveSHkthV4iziBEb71T4gWjh54cF6PsyM8ZT", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpuNaT3cryW55xA1c83fZiC6g25vMYnCM5p4GLVC7CqsxCdo1XjQ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkNVZjQR2ZBCdRnxK1VX3ufPkucBGup6pa677qSU5YMqrXbhHZe9", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjbSqPw5JT81oaHxQKLwRgf3t5bhk5Xv7B3Hico36KBunmP7GMjw", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qp4qydMqLgRKhPhtCJZtQDCCQXaVkgc4Xn27jFVWGky68sczi7hT", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoL1NALGGaStGC6PEMmcwmvAuxiVn3WckDSw4DDpKB9e3jZNondo", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrGCSepQdWoKhxceuya7RibgjpHbtLfgrhCUquyB8qYfhULytW25", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qs1CbgGq3xSA8QE2dSV2xN8fFNjNv3yyE4t9qH5o7Hf8hU5XVs3C", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjhMawuXtkdStQQcK9Ypxchjt2U6psPyX3AC2hXdjUgYrFfm94LZ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qivYDPhTQ86kfuZsjuJRA5Uz9hU3tyw3G25UVqVxtXMch4m7uabH", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqEr8aEeYYLUSemSVs3ETbU9v3MtnZgW6Mi1NAJcM9XG7kyFawEm", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkcMzxozZ1wTBAh1oGa35ZjzTyHRg9fKRuc583TNjFz5CRcFuxS4", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmNt2w3U38MyFQtZhaXCcmcTmhTWm8uPDFjUMBj5o5w5YpoA2SsJ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjJb1KjDchz2ZB7GndCfRx9sBEMqq69q9HU3L8z5TduQqJV6WvX7", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qriXdEJm1ZJoAf9R91E3m6GZLnYECUAUHYPtuCued1jDf6ttgTJf", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjfiTnAEbDp3jjLAHajGwQA7AcyWrg9Fex5pFqb69vtiBoNpP7Mu", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrhSWYui3UDTSAN5rWiiHLjm1jpjbof9LkjdBALQPpodSCYXzYUb", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qo7bVXzZRVxWjBBKrmMRbkdXjaoBc2Bx7EmouXtSys7aogvPV1US", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqngnYHRUZP3DetWGxPQrFX1JQspZ8U92GE9HTwDxG39A2rZBjyX", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkUEUcbfmXChjZ3DdA88LbLJXPxNb72t7bH74SJ9cBWv9XydTrtz", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnaXkiRR3oqqrUkoo8JUdR7Jaqrw5JsWuQdVzjoiy5Lzaf2Aq8it", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qofWeLj5tVf1MvCWovhe9QLhqQgNzeSfbhsBjTukJ7Gkob8fEPCS", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qof8yW3j9a3PeWgka7MATeQoVpAKKNpKnXxdzLFquUmf1bWk6LYp", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qo581VfNwuwvuyd9KEhy6QpDKm1CVLp8ZzTkbU5PSWPBPhTCwSNy", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qo6F2hVKToZWfTNTMz5vKp6tBHkZLaHrgQZM7Av2cZaDe8FhwACe", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpcJe8AVAMGM6ekoqQExtzxLo89yaMLHx437As2ueUSEyrxe1G9J", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnSm7g8sGkSvX9iZDUKJeoK75zLZv9GmJWSfoZsV6yRWNrYscyKh", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qo3xdWzLFGFKBv67c8puvm6a7Spquouyt7FGMdHagEXBVexSY1w6", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjKjsTq88YdzwPJKfekCeA3bbT96RN3WCY4QYNSG1MWGKEpn9LCD", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qikFm6cpXTqMJDrb4C5vLTFk4yNfWsePLRxEPcz8ks2Ac5sFApSb", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmVLtmJkpMutK9Cb5FRfQjvsXfV1depjtEjaE2Ei6n6roZ8Pf9dB", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmVK7mmzGBWUR7DzYhUCjxVT9vTcXF3osVf6YXxUGuv3LmKXg4zZ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrh8baSaN58kf7ivi73tKjBXYm3m3NXNYaGzRZVp9uQYg94duHCR", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qreMM9TrD6hxn4GS5n5gGxFZ8rtzj8XjGkQq78tPb5SnJ2e4GsUj", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrA7qeJUeeDabLgGo3vEoH6yc3N2pY34LMtcJMyLQ52TaoiAQHbX", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiaZx9PBFYmUVW4yWMjEcdqbef78s9rhX74CBHyc44n2scDmz9Yu", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrfEaJrLdW6LsCBE6cRWHJJuGJYRMX7ceWZsth6PrhjEPV8Js6rk", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qog1KSzdGjg9Z3H6G2FQzNKtewtsJQtCTHqn1X7tBPxxvZwEK8gF", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpRGS9M6iTrgCp8mptGxgKtfoXSDK9LxfusSRLV8K2wfsu7N4X8k", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoAGURr24tqoJuuL8JoEgCLsnGFRT78Es8HTrfq2PzbXs3DMQGJL", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpMmBLzUuW6Jer8AqzSA8cXmMs2m7xYBBhdM7RoaPqV3uHYfTj7n", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qknof4Z5kmVED46Pxc1oGeqZcHcRQuCKqePWWNULShPjjaW6hkgq", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjRQK4GQBHWzwZvtLo6pURA8AhJ5xUi1VHXEYBLtQKyMEv9TsyUE", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqN9xCPGpM7mU4qumE4yRJYkuy3mZUfvu6xcRZr3P6t4JQazRj9A", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmQqkLpXYAL2Ku5hEbA3su5tptuG5xVMskvjA6F9EMLyhsWcfkLR", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjeQVYAjo7Hm4pwUFxWaJjTcAqpN8bVpHoVbpu2jh4NKp9mr8hGF", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qj1SXhsUEvb9HAcgMKMV4qCQ68pNQq5K94kP8ShKviw2HUnHZs1z", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrMs2C6Pj79RDDqAYgrjsJQxNGyppmnM9saBfChCHd2sbj19HZrn", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmqpYcqbm51XJA7hxW2MxtVMEQhPZHL3Wih4r56iChFktNNMKjVf", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrXvMyNPugfLmSjA4XU8BpNseSEnAu13vCW1fww4MMxoBivQjSN9", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoS12321aEtMXwNMTmg2UT9qH14NT1szgmtqK59j9zzJtHdnqVwX", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkTPBLUfSFYy5vWEKSuqsv8u2xjf2VpsysbU6Zje657qHTCt1FSy", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qikqAWkeE16AMRx5TRD1Rax3XdFiUxD8FYKXL5aA1cdsToVRVdKc", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqGcqs3n7D2yxTTjaKjUadJm4t3jyT5SJqdC2TBGmyXGzff85ory", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoURtQnDm9nXmqxUYwYxNuD5X8uNjLUjXMmQeDZP3Fvzcsi4RBvR", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmrJkJEHroJzZSQzfFwYq7v4V6gnRgaueTwyHaE42Y3m16XjgaWk", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnH4qfsp6eCHTGx3EhBz8j6KwdYe5BHQJKrMoo55dYa1aGVP4gBj", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqk41XxyRU8GqdZRVhTCAZvSdLP1USK9VA11vcpufbjBCVYoVz33", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qom8g7Vgv9zZfMiMLhBEJE9vjhyxBxemB8q9ygtuGSV2q2RqDNBo", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnnNLcZJrKDwTb4cjiD3M8afnRcX8Y27vLRJ6t5X3qfA9nwzetdo", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmvva8VR7FfV3sFsKsCnqJG512adRD3TV6waETtPjmtqRnuXF3Pa", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qirhb3tvr7LPVMTnShbKk5PXr297c1KLpLqcNMXZey8HNL4nG8VU", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkT8V1pcuW7Y2o1GiPdxtjfx6YWgNrKdUGGe7NN1dPiJGdhqDMHx", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qovfPtzgjU8vXsMW6DZBS4bkkBk9f8BbpXjTP86QwqvrUzuCQGEe", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qo2akch4ALgVdidD96RAAqeMLBjW8qWWtKnJPV1qDintL5jqmURk", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnTthU6oG67J7Vgnuyc3tDo7JmPFNetxRQnX7Cj7a11pyLS7mgQh", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qisyPeS4mtpyRB3v76LeHtuixreZqrGcCqPrqmkf7TL1KmY8eHbm", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjehyMRYkwr7PiSL1mLEd5qN8FNJU95eDdKnoEU8WvGU73bUsTXi", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiUwDacJBGnRf1XygjzQh82x6ZFBrSZm3MCruwZxjj4E9fRPf4jU", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qo7dL7Y5d4urTcJC5Un9yjofjuhPDFuoqFH9UCF2EqGSzCE5NzMB", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmijhzqiBjWgNNDR4vTaRyjRRJSD3kVrvaHKTuZe6uuG2yfAdLsP", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkJ2u2VbwqpqBYd1m8h4EAtMmTp1xY2d9wp5D3EsHoR68sKif4HM", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpn9ot5hfC5ZuXjhuQwEpZJYpWYQFKBd6ZFPPeu2psT3EetXfHUc", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qowGf3QWwXwLddQniw9CEXaaePHWhnJXEjtd1sqJW9RcSNTBTcqZ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrx36TQjtESCnXqPHdaNsA674TE5Hd1aV59ZFWedsevCxdqghMLR", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qp43B8ipbyDxht91aLXnDUWAuSBuQ6A8oYRsofD5hu6MokuHWwCB", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkxmAzBjVmRnHWHwsTeCC5KdBEoyGN4eh83XyUJhjAFz9Cp8mCwv", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjnWKW34CVB5VwWvwpeF8uz5uWnmgtdeeH7mGM95zBQTmv1QSP8S", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoAwZ8Zt29zzo6oFjJGn1H7Pn3Xj3wYYH9m1jQdULrArgW5qo6gz", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmyAwtVEDQpQCW5D3JBoxQ77zxwupisZ8oZipVNyYBfFoG1RGPnk", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qp8QeQqs1BCUYzY3Weej11n917WU5jkx3taKd6rDyzDECot3LCU2", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qppMAnCDv4vrwg6BXqgvvK3NjjoEKfA28RdbVQADtJH3HN5kapXY", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqTGW9KCQojTSkfvaUnw2vSrHJ7mZ9fxswGPme7nSjrAA8JcizF6", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpE4K7t3RnSCEW2Kuin9hbAFy9yF2sRv1LX1aSV35wizvQ9joHTD", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjAjgy23R2EbFTSk4p4rfJincDD1oj3GGa5zu87At4UQgP74Pyv9", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjKbinRdrgqHHUY1oDwTRG73H45YvKJpdbDFdeVJbvK9oUxtaMmz", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qo1jpWUhXqdvSpHLXhGqZxNDi5EZfAciQrGpbtiJdLTwj5yxp6fU", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpHPccb2jwCoBsz61p2K5LZoTsHifPhfnGvtWzk6Weg7J3Q9Dydv", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qih1ATpRNh2oNN1HGRHwH8RyNmHeKpDAjAo1fXQda1JnSCrBetXJ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qm7GdiF3imZv827ALPpiC2fKiyeWtsw571i4GyH4etqtFkG7tkgj", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qm1AgKxSWxuBa3zRw3WpUiwsWLDcKVj5sRFSc1FBkUo1cM4WVuwx", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkiymUZxgWg8RsBXTkbJ6vsreA8c1mxjiAEhwdsgC5KrVs6JH3cd", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qigKZLNCbL2uzyzkYyyAJeF9bTBWQt1iMjbrn2gNaVR2UdrSbe69", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qo4nbC82hFBYVVVaJVUxSvvFLfVLoHLHxzBCBjUVNRQ7hBhK6wR3", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjRGvfiyqLDHyURLrUp7ufJJMczAUf329SHzTCNTYa71kg9dSu1N", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrDW9yqErZBPCBzijJJKQ7JDBdqLGixxDbjtECKjN2372W6xNy15", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqhLDC17x4h6qTpNWq2wknzmFWUygqgBpibABz5vieodJZXaAm6r", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoRzFFAMd5C7efniXdjcKMRp5tXyaWoQYDvwhjS87j8YdoNfD7HM", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qo6L8szP1wGcpLVBnDH6NZPwDineBTHKPhPdHAJ1457PhmLV1iHx", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qr7S7VPyiLAp6p1Wt8yAcKaM9T37wqED3WjrjcR7Dh1poBUSE1Ka", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkdTzJzFJ3bvnNeJpePaQu6SWRgNZ7N8M4q5rvJCNzZnCf191Ewn", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqfHJsF6bubKpwVZvo2XcmM8Pbugi2ToWJwApNs7MxnsiBpUjUL1", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmT5qwfcbYoxuGNUwM79PDCZok4h9RwES1JQj13VSN7SdLqjzEPX", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qn8cRuYGWeJme5WMbAB1KD6BNtRMs3r2YTLspYhbaB2ZgmBer9qn", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrf6U6tmazrBwhZW2FkQ6h6azgzBQvJxP78vExqhpEL3v66h9Dgw", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qorPyAG7CR36T4Fic2Y3evfifzuHJL6t1i8H6HRB11zDyweqYEAd", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrxJsLJ51GuCA5pjT9SNqrDQFPaFLwFCkE3qrpqWi74eLrSpkit9", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoVLBNGMpJrtjK6fxziEv9HhTMPJRU23Mn3Lbmm91utXRAmpsQGi", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiX7SRu5W3TMWVUxQvBDgsV46ZHa2NHMMAR1uzsZqdLC3LBZqM2C", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoAbAMVgPXDuqXZWf7KatnUN3QjmkEvEBQBPnY8a6UbSVxfAYSUx", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqFA9YUEjkxkNgLqkwa7T2jNrFei4jbzLVh9Tp13NfysGGrwBgFi", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkn9dYud1G4353EfLjiqcpsyssWgUkRBBJVDSTmrgHBRBBJJJZdJ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqh2Qp66nbHtDLdegR8GwTQNBsHwcZEMtRmEbsBKDZxG956NwmzH", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qq3We52MRqYTyGWH6UUa2tzaHuLNCi6Uzn72iQk3eWL7VreMZoya", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrguCBXYG6pHnHSVzp9WJk1bqwymuDqp4ToZpa7cM7FieZFD1xx5", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qiZ8v2h4akVxDXUwfkY67UJ8bm9Dv8DPom9inej4mCAyrHmVtmgQ", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qo5JLUTCpCvg4daE3WZ22GqTudJxEhTrHKfAPT5zcXp3tBiyXFDm", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmYVFyUFuxgwNjVZKwME1WF4wkWqztL6F1wnLqUY9SnehaCGoK3t", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjSeaeHwsxpBthGCPctf227hdY7BJYs9SX7gYZGFrEBQQ6cHPxPY", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkdfc41wf4Ly1fTu4b6QdJC6ELjyQ22epFaGBezG2SaTB3gZwuTp", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqiXZMYRBBLMPkoFf6zpR3br3wudU3qKw2nYPRY78wwe9b6tBWYP", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpiRVcmiAzbtEobEPrbQKRTpE4sHccyx5qpytaFEJWSnRYujhaTL", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qq43HzWzcincwPk3UD6wp46uGiViid2BkrAPC5ciaxsKXyMhqttx", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmbXvZVr69nmkNJhpWiTDVwFHqW4hHQgcXkx8no4s1MTWVqYWcdV", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qqvLHwsjCuC2AWepvYjeqsKxLymCQPBo7nHyw2SAvqwBAAwpQxnA", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qk5Uyp1kkaEPEXzzDDMbEZtbgoD5rwjq8cyr4QQ2F7vPv6vhCUAK", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qpkUpfQBvm8aMFdPzvyNF1FQmCdxRZoXAd9bWk7SMa7ZH2M4Gst9", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qoq4F9YLh7aFcrfZogY5S3buz6LHpmjKEU8yEoGSLjNShRwmSa1b", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qm5gyy8Q4vHJSaDw4egBoDxWy6BTLTTXWGysy5TwHW5yAk6osPoH", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qrUxP76YC7M1jkhQF7sUZh6MV22y9ndcVaREeYzKsY73paiFRBnV", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qnPnf1dgt3vTFdBiGPVw2r3hjyj4ot2CVqppWzEuRzFcZSccnWAw", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qjMpMipCJQ69o6i5KUX4C57zrmeSsBiZV17kbSZ4A5eXPUZGocVW", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qmN4zMxk65e9P2xrcKJcLvJiLDqYCw2HEnWLfR1EHxfmBfK844x4", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qohGgrEd4RgquGUGeqZhHPYwB1jQNTHD4LDNxDbTmswXdyQFjh6f", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qo6AZsDD25SeM31kwHAN1UTHnQHC3XcLJFvYX9RT37zw9tw6SYaf", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qr38F5V4ywPqMaxWv7bxuRTFnE6C7jf1wSZKZWMFB91JqZGtj7SK", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqh6AYdzE84ZQyDCYn2AH95GN2HKpecQdjoEbQBfMsQTptGQsY3i", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqm9UdoTHS2CiaG5Bgry7YNnWFRfbzU47qMsjhRjSqmvegYrmsSD", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrTyvgEsYyZ4gKScmotKKQ6toXyjsQBYa5vPN21Pa4fVkJGo2ytZ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpL97xM7DoPQBL95N7FA9aZXxZSL46ccnEvRMhR8g6vMP7KRoa1G", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpidgG9MhAuwyKadRbQaJMKL2BkGWjct1LNXqeeBn6SThxYhmnPM", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkw83KxEVBAKiksxziwCNrzTTLU2erHe6tQ7tRn22APpCswJqs6W", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqyBQZn2Nt7GUMQFANzk7Y9jB5meGvafvhBBZ4u2hmdJnZWCDbtW", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkZneaRzmKktYFTzthxtqNiVo3L818oPA8WtM3RCsRtf3Dm74zw7", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkBLxwuGJ6gVaaHZUBAgaSB46WFoSuTd6UsyfzriMnkBULZ7aqHd", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnQ2DJSXXEUayTJ3ZsyYke6Uqdej3QZef8y25gCpt5d9WZVDQWCr", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qiZfMRyfNTg7NkxGx5MuNTGtQbUeRyyXLQwbEchqh8oZcT9yugHo", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjm9SFWoLmBZ9dpTfV7HzCQ6C95mYndEJyvAcAxnLqYkSMP3eQXG", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnJpHCkz5NzTibo5mELKfMxVWujLErKc5KyGYdHdAkHqTS349S25", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qk3ESahsekHtbtZq91y3jvL3Ty7aaHcQMN3S67r71vFCmKvYHrAm", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qovNuUnRwCwX9kti1aTVqJNVK1DYmHAXz6pGhkQztwVAadspZSpP", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmDey1k15ntBJtYqcrAPza8smGfSxzBU9qWYZHkMRrdLndg8MaD9", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qibjGVkXAa2yJ4aBoDBPeWSNzC85noSbJ2DnvH4NNxC6C6ir3idq", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrNuE1AY67y7iMqXfXZ2B71FvtFjeBUzM9uga4BucsTkT8NBUzhK", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnZj89Y258CT9ijgNcHkH2qX7vabkXd43ZFtsQBnTmJD7FYwQZH4", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnJ9oTwMPcT4AVmq2xGfNw2SBD2isJYBgnqWfWAWZTMFe1WKDsem", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmjkgPuynW8obTZrMJqrv7pqorahmbfJt29itVxAwpCNKAPTLCsD", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkNC1VBYT8ggMeQcHDTQykJaqZ2CEfZNQbSg1ckKZ9YpsskRRDeW", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoRxUTLBhQuqLamqpPLADoEwapYVni9RjKP9FrtF1E7kRXodcmnc", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjeRR3ezyK4iCauheh887FZzdSBFJeZAvpYWVQY9FEFyEorFi8T2", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqr7smQmUqiBsTrHr4VNsqEYwHhGve7oi6iTew8CpDiDMhbRChnM", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmQvM8baSF7QgJvgaxoUr9PYWwR6RMErnXFiGeXEmEupbVcJgQ1J", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrQZiD8CSdVKY7UngTfhN9QcLf7YExUXoj9yVeyDesQJpcfdcL1A", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qn1GVNwkkzzS7qJjs967GVo9vokYssEhsotH7AYPTWPjke6sYJfn", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmuCfRv1KMPntL8xFjT5mQPVrHGT2tVft1mNaRRGUyoxw6f3zEDe", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjJ3g7j6MLW8VQ7UU6uPuViWxZJsvdodzbbwFVuU6tk8dE5mS4gm", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkMrxJJqBNHhgrymbzkUyyi7KPNB6yiCC8izn6NC9ZVkfvFbGL6U", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqqDvHVPqY6bMaS9tntvcAGeKJqU49uQTBTi8VxqRbwq6EdaFRpE", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnExwAhzGTsDGnkjkQ2UARe327sZAWn6xECBQCZHFBP5ScCcpWTu", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qiURnEpwKxVs83UP2XbZQVKwEBgQvZYZCQ4Gin8NuoihKd8TMyjm", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnfgAgRnLFfC5HW7gPThjMCVkwTg9nbKsFprEGTKzutDgdQXPUhY", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qje9aWTCoQKWQK22V6btGbhFRPvaxvwbsGG5q7c14RcMNNArTUUM", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjGCWachhzzpWguNf3NruJ348MvKpPWRnLoteKy4DvinnUjxMjto", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrzJzdm9rD3cMYA1UuAAJDgZZnRTwc7BAWcMgQBU1ZRz2duCyJt6", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnn43RQ51EVb9FV3koWTSVzH4XdZfpE4Wm3T3CDJyqZoZXwVegsM", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrU18Dwa3CbY2JTP2jkdrKpPUQP9kn3MRQt79eiUoe3HBfvdhnY4", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpkk9tbufSYcYhPYkbMVfAEV8E7bKfd2UyZJdri5e8gTcBzNQSub", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrc3DLhfV78ELY8xFUouDqHJyiRRu5HcJeqNGkxevW4DE5eNYths", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnrR1yTi4rgRfeetrjrz6ypXfVYsPPuwfiw5Adfob7xccVNYTva4", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqKgwyLU47wGV8bBQKpyd637BKAGsRcyyC26c5GrgfWCa5xsDGmV", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqS98bciE9MN1q9tSKoe3Ti9QspfGuFWFqewT7z8jPs8FjXLTZbk", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjbvqZjJWtN7Di1acQU5uFZc5qXh7F2DPZakKdDEgQyjThmeRp5d", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qj3FgocrhXxRujP8PGRw2CZzq9ayYyVD6tfNJDhwQpAqHLS8aenF", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjfmWoCfJEWxY2PJcaYv5t6ZVJuKTHLz8tw4hkasZkrp66bECTm8", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qiz5gkXUFBdrvGKTHSFnYoDFp9gAoL3qEDEqdEmK8nNtphWouTjJ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjgJrz6N8MAecgws9TyZuEUcmEroRXxQCZUHYH3KSLCACf9YMKnd", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrCSzcSYieAvYWepcx9wcgwmGNNG2ckJ9oe3UW6mKVtp2kskFfxR", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjmiAELsQAZSfRFjtwv5jiLEGwXT3g3kf5x8Tf8974fbGTeftRy1", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qk3Ak75gdgExN3GhYMAvUrzN3xuHNegSyPrTaRR6VnVqBkFoLEyp", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qm3Fk7G1wENcz14Q27vbgF3eCLMi4LxfocFC4nkEZi28ABdZfSqf", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjKcmYxjgrr1eFw9gxPYqzQhQxBFbP9GBFPQHjA8by8Sg9EPDbxh", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qirM3pGpTSuZAJv7KPaneVaF7B9ANHrHdKJdAkKDoT94mXdAmiFi", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmYzw6LF5pBJzSDZHcQzw8VSmDcEgpk1v6jKCbTeW73TTyB6amYm", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmrL6JpMxcmfUncJyinRcazyxmTsjRuwjhqxgHxhkDanGndkd96Z", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjxkCkzsHqtGDr1RDxkaNZDUkdDdPsZ5KrKgw7WuGRM87Cn7CYYh", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qp94DpxRvVFym7PzPJ5yQGysNtTdPvoGbvqwpPxyrfuC7rjhdK6f", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrXwcBHyxKribSkRJDJBNbLCQ6ZpFBp7ZZqj2eocfg4cbhwn2BUs", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qj1r3Cp4xYKhZSp7UUcW4QQ3irU6waYx99UggphinqJLjB6z5yQS", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrSHCwzqphty6cUAYYuRTm5M3Si1BzXTGpmn3PfptGwWBShJXFJd", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpNvybnmSwKzYFVLVanf2hU2a7ZdY3jkxANWQJyn2Vp93CimZGrP", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qra5eh8gmHieiwTYUoLHrA7LHvChQH7LYfNjSupVFEo9AcqFjxT9", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpQ9NMvcrLuTbsJY3qh4GBVWGsHbb47cGGpeM1NK6j4kajUYwsAu", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qouFgnkWzw37jVv2pB1AnUTjDJuvWXewxiLoMSAruhRmRUSJ4pja", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjE4M9w8HiBFSjPbcqBFb5xGrwaZX2v54DjL7gcxxSyDqfyzvkLS", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qo527Gq7PA9dBKKPFEyKpaRag7bGWEw2spKyWVAsYzGT7Fs9sPXc", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qiyCawn5TtJ7ZkTopd7btVVbXN1Cn5FSk9hVFhUCJM6jHpk3iwed", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjrT3BQeGoHqELo4Zt5EsjKyyDLgYDkiQxQzKsPsXh9s88E8nLnG", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpq3Tq9Jd3VbV3NyiGzoQAwNfJ77CYwq2P5a9b892HH3SPcfVQqv", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qq2CEZ4RHdnXYPCMMNAwYW9Ztjg53hse2m3Kx4vfqjcUxym2kdZS", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmfdW5VwLXP5jMSWyU91QdqFQtgH4uDCLEAQkYCKx3WuEVnT1Hvc", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkJq3SrCUK2ooiH6bHCRqsDhTboiQg6PpSGDbWrM3EHgwDeJrLYC", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpAaoRgTiD4fFdV1SAdJWrAxKeNfMugHMx4pCdieYjpUJW1AyvQG", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjmRoeY3JWXFnciXt4rGyRsCRyBRVff7p65H3DQXp79yToxgkSUp", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrB7RDNkP85EYmsGG1vWi9gGNL1heugqNqDQrxuBmLqHFgkDvaii", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qo2ztAuTePoMJG2NsMxyk9qe1psKHEBxWwjA6n1zQH1UNV8cZ5Vm", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qk7pxM53UevDKzoJTnE5oZDbzr2oo6cDbjvpmSEc9WwCDCu1untX", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qj22zqGdkAHjG2xpexM2rRCuZe3PuizofGujPJm29uUW4ZFKyGQw", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkWjDkVfcXBrmJgqWXQ54rqmupvEDTDtSyWMb9nESXatM8CjYp3c", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoCWLxpH9tFGx6C9bantFhryZfNisYQwZsMzoFYA8e3XS5jNg69j", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qq9ZQ7e8XVEVX7pYCmJBuW9etxsLuRt46jaJ3Es6YhGqgzyMGDN7", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qn6dU6kPYmS4oWRnnfe7VvqrtSMzGc6nuycdkmDsQ1QgrwZVMtk9", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qr5AEUmcFgXauT4o8Ak4TQSViFszSyir2MWZqkSe7AMteqNMmCDP", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpBxR5eHQXz6bfcTxzfmdrcb6cy3cZCcZkJe2iswUceDtnCC8MDY", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpntFJKrWjvuaRKAYRTYW4LQePJbsnsFonpKZmod8TsHTm7mRtLG", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmwxsiqaGJXLbnyGxqzMZpu3RhzFUn689Z9WAPLT83asnXWQ31Ts", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrNS4ZUKBiW5LiEEx292oNSmUgC6DPGurFTMkdMhQYVgFrvUzk3i", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qosHg3PAwMktXJ23X1imhiDGS9jnnooTqcnhJwuGepc1gwLBf486", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qojEYNiMJhSKMBvdfqDf4TCuXXbv2fDbMsLhbpcKscv7yvi84mcP", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qovSHw1KB2bw6DjEpLJmkbDK4qq4eQ4N5A7iYNRdwD12iPmsKxYp", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnaZPoirjehwBnFPq4NYT66TDHfykqzfFxWBgZhdQrvjWozG1DUQ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpPkerkEZqb5wbA9yH8HB7svsMgm1LJfWdpXAyq3F2DwisCMwsH7", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnELZzbhjZ9j5bmTkb7sciLFkzsZUeQk1bQYzBb8qhrn1eWrwLS4", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjnynVfnRi48SL4By79oZbsUS4i57nLLLw8zvqDE7cwmTjC4m988", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoHKEzGNUXijuWx1iPKiLpu67wiu1FBVxDEhJiMTp5mwazgmayii", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoSHciFYJfoC9GRtvoBAcqHw22nWVMwdTkBv3Kh2DxGLdhErj68V", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qq1iWjsW66zxJJTBFJ8AySCncXD1HqGN6Zf9UnAw2ALE8n3bMfdn", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qksUt2eQiJxHicjQo5GC2Y8AG1Z2aNefq4pPgDzSQnTKBW1Wyd8u", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpqBBAYiSTVSAKjo2CZGevvjW59X1neE84KmhNK8TjJkb5WzQJH9", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnttaKL7yPCXq2k4GCFnnHfBtwrfzmBUhXEuD6gkasrkGtcNGEQH", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjKpLgejSVPKBUG98wrXfBhybSWXoRwg1K6ycTfUMKTv7qGhYvos", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqydNiwHjZQ6bxxof1xsGbknRvYKEimeUjBJo1eXfLBJ76zvPG8b", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qksSoLj9fDYrMuA5gXa9R5CknHvaXfvQBV2moD2EovYtkCaSrnQC", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qm6UdJQCS5f3GHKFvTumP5odCLH9FZbrKV3PAuNzQgm7fLtncPb4", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpucGu87T3GpWkjHa8yXnUhawYwN7CP5QJVqtKuQsrMVaZeuwuqN", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjqwHboE5zxiMbQJBqAW9i41Ui8MQ84oAyAWj4DznL2zZwZW1TTZ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnM4wwcpM3EJPqb9L49gztK7fHxvrWkx9gSgAScPHHr8tt1Ua9t1", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qp7fQWFUKHLVj3jzLgQN9q37nS7wi3H98qDDD7UMgeXwBC4wKmGR", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkVbPA3LNDcZh5niTYgdTY3exRnwbQe9jNiqdNC6xpgximiQK6bh", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnr65U4RgQQqskQ4yYNfXfVrPWV745A342CUBittNub2z7zWW9UH", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnrY1SCoMonhsvZ5FVhRJD97jjF1c4rfgEFtwowiGVvWAyWs5D3A", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjRt6oB8h3iBY8xrmpQvmVvrDLXBbFgiFKkH6LCptG54a5KapvZx", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qn1PmBAd6M4muJ4ATLpwnoZWcDdwMVuQrZSr4cpgA2wLDHeuaX8d", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qks1eFmx9gKPpT317Mchwbd3nPME4FkrZEdfoygHXgk7m8Gfi4wR", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrb6NwXw51VnzUgBoJhYKJ9NkTCREN8KASADEjc5mZFAR7PenR6T", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qppdfEzSyUXS6u2YYWiCbE6gdeT5qDgpeb7SNSBhDP1RG4eFT7X2", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qptYLA3XNCeSvG7iZtDqaqLLZFhvQNaHn9fdSdYpcCNVUguk7JCs", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qk8tygbxa3xDJY8rLhZNCBae2qJAV9ba5CuzmAhvcz2uqXGJfXa8", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrpn3tx7R6fraLeiNJcj9EPAY5z3HmiRQo9oZYr9aoTRug94eowR", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmhq71tDzjQyHHC29TKHyLMY9xs2XnBGrT8UbYc4iGzX2Axqghex", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqe8ZzwGSWMzqDvH4SUKRTQVQAKfjSAipPtjFQKJUY86aEt23epS", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qr7D9dkhwxmAui6jstSAuWKdDyMdEmEngDhxFMfrFTRfuWFBXd5j", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpcNYCirpvsv5iTmhqgRRMK3xiEZFEVR4r2GkgqK3qzdFcekgLSE", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmhaixkgMHTEwhbsMUHYssVnPX4bT5gwvH9K2eLo8H49JR4dT9wm", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoE5iYMzsD1eLiGFeog2XTo8APSx42xsTCjRvNAvJ6eZyneRhpN8", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkEkK1NvtJWSApg3ZoA9ngYLzzU1K6GQZ3WtCfRbo5AWwGs7bibo", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjVyB3JuosnunHw44W3RMZTr9pMBNMDNyUZ1BhPMSYvDn9ucbVVa", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnBBWvNJEpPpBBp3K2KhnbyHxpvCExeXiGT4b57A8FdwWxZxKgj6", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrZkobRRJwErb1GHxanPUktwCpgpUbQwsRQ7RZhi7UQ4pzU1X4EW", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkHYfPmk5fYA1rizSZCPgqg4WMCe2nT1f7QB3pNkEUpJ7ZWH8BVs", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrjAZKzYFSWWAh3q7irWRGgtjajxKHS8exkakNVzVaPaQKrTsjvj", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qizHsT4C9mFGzhwewQ64dwyXrEeQFuxZUD6UEeevPS5mXBTzR34d", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qj7vUVxhDyWZi9QH5D3DX4mdVXF7nE2DxpyxxfkqdF9z9TsuidY6", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpwUNzEruT2t39DRqX3Z58VjJg8FGz9XAZqD4YbtHV5nHn2WVnyR", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkQwLDdgfZpyuVpg6N1QiWhpeD1kH9ZZtEvVu9YJcwjz6H4SBu1T", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpEDZFhyQwBdQzVAhkNXXVd95VCKckzciWb4E4NySqU3RKjeDUMR", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qntSSfQiiUseikc4T5CX9gZbYMBAfrdEccVqB7sZ54HH2kfW24w1", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qr6vKTnE9ZxGpug6yFAabJvQuEqyGqiagmBXprS4Gxo515hmmKRg", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkpztFFimzKX41gGAD5GBFz7WtiYCLJ4BqiWQ9j5sSsETeQvossu", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkxZ8CxXh5ZH7tMPj7wqsGjGpr1J86TJB7s4n3YLnRkq9ikB4kqi", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrd4mEKhs5Uw5GNwdNY51XXC8hkQjCwvyMfGN6pt1DwQtMqYWH6n", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkqnDpXjsCiuYKANG9ANa89bQoUybZAGwjmkbGNTCSVjojN7YYJT", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qq3je7n92qihEcKY6xFFmqA2M3gyDksXyj9eZZxZZU57a4Xzfoq8", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qo2ge67UasxoiXuyA6pooZxbJe6eveSsToySMKDnMGqc6ty2FTqJ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjctkERQc8KWrokVBpT1eugtLfcVwq2qSBnqQpCwEpgGKkHozmKo", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnt31W5FtK3og9ZH7PWWFLxduUsK5gQY5uk9Ktcc8gM9r5vemcet", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpqPizn92a7Ti2eN7DPiacjESWzQxS9T4irz9KM9SFXfcAv7raH5", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmsb5zxwyXzX95UzwA65WroCyRk82SYavVpSsWUaSvTP5C5qYs2b", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qndYDE8nY8tN9WGibjuhF3wdBdGuB8L6FBTPgdN26iUXMvsU8qf8", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjhYzRLAD3rUZjG2z3i6BKHs6gQeRKK8vmFJuWzqo48mtWkkdGxJ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qm9y3m9B6pfrvQviiFbh5TYHt54eqFoKoCti9xh3JEB6o49PpTDv", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqCQkMDAwJfbshoQShTbTTv7KjaKJm7AgfwEszaWuYwkpGgWCjTx", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnfSFwLJH4H3GPwpMFKga28mwLEyNzVLUUjBdL5gvh8k8PQe4Rge", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrd5MhiyRUxDddZX46WexvepTnuog7wJ7pfaAmKozz8H4rr6whLo", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnmLSkAr2GskAYmtAKyUy1fotjJpMtjsb3NPHpTgQxEZgZr5Np6k", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjaZ6fBUtsD3AWB7V4idHUP4yLoZNiBiBW7froJrCaaWi6e8cpiz", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjf4PvEipdsHJfWpKxrGGjQbKGPsc7aMJquFZgNU59AhkpQjkfrZ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmP3ayqwotv5CpGwKPCfAhxdtGousnANQ8TYKtfpAw1xnEuNagDG", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqYrdd5si84xZPtSKv4NQcr5PkUfY3TpUahQMAywPSNU1iBu5i6S", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqxp57si2d8syNk2mYktKoz3TayGtnRAvisTg7vqgWwUmcZ1iQFg", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qiiZTznC92jwTbgyWfz5KGAeWvRr9de4H9NQX7Ww8vFdHN5D5Zb3", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qm4H7wFbfHL5yTF34DHnD4DwouLSyNY6f9fMp92rkwho5HdrFhqm", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qraxgnfXh3bjWXxGZzXRFPhwHhZ4PymNxaGf8vRQ8sZV12hf2dct", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qruLUd2HTXTdargqtqK5hL3e7EzabVMuaB9xkEXPfCKfMisdX8d9", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpXGgJKj1NpspY2JV2HNx4XS3F2CawS19bzqcqAL3iVBNcZvEdxo", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qj5VFkFpMXwpTEaAKafGz6y7degsFN868JkcweraLbQKGcRFhos2", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qiTMwWPaKGzbdMyb7bFud9xaHAwiVtLbdP9qk8LHLvpppGN2Nz7M", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qigQRS2WkbMfchTC7Ds4LLsreMfhpuCbVspRzRQNxJNwNhbi5GG5", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkT6ALjELh73LBe926ie9Sze7xiXU3VzmeXj6MdmQAUX9D77cNE8", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qojWiCVzZCE9H1DfYzgiEUUPdT3HS6J1byF1PoxDfWgV21RdtS1a", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qk8j9NixZkBqMHJ6cSFQ9TnayvDRMDv2Sk9YL97ojTGAx5HCBiKD", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoJzzwXacGUFZ2URGWHh2dQQJdM6hjpMd1HFn2TsSJsocQC1oDfr", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qm5Aigo2m1itWyPdmHtMyZmUkWF6dpmPmkXiiYMyFTaTXUAw1AW6", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkEYGPEVMPRADQUZV45Y2kRiNs6VHJqm6EzqptTQDCPFRBYsy33q", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qiwG1Mpz3uwevaxQP5NCGc1vCuUGkzZFZm5CJuYXijScKWBfTP2Q", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpd3Kv6eCR1XE4CiKes3FDkKw75qfhWhyegVpd7qGPkCG2Z6g59v", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmHFDfXB4hNuxKaYSuK52qRn9zGjn9DbTnpFahw5wg8zC4XKu2Jd", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qj8xSxKXqv4ukRbLj2dSzefgW6r3aYsbffBYkTwyVp9pYAAm9Cru", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qp8GzAEkbUQvS9uNqufiUfT33PnNeLy9QNpu7cH3xGS62kfffrv1", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrARLMK6y5wwQ54oBGyCXqBMevZGQkDKqsbi2yojEEBDmLVnRfMV", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqkeHvkykG8o7k5P3q1rYecjEHGnX6Rq4wsdYgr7iwccGYMGUoW6", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnbokQMokHP76CJBS3K2xJ2xqM9xKXM7XfBnGSumb8RRzNwAgzYy", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrPpdWgtxHVC9UADxpnApPvHpjfnsRz1x114Lm1DytYkd6ED8Hio", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrbUvP3ZhFToMT3uDSoU64Pm7wKaZv2MiTn4Pd6QW51d9jr1BDDK", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkMwZ6daTGWVMdHAfgnNjSvnRKRVsTsuWRXZzVrbprCfho5rUwi2", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qobmTqyoWNRwTk5C6sz6kz1ywWP7BrZBda3TxVVfvPrRgsTfLvXf", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qme6p593VAtGqrBYPgRu5nSBJ7Y4LPWxqMHSuA5ukxMXHECYGnfo", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkxdcV5RHeJvqK9H8FZVtMBspksg9d6mTBi7hRetMpaU1fkZjA2C", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkceUVhmAGFKNUUg4wWAMYmNTnEoA3qbyQZuJpKvoZi3UoiXv9kv", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmmRNporAfVSz7gNuNqG351HUDgvhsBsuEkWAcyQ6mXqsFHKLTgQ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmnKuAE3vAR8DRpvUPWrbXsJQC8wqoozRhtF5T2HyFuVxNw1pwhB", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqz7wRCc3WHuSqKhrXVX5n9wNtsAxR3TrTAEGaNzHLR6eiFVZB2r", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qs1nGRe1qYfiiRRqL9WXYK63xyCBdnYV8tr6bBb2hTn9QL6wNyEq", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qiTxb3vn91UK3JRzJ1Ftq4rNHWzFPE8txSxwHcBaeoECqUtz5iY3", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qj6zPDRqBDX5P2g69soBzqzNqfXADecFjpzdNTant1tBKyPmEGLD", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpoenP7aRkqKHK2GfL5vmnEVBwoEMFU88KZu38ytFfM95qMxsror", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqtFDbGu4BLD78z1n8roJpYfbMzbSVSKqAp5hGPRPbnFakDdkdHU", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkbDBYf8wdpp8tMFwySi5Etqa9y7eUQWG4tiNkamkTc2ktqxnJVp", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoSxx4MUG8WWV9gmkqDtgrYeNLtcXHGeQj6WY6kUoF5TCiPBcVDL", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjFwdvUwSaUGdxuihbakjykqFrAMUrGS4V591dN8TaKP9Vsyt6L6", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qj9vvfJVJFgPQ7o2xRiJBuuZFY33gdGiwrJTHSyyGfYVaZVFgYEP", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqw968Qn4fsPST3CR3FQ2tSugoyaqvi9LVvupMkwaFnd1J9sJCNk", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnraqYyJVCmb8FW2v3dnrWqzYSTDGxof6M7Lkh532cqgBei4ybZc", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnFVN8YV2ySszkVkJ1oTM9X68yj95D28zJxweuEr3oUcYgkyZ8GL", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpLfRZJZtnb94D69o5tPKjpJiksqVvJz6DbCtP9k1UqeaaRiCdfE", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoLHeFQAcPeGmJMBW3fkBXZQARCt45ak1DsZL5TbcjVuTANBWusv", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qne9TC2ZdpoFAfsXSKwmoe4dmr69XVCnagWmZEXr54gd4Y2M2sM8", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrH1rk2wqcvtVSg4cw8CBBDQfNnfRaNRgHHJ2UZoxtxzuVxidqtx", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmu7oGAyJUHKSovPW3ZSVaNadtZUZ7JRBPRLWXfjGjwuWT2A2ogb", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkontEue8ucGH3peQgE9BHzk2j2Y9oqUi37njVaEKsJGexhn4291", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrUX9Tr2sRmdMF6cen4uZoHrhtQ8Xze3pXAPFkqVJDL5nR6s1vEZ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpZy4xwnkSF7vXSfKAkqe7eVCwpcZjTHy9meDdQJ9uhrAtPVKeLZ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpLChaajihBhgGxmdypvPzhgmWd4DLffATLJXP9UqUGerMW3AQLn", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qn9qXrrjy5kRTfPDT9sZxRf4ns83JY64NcqYUvVVYAHfb2pJYy7t", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqhQ9W3hMjxWaYnF2cwKCnUKvFmDqPRvXnDvnqt4MXDGU6KUFD7p", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qorbbQcT322betGU21Ltt5S9M3qMnhwpa9Rs5T4iuZLfwa9maoQ6", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qobrHau87Dxik45hDiY6di7XzbQ7YfieJdCtp3b354oDYufQf5aS", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkUrijLGTZJUkzzqd2Po3F7Y4MSWbmdHVGhNyAGNwhgvfM5YY7Xf", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qiiaJebcpPpqqT5ATiV1wc2kvfMJxA9mjQBTdxpRqkeojVmU4cVL", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoJ1JzzMx7PuYM9WQfvTe3fqsPyUFuLmbYiE34JA924BhhUb54hm", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnpFGA2Hs6QoP8DqeuXRqyPs5FDMzUnaQzT9k69rfNEmN27HmUNt", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qiuBxkdnYDLBjwKbr5YNyrTSAzyxNu1YF74p4pMY6mRhdFQ9KYL9", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpLFQmLCjemHYYdyJqw84xaokMNWL2zoEewctf8NVGfYR8iMQJ7K", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmfNZ1yjAWCCjUXgSojAmU7tSgK88k5gXE4mDVGNLPPGoHqZ7Z5q", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmUHGozapNJtytir9k7kqaFJnDx4xKepumSmj1mK32A85k113mEd", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qo5KApq3VDpizQEmSip2EesY7iirM2Hufcqr6gSnoXZBWFfpsazU", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qptJGUVqKXA6N9mx7yuComf9BMhrVuGA3gzab4UHEPBp2v7WKpSG", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoj3sM7ydpUbzweRE81p1Y7JqbDd4JnhaTXd4yvBMmNGR3PrGv1g", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqTEoUfrdeyZPqt3adCy95Knru48UPrrYVcxnKsSWSC7mn2ghXhf", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmGaWkhpgovqxdJehyUJ8SLyKRtr3236tZS2B8n1toGZpcNHRLr8", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qr2ZPbnQY7wyKjtf7ny9FiUFbc6c53fSYQ5inFVmu5C1R4DK6Qdm", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qj9zZc71zaEuHd1pETbLFikz5mA1wDuwPeWjSo7sfH6uyDrNxEds", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpkdVaQWjHtdVLN8JGH3TBqsNKRQ4vp4b2fsibsSR71KG1nvyZ3e", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qq5ESEjwzFQShF7DzJhskj84fTPz9Kj87tvHi9sfDQsm1DSEk42i", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrJ8VT4wU4Y4CMzfED28RXB9wsNzgLjqLS8oamGWNNpsZJg9F9Dx", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoFVKxRAuLncYyFSGkJmAFaVz9m85DXjcjnHwzk3hfs9jdJKGQiv", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmwVDxTurq4zwSRTkSE7pwQNXznf5UEFZU4mgT5vNuGmDcEgPTbH", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qj4NsUfn4JJcoFUc2BdLv8YLfg38DY2iAQ7N3qLb7Exo6YhGtCv7", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qo1DAX8vEgVN3xfdoRpQeNFo5w5JjWeNcWfUo5iBuN78cpvYWzBr", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqSvT7Ed2pnLEWdEasjPvhrwRQEXHaDLAowVYro6sH7sMAhGM98A", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qibDThJegkpoVQz4ZB4eSfxXQiJeMfYHy9RM8RV9BtorJwjsfkVg", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qikEWtdQNtRbsKYKCkUnnZY5NJa7AkbSR8NQ2pTEVfbdwXrNKMWp", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpVidKqD9ByKLNc5DoPk2py4tp9JZzsFujb957YJgg6js5wynQpH", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpkMsfdrnU2Eqys2MALWBo5541zyQhpxsQY8DP8MqSqjjokizxUN", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qquVJjg81BQpFQuPfKAiNvZV86zNs8odtpxmaNUodESWRgKeX5YA", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoAAYPxJLtCuJU78ZMmtMJNDTuaAymrNoSM89RLkzV8HFrqG86pS", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqJDw9eEBNaCbuqNQ1MVebjewUozGs6NsJok3m1aKcd9rCJcdr47", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoJDtz6Bpm1YSJ9ZHe7xbYBFmSevePLGanhQTm8ejK3G2xM2h5Lg", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkokE3Adu2XGADpuQ554aMbs1hAJKfaTGDigdKYE8EjDgttQJNgP", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qogosQqouBaJJwe8G2T3CwLvpvs4WufHNLusGu9j39ei3jPZvMzT", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnpu7XXeZwvpBCQN79mUcSdwrhqptPvXtjiUenvMpixdRTwRChdn", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqsD5FyEYcbN1pCpMjdWtbLcLB9ba2xqkKXf23rAuzKxXnUFFCYH", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnpGc6kmt324YHgaXCuH4j3c5A66aZJQJyvUBAT7uRUZf5hfvmpS", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qo8sQZHQxE5n9sEExuVoGTZ18vAo3tYSQDdiGPaRMyXvU11FMJgQ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qok8Ka1WtCxsmHt9kRYq6eQQq2QrCxv2jZqqnW8aBtkyiJmrKHwn", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmq13RdZ2ZoAYMiaEXobPR9MCBeeYvgXUCPLCWG3bFACiyn5Diut", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qm1uNeyniAnpGnShHXRycDDMKUpbN1Dr7SDeLnDBr1ZBsvSPHGo4", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnwLXhLZB3QYEYfi1GsiSy2gWgzfnhqDjgRa6U6Re7bN44aH2LhK", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoJ4axPUWcMTmxTcrLSFBu8di6xzVDiYZxzxTmmHQLzgGKXSSWHN", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qj9gefxFUxxnVdZj2ziTjgRdttLjP5eyAXwWTpUd2xjG4VUVKPkR", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnbNwAtx2H6Cap4zpzWUd8TMfM4GXGTa2wHA2HbBYvf55tq3y1gp", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qic6uZMtm8ySWAoYhWEKR8CHoyMWmK1kuF1CpPv64ocZ6EbxYstN", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqtpRnFuvg61kpiHJUAy8YecfRpiKGxWCebob8R22kcXxdK9oVrX", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjkQLTQmjtKTog1vjGs2Mw5UoSzBmX8yUGShkshnuNVAQeM1T7Sv", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qqaFGNwhqM47fYA2EWFWq4aWXAmoadSGAP7eimftNkPqvHQALcp9", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnxBqUz6L2vdH3AkNHziQYEFtmsNDN5nqFvgs7BtaRN7AdncRxYN", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpGtmMcVdwAxdcv3ST9Aawn6KnQfE2yjWTVfCGAyDrxhQsPD5oEk", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qr6yUSCJH1gaxr4hwNTsbwg1WNtQa3TQe8ewc1KnG2tqEgZaX7RK", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpbDqR8GkkSdFWBf5NEHaSJYQkHZroujRUvxgjPZnx6JvUfeXQfK", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmTmSuVrvhDeAYT53YcccAK3H6t5qSzX4iLCoNswcXspuvnDm9P2", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qijdaY449JsDnvFyVMfZJurpdQDajg3CLnKH1gdxEjAjFgdF7tif", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmSczhVFfZGmgDh9n7i5Mxoq3K6jU7gC5hBNvSr7meey7aMr7H1X", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpaeb5aKKBNCAo1nq5yqNJjVk3U8h9SJwL215QpKLJZtaDRdoARE", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpReN33MBWmZNMYPgR5PWrT5aeiCfWARa7vEjjsX2WuKkwpmvb7Q", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qmq79R699W4V1HhPADpnV83BPTYegZoNEsNXsAeQFrU7NQjNzWTn", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkEMnCS6hJGiBV663TjSTKHXzppF1eAnL4fY8rYhppct3aXBxxDQ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qm4yrCPSWsNk9iSpki1au3KSQHdG8uHNe7UZTfcZNdZjjgnrmUvQ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qq6178q6MNKvNisnTyexfw2HN5Wqf7yLpTGemw9mnimqHaR146xe", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoAbNcDTs29qNs9EXPk1WwWswhvxVjBnB9DQYBsSESSEYX8VngDi", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrkzCCvFXBzUZ13AYAbahd7FAJBfhb4NdsjmkQRzGHEsX8gaJ8BW", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkZDtt812jAVBQTaczbVKvs5FjG8cscdvBAYcfhHqPbtw8hg1Pyu", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qo2iM2YrfWyoAKSwqjvZRfMebeyRNeGJhRY2qNLHQVDB5hX1cahb", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qpbq1MTnyhWxRUrGEYiYbR25Yk7He5Xq6Nu5FvgyRKdBmkueoCaZ", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qktP8GnZXgzBtkmDfsKKj4iutnDfCr1YtsqMbLUkHMuw3rqqL1Kr", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoWug5R2yobkuFiv1TaYyt5uD1yd2vGw5GngmYC971x9CuPjQftb", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qn143n1zpZwggprvyCJ7VxeTJ4mWxvvoQ9W9kNRVwkekMSke9zKU", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qrWPpP693JAY6i8gYPvwgH9yKPVeT9CMVtaUt2kBHP1HAbP7Ew6F", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qoHjY7w4VFYz9CiZywAgpXpA4BmgH4bcu1pQYWX6DiuDrqw8eB25", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjwJHUAwWkGeLSREz7vDF6zhbP2vXbkG9zfziQYAtGDxg7f6ajJw", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qnuSVhsWEHjsRiKzynw752UxNWQwvfunL66RYh3uVcctrrjcMTi2", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qreU9NnLg3V1rGtwBBwZdT79uhRR2JtXbRpnRtUsdNC5B5NVuW4B", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qn8FeWCYpmLGwDJAQBcju7R1dP4BpMNFYfgUhrB22oam9EvSLX5j", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qkE8fKLG1LKG1WEUv55M5iRRuPMek1jsrsKNMCg2vtHCjfr1wYHj", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjKAPxAjErvybaPb9oSissoWeY9PXdfBWcPJu8knfFazntUExqmL", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qn1zqerHhEqrPHpdvz9cGLeBDgNF2mVfkQr6An69AhnDJmQkBWmt", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrNFfwp1dUsZwjULX9e3tLNt7SxrGCzkGMAjRAwEgwCjTZvartS2", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qinA9XrnuAU3HCdZzVjU7zXmz8kdCCYyoc26wH9yJEKyWVzFyy8y", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qj3MSpCzntF1JVfQQKau3kvZsRGTh2etmSpcTt3BHFoTpSpryJL2", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmYrFu51oGUpPJWTjwh1N3jLK34rTNcVcxev3rfSLHngsHXLjHqQ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qk5TFx15nts3cG3xc5Jd6xWbNvDZ5tg5ig5gD3fHq99HTSvfsDws", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqvpXyhqe2a8bmwZsy9H85yCME5yGKWyz8PXs5XR5QReYzSZvaTy", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkJrRAf5YpXAoTZfCNmyTBu1WAUGeWx76MzbLsZeNkqUCnjMCxqh", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qigGAcQUjFm8ytzEf6hrwbLWpm5wDyoWfoefd1xGiqCuW887JZr2", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqzUiNeB4BbpiKYKJNpD9snkWgGGDR9qwMjuJyfVzKimmMg9mUtg", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qiyrv5Mi8vrHhpPC8a3DGJimKNNo6L2PPQM5bVUYBkjGd7bJrpAT", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkpvLc47yT5fCmvE9KNbuWgSiiZYLjWhVSYN2r9o4XGuWyXjhhFd", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrqTkMZVBuniBQenx4VWgiQezzyzMxmbDe6ts3c4f17jePhE6Gc8", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqq4GP2iB8zfPYTNtSpwQ8N1vEr8XaXSqZLf7oeZTiGouwC8wGy7", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoucRW2AFTyXaenFtuv7e3LjXr5vhSJvVVSkcTS7poAXkHuYzA4c", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoNRD5jTtT3B7Nn74f8mNWDgJQuqvaVREQpVFftQncfvso33bDJH", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkay2dBaxnN3uw5fkQ41mxoro3Akcw2MaQaRhq6ouXqwDzPwsQQF", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpaUpM4xJsZvaGFFQMKBMpTaE1P84j4sbKP15GH2mc4ePmuQC5eJ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qm35cmkf8ABtqAzv5yWyVvedqH2kGaVvU3Tkra7zrDv7nCtXc6LM", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrpRXJT1QzfxHhKFXw7U518E8rjYcwJwzzNphvFQAT4vJRjbbk4j", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qruKtGeGGENmdSNT1sxb6Gs1abLQYAdSDBxkyynYCrYRCwqtmzDX", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmcebQgSU9mN3iGCHFTqE5RjFAvz9M8Fp3jXjKd8pUbM7bgFgxFk", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkccFpZ9tNdD16wnCfwYF53x4vrGsadBkkW1VmbK7BZs4mvnYxMf", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpshrt23Q1CyPpR3cgvnzZt55Jybhjep4KPkF9sKVQHP9qQ8DLVy", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qizvTph3SNPATjpstNRVtMYJwvRXnCPHcf4qwijfzyjoEKPJzT4Y", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpxLgkwmwvLBUCiGGt3xt7umDWuSTBriEMzK3LQiU7cd73EUBySF", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnpHFK1xRX9x2AFUYkzxQExxe5pTfHU6rdsyuxqZbfP6CQcmoaQg", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmyAhGp9XcwSFk9w45BFSZvdDMrrErvCUit5UjaFsbW1JNEXcY28", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrr54mYdTfYt37y6hjgFiHWanxybaWfeFQwCwmPuoE2qYMxZ1k4S", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrLxaMjaKCRvRzSQXJxvYJG7ucjdjNHLZyn2om9Ced6LEBeKU3Cg", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qn3qpyTnLhxc6EDpF13XviUksej4nHYGJXJkWqbH1GWcNkyPjLHF", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqmcK8hPtvdFVNAKxRw1wUBcydiGna76QqGTkHb6m2hfzAEQKbjy", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoC76XCFF2gBx3hATwdCtCi6JuDeBiMaTeXqKskiQDTeKqRkwXD6", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrNcYU1FBvxMhnvBwGCjHSyEFuyY3NHhSs3StVFTucvnKxdtwKZf", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qp3UMU6VxfvDn8FQNZ2DhsrzZFfUoKep7tMBBEbphycKSXbTwf1J", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qk2UpqPz6VZk8Cn7JyKJBX8VHKc6Kjbw1mCadwn5exDTnRi4zeSY", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjzimVSWv6QfwGKhAtyxdTxLuq7t2PNRvWtDCruNQjNsX3SfHLxb", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmjfZkVLeyNC6C2ruhvHWLs5U1Zm8kqjhDtDsXtn53w8NhSnbGF4", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qk9mWoYwWhiHfxMzKtKWgEnPoS7ujqZWg9hjyrg33kcKVvxjhGBD", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpLCW2yvFTHC96a2FeVqt4j3gjXk5saTY35YUp5H7etnid3mouSA", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qomzec9MwDdSYyWaSjeRed7seAjYh77LjrVKp6UZc1chYJnJbQAE", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkoDm8GHpshdEinBer9BTfeXMio9XvuvMsaaEyAUh5QaxCQFEXzm", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qk75PTYfHBYRrPjENrvUHvz3ad4QvzUWpaa4Q5fRGNyWABsm9ZEf", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqHRZYs8ktpu9GCFNsPsQCYTTmrM9hZhkxK4nJwu9zhnvFP1P3B3", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpJAfh2zfjmYgmmVoXG6UbkfXzqqE6ru4XufomicMDW3gYPf76of", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qo1fWUiM5R2akLYbxKXYc7EFUGYge9pitjLBC5sBcDXfQnLN3Qad", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjotcDZXJsm9SxXq7JQxHrizquFBNfcPf89VVpfBCqAxpCMdL9yV", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmPzSKLKZyFxztvQM7QUDb9Hu2JFFLBRHrp9tihw94s3iMFVUQqh", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqQMcRmvs5K7wYeuMU6NNEq181x6AUBa3mT5sRQ8mdr8ZJpuCxsD", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmtuRK3bBJHWnokmGkQonTwAXHg189YzPnaSW8RpioFj5sZkoMNB", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrGrsehHtLxU1nXiCTL7B3cLHF1PnNwGruNBvtJMQ9T2ihW8C7RK", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoZybeM2Bi7uoxvCDtq7VJUcaDLc4FrmQuNfefo19heTi8tANARP", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnhU7rSJtzuELf2iwCMABNr8c9QNEm3QuWxQqZC9NJvg7LpdDxnL", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qp1z6PRqHquRgNhPtuUtrvzz94eRMtFnZjeJicci8NdpyvXB1ktf", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqKNZYGetRGKPmzXZaHH3b4q5BZ1Zn4CiQVcmBFt8urSJYSc7gBt", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qiycYTzYv6huZ3S25EP6jJcvidY6BpBdVdGRphF9LH6s9p7cWArY", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpoX4R1JrX9irDpQTQNjvNZYddiDNszTBPxLE6wwBkznY4WQ7Zf4", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqj2nWBqqj1WjtQSr6b6Kfhtam1s5H6Am8tMgLyY8YpE695jBHsD", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpZ8oVnujWzjbuHszsH4k1pzrmQ4q6t4i3SZY3qUm2ey1pDxXhnA", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkGq5fkd7NqV2uwZ4UYVHg4k4A3wKWTNWb41MHWX7c56LMwEPaLQ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqE17AosDhJsaTJPuYaaFYkTfjLxGs8jUaW4Jfk6bEepe3mC9YhS", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoyDHYBhbm1cfLpqkubMUmG42HiMVNXAnTE7vKJhJxVJkwjzy8KZ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qijQsNaq5WDsU6jqdnHWuzkKziWncKJAWgR69NoQSaC4amadpvDP", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrnfujzpXGsx3RgJrkiW35dYruov7G8cxYY4D5y3RqMygAXiu2mC", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpRuzZjw565Qpqa1gM3aSN1FpDYtYuWubPJeRm4bXEY4NTfFsKAt", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qodGcM37SEbJBHXUJAJhYJf4zqEUYHBQaWnNA9tWhjijiBunF3ad", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkDCMU9CrGk6hqZj9sVmKJAFikFEmQCXDc2yotBBTu7oyuTs3r34", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpkcsE9jUewNgGf479uxuTq3xXCAPkGicX2R11d1sfEiExyoMJbm", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qn4B5iRJ5ecESYhjW4wbdoKhBHrVSzgHpWqvxMzics7LKZshXPQ5", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmJ9jqDUsGMhcujZPyftWXtppnx8njNoE1VMgfeEtHwGq94g2bmb", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkAAeLeQ37xBGirQykmPditmdoZwjU38cM7sXzpoJAQFnBEGTtoG", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qp2PXqy3QBUapzA6CQyPw3VX5ARzov3TpFz3KFwFEj1GyJL7XZez", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qo2caPqaL5QAbMAhdUenq4PaAKvY8VAn2VRRsvMz8aoGfp48gAbg", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpSJDHHc4baR3vmYgnaJb944yGred8aGYmM7c61T5iLYw4UoZoLs", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpHmtFTCJursSTANsqUes1RKkXfiDe1kUx868KJHn9NU4NirTM9Z", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmmsPcaMeD2Q4oRykEq78ZkN7oPc1aNK4JcL1jh7HtvbnkbQhtMJ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnYyQgCupNZJysFqSBBKZSEAonWTfTDdSi1eg5Dntr8TYYAxHHMr", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjYBmtpN64W9XVVzwPBbzxPjhpzLRXGa3Ad1j33TmBTXBQzYo3t9", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qk5ZK5hPqe8aT3Y8rUm9acVtiYVb4NVvjSxYz8X2ZnYmrRST9jAG", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qj4fUFuu5erSt4wGZdDwpsHTeaHBF95R2d74No6UyEDexbL55uQ6", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqjmZZfwwEcURkCkJAdzYwRYLCCd2nfStj9WeBgaPuJQWUUnYELY", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qreD12qGiV15hc4atyMzhkJZMhUitkTSvHnC7ykqQ73LRd2n6hir", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnFy1AybTWEH4kUbfzBCp2qwNm4QYY9oTusmK1eMjc937hVN4nEj", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrsRNLSYiibc6heSDrcrLrDpQQwwohNzBA6GWq2pjXX7wonoKQcZ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnjc8aTsVpUt1sdtbNbVM7rpb6Ncc8qB3diVuyi9EmoV4zrMmqs7", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjZJz2bKS1xvyr1gxXJYf3L2jR6SbQqVtLYqaHRdSKCtgWTviXyZ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkAjNryKkCNfMGWhzVbXhz6552FTvbLn3rBfJbGR9am6PJB1ycMn", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmF57X8f913Ssbzy3tcFEa5VbeTZ3gpeW1X65QDSc3sjS7pawxmb", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkHovb9w4seUbHirk1vDWwGnKJ3PS1Wfq682pUtuxB3i4P4Abdac", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qiWndZpeneCZJ7VnPq1HySarcyKUrFBCRpmE4CGehs5yMevvoDFQ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkygfkN7ChiiKoCw4UyQgfTVAAimPZsW3kvDadUYCKr9aaJ2L4SD", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qn9SKNgeYccDgx3x3bzg9JX1QEkmh9HRjaP7beDNr1shVhbZTCd6", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qm9NqZveW2j8E4hyVURXR8YG6sHLSkdUJE34RQzBezBd2RGygp6a", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qk4xpc9VntyzcZeoUj8sctG5byW8CoU4ESmTujCN9uq269uddFKh", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qiaec7hitGfTkQwbyLHRMXbuAYWkpRSQMdr5dGSgcbU46nFUwMTQ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qm3kkMdbN5qgvjv76FFrWyCzrhj7XLXaQN2CML6WdgVc2t14Ztve", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmfQm55JXErNXBMj4TxjtRqH1uSqRcJXmxhGhLEJzRpVpLHRmdST", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnHvKVnq8x5LRXLcipSiHCFykWNWJK9sfLtrCRLKJ5814VoDYjVK", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjvgVKZCAAySYEkgGxAk7ftXCJ9Jxxw91bczJj6g28DUDdam6fWf", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qq96jjfDypA4mSZyyqhjWwYHwzozTHSwPxMT3yhrAL1QFuEHzzxx", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmhzs1MEzBRdv4NKhc439Giog8a64KbBzy5vF6GZ2iAjajeKGCjz", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpSkNa3RBhBfHGgH5wv11y9EeNV24XMsc9BJxsizsMBog2kN9U7a", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjy2UsfrVqSa1CaJdYbtzkWTNYhqiQkknSfEopNBedmXNhd3ECzA", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmNBqi9DCWWVUbbytoG6wAhZH2kvJoUDxsup8dNX7rjsJW9GUSZt", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmE8PgdK1TH9H11AczVaN9p6bRfbnAcdbvZ5yArjEG1CKam53VUN", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqJJbK3teaQAVvKNmNTPtGpaETWj1b14Qo7PZH3maq8VnL5spTPH", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qieBSb61n5dUSgmxN3SQyzYq4HmkTB1RWGTCJiBgbLSs4vjp1fAK", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrwQYto7DP9f5VZ1GHBzmu2T84LYUapYR1pM6664ZgkCJY8mPgfu", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkanfZ3tvSkKxrCR6JJGaCT994DXkKASNd2aGj9MZfqZvfs8tqYC", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnfwUTym997n41WXwFMQtvyL3h9dCj2RmZJn4s96VXkbZ3k9CqXr", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qr6HP4iPxTzv1C12PEPFyS9bvKac1AFWQ2QkVUmhEzyM9fte4Eqg", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrNDAT9LZDsNQ49ckXqa6KeRVBD9KfN6ffPYxbrKwbpyrsaHLy54", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qk14ECNTmYPcDrMiw2bmqQeUyQAVt3TyuzXDJYnGsx7jLnHg2kW1", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qq9nmtXUdh1mnDF2YKBMbZfja39NHG3dmYXW5Nj7cnzQYerDqwDT", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrt94fPVWZL1jyBNK4yyPYaJkbJEPXDDtS4KiiRvzZs1b4JoKEBM", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoxyhErJWabRP9hJSeAgqnjMiFoiH2nJqTk3UGxkrnVKAWhJFTiw", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjfgYtYPZCMs25NiiBVfv5XmfjxfMP3tDzeWtx5Xq8K1M36LsRrT", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpeHNBtFe6wbQ9DSh21rdXNkryeNTxQXfDZQcAtiMo3kRRCd4hRP", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qinQkviApBRqzc5qSMLhP42L916e3XjpcVQpjPfFUbq48fXE7E8H", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qm9DVxDCsvJiHEZt5YmLxPXRsuZ1cedioksRZmCv9kEphztWeUaP", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmzZwmkPKpUPXUrRGEjK8SdvLcsCbdvvSTTc9s2ABp3cNSB4bjNi", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrnrmfGJNmUFqWCoy19wPGo9zZKSTt1utoLLHjgUobJsq7LScyWF", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoGe3Nak2zStTG5iDtPHF4vQSPFSqc8aqFjhV7MFfYf2c9MSJuLt", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrCS6exa2nkrudxo5jNQACDNauhdGeiVRrkfkYjjre75Dv4NGiS3", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqo4UZXahF7Wg9YzCvfyDRSgEQwSEVDBJdN9Q4iGK4WHHgKo4rLd", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpwroqVQxGWqbkoY76DyJxSX7w1G6RJgPBsvBsv2vWno5Pdcv58u", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoi1qPvsaNXFRXQMa61V5nVcrEe7Utz2MK5vz3K6QqqrXEPba6Fo", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnDHhMZ6AQwWQBxQhzuoZQuKKhUGWs2TjJCLnjq39aUBYdnZQzJT", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjUWpvqSFdRDPVGv8dKbbXG9VrPYGnWBB8Rwf5kjpM1LfAr1M7Fx", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrEDCW4qCm8mcc5T1obgeKgyUk8yeGziySDUeFoo8ZceiJz9Mwiv", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qohbFDTcnsd9Ykh4uEpsb6kg6Usdj1QNC1ic6kR48xzcVYwQxMhr", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmGabAkLNEcu4GM7623NFkfNZsU5mZTd3wd5LF21hzE5214sY64T", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qovpiC7R3PjkWnDaPREbhKFonZ2hCBLnhQ6kUyzPY6aFe38wVncJ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrzr1njpK3QMgH3zugEgGdBn6ptQeGGbY5zRaZpQocJMf2ajH5cH", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqpzp1NZRRzPuUqL77GnBijPmkW2GgBLFEPDygadMUzjn8uqpnMw", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpy1eJDRWRDMe4tHUoo88GmspPY5APCJgMtgpC5bYKiETt3hK9X5", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmKVwY5YdwRtgc93PhyKiu8CMPJwvZhy7FnMNXJ4r39Esty8rDFP", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmKCMvDag86gqJ6prn3LrouK9pgvdMHCKKjQpCTcSkVCxCXWMpkw", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qn81LuTCG2eFFvmJ6SpkAzLWxhVfX6Ess76tAr3cERUgpHnAjZbb", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoZg8msS7c5ZZMULdKgbUkpM7Y42WrPXELGPh4uWGQX4LKkQoxMH", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qn6Uuh8MoB9Uik6A5ZB8gXapp9a4dpVev6Xqigg3SFAGj8gbKCQM", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjpP9kbwRVGtCvqNfWhG6ahahLQ5hr6Kv6jLhx2vRR9BzovjTa79", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qiTqwLK1HnheTJtpmYqvRcaLbSLHYAnVrmxczcf4et85ktQeZ5pQ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qp18sJJyCPAxnvtTqJ4MRznXt2qGDZ3KesEwjuGTdBdMN6VpyqYu", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qn2k2ZmST1xSaWoFWmwY7ajft44fpzV33GyXEsvSdFuMrJyLBkCk", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkAHY3dBZKKN1JhNq9iVdJo56wvEqAjReEyA1EpVbSRog5wdXnC4", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpY256zHeLxxW5eE8t4K5kRXBvNW8ZLiD1piu9WNSR6mSRhgsnTX", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoSpXw5VzhR2tKKaoSMhV5tQrLmUpMePPQdTyQ5yMi5Kj6rXNSxc", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkrYotmyG3YvfAjPMeruNz3n6QTPiGYWe97L93XeeVkVngnXSKPF", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkhLMzt29g5Q8tihFhVE1uE6Rwiw8S7yvmKmmYfJK6Xh2R3RdfG6", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpr27EsWZxxGbp54vqFQBeHq2BwUZgFp9KS2P4y91SffdgGN3RGC", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmonFDqvox2e2L3yNr3VTQtH4uV6uyfH2D7Gtj6qgnmbVobFoHAj", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmat79fPJckkActJSiYsku9hGak8hkasWxniipgVJdSnQZd5LXQr", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qn7byCXwgUzVqvoHzur42zenWaLHQ5i5jtRoxsYmueu71aTkqvXC", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpeeZXTM2Jz3pSQGSWezvRevAGGoeAfrS7GAhgTmzT3rzfhGEjTb", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qj4zaYyaoH9ptms5Nx9VsSzovuXAWRVeRhohzaVtbNg6CS9PG2U1", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnpLRs981UP2RTiouRzTLasBzpJiaChdt2APFwdLGfuwttHjXqCU", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qobxhD1utJyViZ5RJf3PgQKKR78wfoi67zQwSLTz7nYZ1rgesYm6", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjjYCNDokTttCFfL7LnqjVC8puBJivEbh3jUtqTsCQwAQdeLSWni", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmQ9w9nJU5idem5kM3FoBfYWRoQTKGrmB6CZM3iPXaXDcnaYHA19", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qj8CYt2hCdi8ezYvJTUAxHh3K8QHjP6zTR98snrLEtGUc6vQ4LTm", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnjt4jZGRZEdsUq1fxXZAVfpTmzHuXwyAu9X84zhUxKaip1ZVJDS", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqN6UtKun9YTxV6Y89tZksjpHNSAAD9n5pD3oRCNb1mrb5gm2iZ5", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qiivgNbpSi7KoEEAM2LNTRr2MLmeUybAPpdP6poTAmA8bXiU2Y2r", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrSu7XuSLGKbEQG5CdQL25jxa6zcPfFxfBquhRZ1dL7k95GW6LdY", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoVdqworFfysGTbUFiFGrZjmWNH2bTCLhTXhXvo12YxEcoW8scXQ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qn1U3MbZigx1ZEzjNUXUB2gyMynUwYpj9fhjmRCNMzSe8iyf2nUX", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnLAkfaLTEq489i2VXRTo9etUTTtK7yvm8Um52eWTYDJ4otydxn2", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqYSPuw2dbhbWiW7ajEYU5S2ECgxdngo5Why51roQqHYCpdJK31c", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qivHKs7rqfMFp5AgocrbC4jgQzSj6JN7ciipptc65bX6QavHJbaF", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qie1PBkMTD2QPSBX3G4C7DeHQ1XAPFgWuDqoQSGAst2iJZMTgied", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpwUo3SqFypFeU18HUnsf2j8UdUAQGVMocU61h1bfDWH7ZHWZJ9Z", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrbMG5gG8Vv4Pra2jYS8Xrw2C9HAHs9qRiYTUCg9txMVRW3CbYdV", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjbyK3VV5nnx4wAv7Av6sYivoiVx4kq6664vB48tqCMJtAzYf5jv", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkMEVE7UGx9GkdNLfaBtvfEFju4dNmrGUUN7uFaMH4yadjcgzv21", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjciW51wrB5i7JemKfzwreJW8xCBPmyGeqtXEwTxWAEutoCkfbBs", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qiz5a18dfaCPciq2XfURZiS1MSie5pfijyiDgwcMZQ2zS7wWghk6", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjNVdqFQrucrgXWhu3uYUBDYFwDgaabKgpSf2LoQr49fv8wyED1e", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqGkwMquRBDP71uvn8xYAATb56TSc5XZJmE26kLrZktd7vSa19Ek", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmoLujqTwz1kAJSEu4WZGfi1UrEwFymUqD7b8foApasGbAxib3hU", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qohdLfUE54MVihyKgAazzEXU2HzHik1xRG9SGYiiEDYtmiGfNSW1", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qidFgWQpWoZxZ219gWMCPykWADxa4gZMXt4FH7Lc3NjCH7imkkb9", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpFEMxeygEsqNjCqYEffhbmKHJ9H9A3nvz8tpYv4Wt7vMzHNtpy9", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrNXJKiqwE9ZhgnDVEfvNQrdKboAmbrU3LnbcAeAaa97Kiyw5tAC", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnADpxppyHNhnp5uP2sVWzMq2TnEi5udEiDHc47NgH3V1qvcJu28", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqhMGQrczhvn2hkZMtbmHkT944D54nokDNYpRQzAreLWDDdGdhiB", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qksBiCSg2BhG2QT2samg9C4DGp4qPd4bkFEN1ucnAaD8kvgjP9AM", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrFfCai7BxpHt6wdHvhaXF77PgfLG5cSD5sWKretMED1LRGgxPj9", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qo8oLza8eKMh22Rfh8US497VSRe8gsSACBAo7HztAGVNuB8LGqEM", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoZk8VgjFMmqf1nWBEPrChzWokr2HS6wtNbnjTSiKPbNDfPBX4cs", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmMnwGhvivQrRq23r1YYdnaR86HfceX7U3NHbr334WZZa3fnmRDi", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqo9dZQzxuZvJNVQZoZfgCHaQaNfcgC3fEFQbf6hKpESwJfQ6gux", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrYAuGDfLfXGLjU96Th2AiQF4yUmpEbMFeyYtEdzDp13A18e3CyZ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qiuq7DfpnvemgbCqQj5PL5e5P5yjvgyn7NhmTAxCkYMQGGRMH3Xx", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qq2Hz7TQb4oz3wcoWNSphJugXgkGnn1AhvrPFNgBp4wVcCNNM6Wf", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnBej2Fw1qGTGuTy8aDygBk22cXM5L5bQsZ8zk4CYBj9gxi3cphu", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmYtNJ9gNM9tB3RHAdMVPgk4ytqTYL7gUs48EepxmEg45v78oPS1", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjsXXMyWbe9X1BATziXgxhSE139ZJdJq8JoPKp2ssopMMZKoRssa", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qit9Mf6Xh7sTeq67CRRZ5GBsLEnK2NviG7ZJ5VBxKLp2kkPNC25m", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnbfKZpEiZ1rEHvhZxNgRMtXeTt1VCVfVaEyi2qr7U1VNGjAAgDn", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpFjY9A1jnWL5YNFophLSy8wEoUgAEiMxYuCExgq9Zb7bhwdzd5q", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoEehexj6v5Kusvf2nS7BkcqD6GAMZmRCPzsJEtVcgVxCVDu7zuk", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkc2ZpQ2fuN5keR7XojPKua2KCXbCxPchAEGQtGzjzw2uHYb5az3", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqHcTCi1MZNBaiaoTznUCL4uzJGeLgYgK9UaRngBgGZPz7fgdV4e", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoe8kMsTnnwPZyxokSTzUTUJSe5p6CaKG53HFTFJAMo2KXACmcsX", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qm9W43ENdDhvDmAQoDS9kxaZiKfH7UrDgn1atpQBgitRkZtrbCDb", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpYm9UDFxkJpnU1vpDaJuPMtsBb8ouv2RgtXkqeFqpHcHm6ZEpF3", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qon77Zt4XdgK5bsBjs1VaUDiTCZDd5szvK2vZZ24bupmEsB8gBao", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkSsuGSZsSMEaCX4mEhkpwvpuGGKsF1rbPScK7bzqE7Yj4grCx16", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qij2WKWXdATnY1aSWvrbQEJs4vcvw7Hjjjytxr4i5zyPGK8piZdP", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrdExq17DQ3oYq3ZX5KS7jgTzDTuss7NzrMGheDFo4YhkZcivVbf", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjX6NnSwjQzFK9pMFi4cjUaGqieryZiQYzT1JiLnc64wiqpZcqx7", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpfTwJxKWaX1MDaGqR73CuLJwqRzXgMTLptZbXA1GXYXyjDGQUUP", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qq2NNzzr9Ba69WaQj6FqAtbiy1gBoZvWoekVvRwi81ZsJvSoox28", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qq1ZPBDVk4q8RnDNdrpQ3HD4FJqRhJV9v3LiT8yBXFoU4CjxhnmZ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnhwNzArcm5tsWjFv6KJBjU4ZvKQqLR78V9UWrM4kKCsUVbipRy8", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpMe3X57QnBGgCH1r2XvkdWJR1U3DxHgWfgak4uKtnyRqP5vRSWy", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjdjtCoSnkD7V4e8DsKwqwSKG29GqUZq9F2Xd5d2ebqXwRpny31U", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmdye5MPGnyDV1qa2mLNM7GP4JS8gepbL4Yz9jcaN9L4WPtc7JLo", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqG8bdPcyNNLCDZaijwUQWAzqQLeBWwVXZeAWgsoRWTBFf8r2GCT", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrD7Qrqr7TwXbAvLNZjvK9sNBxmZuxXERzU54EZUm31wWqyqTvnH", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrz4aUKpQ6ifadxNWYcsHqtY2wi5W9E6uWzSidfJTLqCFbyLeV6T", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpAJJjbh3DsAtM9TJM8HfdnLngYCW38daEf7kE4kDyW63YngYdbK", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmgnDhu8b294AuZbMFsU1ApPrHep9FmLwvYU4W4LXyU1sakgnRvC", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qohQfvAGjM49FjW1epUh3CB1XumCvcxUjPTdvf6TFxu1Px2SpBLL", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkL3rTXGfeAKHj3THqS99PnfgFzhis1qMtrZU3W1CTUBtbCc2X5w", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmHfkvpc4FCrrsvv4N5FSYpwxKSnVEJX4FL9o8ALS8jzarKrHWSm", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjDSzDL1qbGEwoiznUXyHwv3nTae6LphaAQcvE3R8HtueKEBqPuS", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmHSJRpNRvFC9vi3CDUramRJ8uRu66Z42Ye23TAJakGQ79oEHN4A", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qq7H8JEjbiMoRDPz1iDLGqe7NnuMLhCNBh1qPoV9e9UyE8ntB3rP", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrh48Uz7Ry6uxnizraHeAK2XYKRSxHnb1Hi8Wk5S2NrYVTY87xsf", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qj9JDwh1TgnfoXkHMbw3DYb8iwVvSBMnbCxGZBiJcNu3d8wf5UpG", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqzaPt1UBGoKssRoaQW23qFZQ5iFj6QZUHmnZrhj7eEqEkfKDifb", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjJjqmwP9woaWDUgXihq4FW1Ez9JNjGKRPrzq7cYPkjhwhjbnR34", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qof1LUXRu1Fmtkn6ZspUiSFKAmG8nZYVnXqxDs8NvBgFrgnkQ5m5", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qk4gTFBCsMVd7VN2rW72tUGbeBWCCQ18VCQWJuSTygwyFUDrjmSG", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpXD4p6vDyYc8vgaLq9287sjfGyvJtfU1ob23qq7AC9Jx61UgAiw", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjFCix89CQ5kfCmEahZboYvnK93GMY6jCJcU2o2vnQd3ZdmBgi5Q", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qiXFLdb4RFG4u6aGT1xfMhpV7zk2Wy7PNmbDYboYAwSbdpZhTkQ7", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qq2ELbm1anE3Qi6dtvkhx6fqpr59DZhmQrPqynQtwswUhWDJUh2v", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnQGrdvz4gJyVMb9uAhatg4a7Ntog3awFUnbuoqVJpRmXJth6w2o", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqoWutZm3LcPAgeheBXw2nrYs445T7GUoNrXGtdP9MhqmDwUzJW2", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqCJdWh2bj2PqyVX2hcM5gDaoz3LtTu5Zcs6dB2eTsofF5BEbjpa", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqXeTFFs5b5yyfjqn8JC6JFxHBMYhizNiGhGYci6BMTBmwtvyLTb", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmq2K7gN6JVKghEFLE7A1c5mvLfPhRdx298fEB6EDFQcBBvL6YqU", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqZGQcL8kPrgfW5hgH8ov1Tj1hvBPRmryBnoQpKLSUMubC1GoEmu", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqagneJyv9iSHWD7dfSTmngkrEm3YuxkwYfp41X8VjU1fFjbyFxa", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnNLoi19v4bLc7RKhTZo1actyksj6wgy7jJkddiezd9BaDReK9ap", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnYPSg9PEwjJW1y5goGKEUPcitPEfc7THseuxMNEYsSLqvimG2TQ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qirtpBNxfjmUY5jUfUF8jdeB9S3r7MKdnyiinPauodk4DsNDM8LP", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmbg4LrmsfbECaBCkejxcti4u4xDCN5kR39ZxZpgDGdTXnzn2awU", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnuw7EM8Bcw5MqJZ6BYGGW7izwQGf6hcD82B2v2GqrPppRVyPTqP", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoWK4pSx6L9DACiD4CzArFD872suvBdhtfwP4R1WvrC7MaD8roUo", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrEWjBDVcqtb5bQt9Py2KdwQEXo3UWSpsyMtXURSPTnxyXKvLtfc", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoVmJRkQAdxEkKBJpuAHXjfgrE7fajvt4PdkkPPfZwDXn7CVHKw6", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrWfXm6wPXf3AbbPqgksoG8aQj6zEb6n1pkNMUdZzcfiBLEXsHS7", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qn79sCKGwqJ8pgGmFHTi4jNNjwnKvUtvPRj3fXugxFy6c9vh9Mb4", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpXuKSaaT8QQwf5RBV4BrrAxL3D5Krpeqfu9t7wzsBJTbLjaQ2Bz", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoDa9Zoqtpi3VKPXcJpC36u87RheDhbM6YHzRNQd4FriYsMDm4Qy", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qp14V6Q2kJoyWJNnuFX2KL6tJYK7oAG9rrZNiyED7qUj4sKQ3Deu", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoyVUrXoaCw1egFyNs4XU6gws6vu21Sg3qrtPdDnzHDg4835eDbg", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjbpqr5qfvScBYP5xF3GwTNEgnfW5M3B3i9buboqXuXx6JHy7R8g", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpjV2qSDqjt6QmHQZQK4xFqyeaLcMmg2TFKAgrCsA6McTNzbaYBD", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qr9dbykCGjvgrCenebo7qcrhkeTi5pvh83iGzbZ92dUrZQvYj5cm", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrYi4MihhUGi79JqWXr8dncUUp3FpcZDfZZo1iwYUj3uD12FWuqr", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qp6qLruhBHHt2GxJhxZnsf4uyx3sbU93rZb5PL6xWivRceGznrGe", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qp1As8yRg2o1cgPJpLbvDrLLMfKF1HxXsL1zTc3532gydEGkaVT9", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnDjFPo1PvdWGJbeTByRndPu5P57eVNrpdpHdHtf2VhicKTkWbyJ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qouXrduCiZQC3ZgbGbTdnDPeKqvqfL9r54SqrYxQbj3KhDuEpzDQ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoeC7RmKNXz3n872j86tEK9Dy2vAscD5fswA9EghDkn2CiZsvVrY", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnMzoaKiLJLSzC2X35PmXRCrngz6KedorpbuVFV7ciSWmdfiJTJ5", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnTvPfc43PLiUM9bhN9Y57MESnRxNrKwpwidEoffHF6AU2W5wjxt", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnpL9okHS4XhunF4Jk4x6E6qCYZS5GhpKzYqqnkF1by4KUtcMjZd", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmAZwxEvA2tPojjKPhDFhMDbkP6g2XnG65gToWGbJqTG2yifmVP3", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpd98y9FnGZevBmNscYDbCw53n4TM69WLAM6sEygx8zPQiCc3AZt", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qiuCmvHt7nawvRYUzh98qqBYhbXMkPB9AjDL2bUJSm5ncCnj6Jxa", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkJJvP1cqZqdSBASqkxRLDGBZ8igj13sDiW28VuT5PuX55yMxyjy", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkFNLfdxdfw2qv7gDVafJQkW1Rw5UMAGh5fGDpuVGVgZXXBf1zcV", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qnBHyzsH26CUR7uNS7VuEsykH1p6NUfBBbCqP4YBns8ciwy299qV", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qky2JBkyqN2sQtY1m2nMiLujv398xRV2uSywYnMsfVgywcgmChja", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qqjkRnsaWXeTUVKY5q3bwaHseZhGiXswvNskteZG9CySoBVM3aRu", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpHihsHfnkiXqKZDhVPQ3jHUQptSk94YHomKVrPoN2HxbYdNquQr", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpZq7N4NKyxbCd6zzEgbhahZ4htoN3RGbzZwbVEiXt2VZSoWfZeq", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrqZeYjM14Hp3Wd7UBcMWHQWwL8iHq6FUX4H3zNn6EytYCzVjS1B", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpC6oAhefwKnHScYa9sUp4rndKtAEDdzaw6deGrvNfyZxVtm8rma", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpHEUHmhDPotLCnaw785xMf9sk5iekkM2ezd32Wh6reNDfJGvqLF", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qmCZFyePznewzjSFt73CbzGxqG18dCNGRLfvJgkekvPndoNcw8mm", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qr32AG9ggaNq7NEMpoiyvEARwpEP1CGGgaXTXLwKQocVoU9Na764", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qpMLLgs3G7tqqME8nH4K7Kb3VhBHtUr5Lw49iTQ5FbWcB6RHSbZm", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qq5ZmNJYsePRTRRYcVgq5eo2xTRuR3Zck54jvJ9WFYjritkYqTfd", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrHjFNdVtxb2XYaRL8NacXfxXhpJvBnmi4QpeoNcSdFBh7LnJiqM", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjDGY2p3tMMxgkUuYjG5ghBD7DyHoYWATasNuNWwxeygPjTSpJVB", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qikvYbYHkPtXDXqRUY6NEP3h1hsywTaRHZxxRfgDDL5rgdisJVAq", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qq4w4VB5PHYw1BdnFMSEHjP8hAfP3hkRSUSTjrH85tBKmeVKmRmH", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qreTPddJig3dtKqR5vTQT5dLsvhd6HSrNzkS6EkHxoqNszzUEQrJ", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qrkbgC3Pqq7kqXS9zoDSJehb6k3SsTPx9zZjiVRZs8qMowNAwJPE", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qkKr2psmUp1h5pdtySXw5J7paAQ5fy4ZJt2Ghxc9mjbWcjg8jX99", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qs2ZhoxKtaRa1UsHLkz549Te8CdsjV2yF1NFZ626pMUKkTynRk3N", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjwFPG7Bz8F64xafSwutRj6xTgznYCxFGXPFBwr3tLAX68G3sder", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qjZ8WMAfEZvJnhE3t6uSni4cDgm98LCpZG4qGwMWMWF6KNjJsRXR", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpB2LKs8Uwv6Wh7M5MCX1AHLateu52J7o6E4CcVWbeZsczXnWmqH", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmwMEUgcsa3TcMEGQNJjKPYv1EG6fYk8b1dT8xGWQF5AvfQzRUxJ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qruCS2BpxRjTkrJXkxvUD3gmRQmN7Yk2zhrB8GyCbgEBteicFcQM", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrrB9yJFttFwe1hdAMbvVgXGtMzjQGVsybJuqktbCFZ1JXxfsnXM", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoZ1h2hyM2HajQJr1dvWdQzwL4kQbYCMeXLJLTxhmiQ9DhwC1d2f", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmaeBET9PUDKTVDRT6KphucsFMQr6GVM3MD9oANvj528zJMBmJsE", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qre7sPh3RergJLSK1Tf1y4FJHMHkfjyo8TzUbCuoEGaRTsWFBmZi", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpkiqGopa8jW4cTUosbMSBL1jZW6mXUDaFe5C6KD73eNzaaWzkpD", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpfESzxi5NyurZ2Pbo3DEXu5uL7mFc9prSas1jmUARsze1N5KCH1", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrrHaTHnA61bJLvsipB318JuWksyjyCPHGbjZAjc31LHXFVqxVtF", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoeWKnFrEZwtghWpjQfEdLqFMbXJ7rzvASjteipqJcoNGVT2w9iD", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqppsTwiGXNkTN8nnTfL2XCDyC5RMrwCKvt875bhmRsF5mGzhNs5", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqwrcRpuUTJ4RJDy3pArexeGK6FhysBxGDCiVg1yV3TKjgCNYyf2", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjsb4HG4ScdRtSBf8WHk3qjvyRUBNYzmdYQxF1z3JREWmncTbRTF", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqPLgyt4tpN8u4nNpUxRLbBdm5ST7PuRL9iaCdtnWHy5EeJ1iab7", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjAtuDB1jo5JjDYqtF7NYHwMoYSgQjpddG4vAet4EtZitXL4J8Ur", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkwjNUB3AMCJH8B3C7bcG5QzY3gfB7xk2thvn9q7CgRivN87kwzG", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnWMF8tvbDjy8dXVfFZiTXfJ6ncSnsdDLuD9PmKqpPjXBWJzY9Zg", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qohJBQBdTKdHdGjiQ3qZEGWNtx5GdJ2QrL9YZqJscvWUxM68GEtL", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnR6dnzpyyXiNyKLyGXso41vSiW4YZtMmasDR9x1g14h813foNo1", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qix3u41arEwnHtSoLAHykgT9xtA4NzgxFkCzq5tFQaPxDNc87NTN", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrSTP5SckcG2GC4kDcH25i8neftHa5RVznsHQ9BZX2MCJMFQX3zx", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrEWk7ihqyTt9rP4fJeydrPYzfJnVZoyiW9Br3GGAphyr1YDjRok", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjrN51TAcKmKTvS5FRDUNf6aq7x3i7UJgRJdFSiudL3WGiuQtoRW", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qibsKeyYmUToKMGT8pQEPZ6kmgxt9eFooDJnJPJZEGzeykpPfvMd", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqPeuNcEsHnnd5x4BmUwuqchxzQeuRFLUG229BpRXABk7ucrtPLh", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qopmT3c6Py9N7VxcTQ5bgYBgxkNaYxoiFDqQP6aMPWXyCaUhLdyG", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoHZwzjQASqy2WeuroGXXQf5AqvrKu244yFbphodAjXQFHBznmpA", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qk4wDwKGK4pFZc5iTLo4f9BrbwTMkpRGd7wQ9hWSyFHtuM6h9kZt", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qigGWzYKwA4UipPp2kaQfk46uimsCj9HCFBBvMAeM8xks2d8PaiW", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qiaf2FL8HT8p37TgbjZrViUdEVX3F5342CuqFr9FXq6nYcfxruRg", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqVfRo7v1ZV61owirZevVLKBYVkJ53ctBWMjxcuRoZd6uizFJd5g", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmB2ffEmriaqpHsugHLJ3sQWY4NNjDUdgfdPEDpxXbRtfsRQkny2", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkUvkcs1sittWV1s8q5QDtiNNHNohHq1EbNjih4dh354T7xpFdFB", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qj88TBxm2ttkGBLB3XUGUJ6S7pth1gP1ULCqx4xj8sWa9vtqUP9s", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkEY2rZ9MZJs4qbtbjdB5sz7jAfvAr4qykySidVMBh3dTvhiDMRW", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmt4TSoPJjdm6QqPw8BznFNZTnjDipiDBRtrxAdTgqTfyiLwWUH7", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjaUkky3fY8KDX1TPYxJV1X4H6k9ypLjuBbvqJ4yGzZYsLHEtwq4", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrV968UCB2zg5JKNNmpcEak1XkiHX1bLG1vuE8uRy5NwuebeZ3Jw", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoMwNEbxvjHr93naedWSvfXHc8LtQE5fKvrXBCMZN4mjYTQVekzg", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qma7SMNooFYnzQ67KyxFwKkfZbnkedNoS6JU5FwiR4og1KmouJP4", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpf9gdMDk5DSmPs73LnQ6cEZ1skGBoPdt26Z2ZLwNPZGySYp2KGM", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqcEG2wjpGxpjoAZy36Q1T7UuqFYiNXsfeci5ftXkZ4uNaejAGAM", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qiayN53rBYbvdNuS8qcA8gdod8Ra6ex75KVAFzViSAxhr3SB572s", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnNN8uX9RS3PHQ34ZsB2YDVscmFYGNsoQ12FxQLvB4JUZDtDAp83", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qncFk9khLXeht2uh9o9eoWsaqcbCUXKo4TrdRMWCV1T1HjDuQ81p", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrREtyMNdKL9sTYcVEN67aJYFRPDMuvaeeRzxcyH5gQcFfUXbFQ8", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmUH45fbCHVsusE452u2G28hRP8ae8KAUbTNjQ1kcYH5bKr72H83", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjDf2wdKuVY68hQsYy6nun5LJnYNd7gTiAVBD2HW7S4YGDuxw2Mx", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjBzJExHfF3pcP84dZiZfDeT5Bfo6ATEF2e5et1Bc2GpeEqZhQVb", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnbjyXajqkAXfPdwn2iBGDv6RC1BGHJpx3xPQGqeVWiXvayzaSEL", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqtF8uPCxMJEpia2yJgMJikmksac1VEftpJDRBtnuEyuY1WPGq4n", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqJavn8Uce75h9tbiU2xzWcdVdxeNn7GjFxao8cy8PdoFbkhRVov", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkiCyupn1GBmqX6cqry4zRJxy2FugtN98jSDdZw71pLKf8jTXSje", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmSUrb9WRWNkpBn2GvMxXhrJdg5MhDG6GEeZZ8V7ArpUHeFfFNQR", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qiYkftZv66dtSGjcCUa28oLAZAPeuGQiJ7F3EzeGBiX8eSTMR9cp", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrGnD8kPvULRpybat1To4yUe5AnBRdHnTXegfkJo3BG46NfoCTV9", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkCEGLu5DhCUcJz1BTC3BSCPAsMSVUeGXnbNxFywVaaCKxUEpJHM", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkUuF4U2crL6468DafvKRXZoLiiaq3JMyavZjoRVW2VN7dmtETuH", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qn53SMF98s28WPjtTnHoHCSZY7CGsfJAJxebnTw4tjFGN6mAptGi", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkRcJeHRasB49vScmaXS2oPJdLCrtXGEDNnmp3LHZW7D3un76sVL", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpqg7C7Xc5LVyYMyjWuQMsgqwbLeSK8YMpv3E2wz5NNEvubwxYfU", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrdx55P4WEF9T1Azs7MzqtGAVyGrvwyRb8ifcEBPNK7Qk1aRPFUu", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkke82KnBEZiy9WEwn87AvzJNRbUgGs8LwUqB9VnRcfpcT5ZPbA4", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoPGsfd4RsgHeN3obeQSCa12DVYwehYiyng69EpDT6yZPV7HNUSL", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpa9zi1ivAXgmPQo4VDMoDy9x8CByZzQjvFkon6JJKAtbBxjSfNW", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qiz8yrKqxhswVCsZ2MsE2KsUeYkh3aEhEZ427Sw7ABh88K3S9YLx", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpnojGXWowGqvS9nA7aQtNtxjhug1dGVBbEQDhu15FeiHkkgG79b", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoAhctdv9UCFcgpCBcf7xARjbQH1x7KMmywjnBKDYX1NMTodkpjf", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnF4NH5bukKAikb2guwbQEe95GwYEDiDy3xRAei9ikp8XViZipdP", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmHgTBkSKmU2HNSLHJrnYmL42h1FrczbBbv6kDVh4hGZd5NXFRU7", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qntUxaRGuvnaV6tbZtJy7FpkCHVoBzPw8DVP8jURKfnmh61FFxn1", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrypfNyBLBrBoMsqqRvjgXV1G1CWTbGmKGkbVBJuiP7VH4fp5oCQ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnZQYtPhzFiKLbWfCreb34D9V8HyMfjzGTi6XM4C2Yq3XYvS2VX8", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkme3zD3xw6vqi2WB3bvpNhC8SUgmUpPtNrT5Hsegf4Ke8UwG59N", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrRbivYM5rbMfpDaELcmVjhAvvVYh4gyVgjfuPjiY3CAPzAEGS7C", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnNjr36gBiz7ojJTm3irb6HmtiKWh7HNWCPQpgGcea299totGWMA", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrLuCw5GZEH6igEURMHVZ8zEXKhQFxQPHJsefPTuEmgq1tr8ztvz", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjCmPdvmbzykSkrtYa7bFmeoLu3bAawxjErvTb5WVcDS84M5ZEb8", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkznAgfEZ79LdcrHfB2VWL3b5wdE6WK9bWUU1qVgU7bPTiV6gdtr", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjs1nDzWTyqbCRo6xMh7yKD8XQbDkLCWoSDk9NnkzHscfPLm73N3", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qobPLcC5tK2QfteaVrBGetFxFX1kcGjo6otY8hPM5cmyrWrGG7B7", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjR63KrADefkS9Ff892xQhwR5G8yTBU8ZNXGgXwDtej3yjDLFN8Q", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqeBMiGBxBCmgRiBDwmEMCnX4YtJSjY6UZYL8hQrQei3iqy2pjxA", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qp4wVcjeVNXsPKqKix8M3YuSHzFT7rvd58VYvCW11rDRtifCu4Vj", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjykoNzk94X1bJcwynj7m3jS9PwaBPPdkAreNmQgANDaWEhizq9W", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmZa9nCmb5c8YmEkXZyjqHjmLzfmkdXSrFjAAgTPJj2qzjsqMMiX", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qo59gM69tTW4hbVxSLud476TpyzBLXVYfgK1wPbyXeAHkVgoMcfj", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjD8e2wyNSj9KAYUUXPhLmSVdhXuRQ4LvRiL3PtV2VAEtdUKWwGw", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qig6e36ii5FoWKJQvScsvhz3usB4Qx9B23Ywq94rUBniHxipiNod", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoKCLxqZAaUaGM35QT3pis8PkyzJojZsYwwDU5LB1yxsHKQWzag5", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qq5wD6ncsRPoeEYnDwpCWomcfFxx5xf6HiixH1o3x2zZjErag2tV", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmgppZ1azczmQYfLHopMjmXCWaSq9s7SjHcwKCYwqay9F46edLe1", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpqTjbvDpEGsKhEgsSjwrNnPdEMnDvGCLeKDZaTW2dF968AieReK", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qma6oJWcgCusmoRnmUNGetNKGnTu83D1XQrWYYKqj9rpgrLwMzvE", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qonPsGH8tWdrusCMFsSLn814JhoyExuRZr38QETV875rAwiM7BUP", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qruNYafiS565RKkCyu6iQ1g4sdyKGxg4FS32gwYesyxd8czpjcou", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjDGgbK7ivGdT9v1ckCsnNRxoBBWgtDN8DdqkzeMdwThbzCCjQNU", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qixTCJrMWHf3QFnFTV3q48gfqQuDDoJj8zrWLEPyPVX8CDCwnBd3", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjANCqHZQJnXocT2afWwKDNpRGhVqxm18cJNNrtuKLxYYZfHotuY", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qk2esVGhxS1gZsAE2SEkuYUk6iajh8PB94oFNTiTbCN1zXxMe294", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrMHFbTNa6F2qFifsaohDDz9BeKc7Lgr3BFDE17i4zXUFxK8hvvf", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpNxX31tZa5MdUWXv4heHEh17abZe7wejGmvgRA5mTuk3H4tS9iB", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpcLMoubxtXw8XYh5dRFM6tpPT5FFVvqxEwcCL9YMibo9r9T2Axi", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrsAw8RSAuiLzvY9tBZhR4WrKvdpsFpNN5MgmuEhkBw7aYxdWEuc", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qp3uPRJLLJ3iz6pXknrV1m5TQYRQ3rymCeZZ5QjWEMH7jJizcTZV", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qihMXxNArxSN21w4X6BFttVoRcqbrgdBJmg1ayDActBqZRz8cq6o", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjUBqRCbKMuF8xU5kujW7GVs5gSYUL3Mt1wm8x83sidKtjoftPFd", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qr8hBW3pyGG56hxjQJrq33wJQLewTqci4mHvrTEvBSE13t7ywo4o", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoj9R8wsWsvoWgagvw6mtv2355AmVBKgxvEDjVGFeeJLfh5aAtHR", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qooqBkN7EihgWP3hx83StVKZgNYvRGjHufUaszMm5gbSF7JSbRnp", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnSETSRSbfWBxaiWfr3REiN4UDQqj2YnfGUNJEqW3BxBKCtU2FW2", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoppm1SrGhxwiLX9eTZ5eZwjMJkJpDSvtqycbWP5MPqNXhpJz3BB", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmBrrbkBtbTDfggGThjUcPgES9hPiPtcY3RknuXwHdeK8owxJ5Du", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmucQUR4o4WFAoqBcMmhLEZ2xjNjKzy4BPPudHjdhujs4DXqiFhj", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpaAabeEauVUax426ojiGiqYuobZmbrPHLGpUoLUk7A61xsgzXJC", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoX4nuA4cVqg6mMZzEAiS7RWNYYtYv6VzscRGEVGL6m61TJ29DnL", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpMwmhG2Wzhdfgdrs9TNe87gjToEqmU4E1nymbpfAW3RZNN92E3j", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnGY1gPyUie81yg4tvdEE8GqDebP38upFDs56eD3Wdp1oYX7zHTJ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnP5odpHs3hXHUwuNXHiRcNdynyZjPgysHgLmxyGwvqj1jUdU2Ve", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qp14qcP5NVcDJzXZPKkvUkFyJvDGwkjuDPAYZMqebM1FR7ZWQHEv", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkmoQ7eB3tJkaPz6YxMZHb6rTuAaWT35zMJgPrVxpacpYZxFbyTt", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpEm5JyL2JM497WCpb4BaGnAmguQpw2MyEKJisEezpsWhjGq1Lng", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnJPehUbjh24pokaoe9icGwdq9Y7XZNEWzxwihM74ESyKyVX8Ekn", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmPu5VTDXpkyUfzXAdytAYUrT5jGo6QCXe3xUyDswiZFnWNdh3oH", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoH3kACa5T2sJRvNdiKxfcDjHPA7igpGVg95tnxBTM19m2HpLZnK", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnaJA5vMnhLx5tH7mJ3yGK7Mt9sR6CBPUAXsduvxk9nPsR112utB", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qngHTj5kYBeMNTNFF21skgkqYFtXp2Yq3zftY6A9ft7CccR94up9", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqWJoXVw5Jw1hGxuPoybzzNX49be8NAoV5qTYh7kEufz59W9PoNJ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qiaE5qc44ohTDy6E1uv52NSFVbNyMT515ea8qMHJNFwJ9iL2rKtb", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmMQbMKJkKQL8vX5sz8WCc46pz4QeyT4GQoh6NDFeGvwT4CAxPZ2", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjd9JeHdLK3UFLork7zwd4hF7a9M1d3QTd8r4gQ1KWJgnkqx41Km", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qka69vV1w4nEtQQtq7xhgAApm8zaEf79dB21oBKDQKmRcTnr438q", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpR4ngwwFnkobWeJ7qwtUA8HbiBRC12TdRy44NpsWr4X87fHtKMU", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qksfJR2N72fChv77NKApFzK9EjD5dMoFjN5DDkBQYK6aTLfXiqMm", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqxjpQ7CwHMRrRs3RZbh53on4guukPHwLbGJa7anaGWrZZ4bGsVq", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qisdrWg1aze47qcScmp6NokB5mT8bSNXVCPys8i2hWgVNh9nJ2PQ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoLbWfNPE5zJpcBLkhSwhaXE9oM9vheBKP5NicdrDF7Ky9QA67Am", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnWk8PhF8iLZ6ebDMta6bozB9obTH74C4rjyUDqLJ91j5RVqYTgh", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpLKZnHHH8b6VPNTP7CZ6LzGH78oHencBt9q1LRJr1DBqzrFTaKj", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrt8HDJhRVFTtzCj8BzR3bVpDcnsREu17fJGVshZkMXCYkpz9EmW", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrDGfLtb3zVdFeuApa7SXeb2z8qvc7DEqy4LiU3AcCFiXmDoeusL", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmMBqeEzUMNFYg6o67F4fMhngwjrD66iKRkup3sRdyw4PSsrq2JV", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qiU81HTm6qutkMnQJ8K5d3SvN4kihopcyuWPB8dPdC6JDdSjHWGo", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpNFDHBL5QjyKzEkwPZXnEjVBKHNKk2o7RMSkEAKBFT9yDoY2TQj", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmMWUupJNWYdEnouKtgbBMd5VaZ9rCy9yut87RtNMjwzasBncQ1m", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrRAxRBA7XafLXbLD4a2utjMuouTpKZ3qJgZa23NWBnXoNVJ3Dk1", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrRFA54NAKqsJ95GD3VjYZjSbyTbihpyVgjHWESVZ5fQydpP2Wtw", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qk94t8nozvEjTy2eAkxAudoRMWKFTBtdjtdiEVXmatNgXiEvNKdN", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrsgBeeCGo3QwS3a2GhVi5d2fZ3YHZSZgpChZjYLBtrvLrznZ7X7", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qibj7H8bfnbJUviTULiypSiEP1QxkFocnKP5hTpKVtXdcy1FExiw", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnfJZvT9m45qpMRt5gqL8FdwidGwtzd6nWtJgJ9e3X5f8GtJcncH", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qng4dtmgNRSvuPZP4MQqaREeuMExYJ5hmjrXwyNnbeGYxBX5ojwi", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpK5ebyhTRBGAHMZdr2GnjaFYhUMtuCQ8jtZ3tMvGc8z8oB5axD2", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqoPmfdiZprCkvVPdeRTkGWdznAcdBN2oFKXmYC2mX52uPULQSVw", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkQgvvJe4TD5unTh7CuwLUVTJYqnXgKaUm47PFnMY6Pc2sHfDMdR", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qp8o2PNwxrkpFaYVvzEY1JhjdyM6MgariRXkvZN4jnm2YbpTSmRE", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmRTYSfKNkUfBoovWsA5YPnKkB612RegLfJTh1azamirb3ERXucG", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqCevEvR6RNpdcHSxtUKE6wGDg8hKqiwjhSpmVukeV9vRGwidsc2", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqX1ZeLkPTXTZEs1V9k9kqPPTQGb6KphxdastuKW5niGNSBqQnFT", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpUmHZp7MmcnwcM5QzmMbQK9u6B7iP6hWThT7qHkkBmDNeEPgEuR", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnR5bj63gR9kCsjkeJEnKkRbzA3NCpHtCKY8v9Xxhw7sSh1EuiDr", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpHpS5zDGM7tTeqWgTnEpsDi3zqfc3VHNES5zUni4WVs7ycwu2qF", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qp2dCz2oHg5hYh3hMmrz2J4MfhfwH2p53Lq4CVoTaY8yDxunV8Xc", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrzEg3Z2C7zm27TRvTRrD25YT1pDainmG8eiR4MFR3qfqG3qbdYP", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqNmk4fPFD97HHUReJR3Pz9RjfeB14Wpcv7H8Je7oaWed9sr69fc", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjqpYRwREWSc6GzGQgzDEXCFryibKvx7yHcDho9DAWFeji8bmxHC", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qq53dSup6oDMDjHue83po5yShThYq7KmpVuMdxdMGWnJbNgbXXpj", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkuC6r1mvzoTV5zWdmmPWUZtySsQ59z57UqGBCr11Du2MdEoxVR5", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjiFMYFRKTXbLLUXJgectdz9v22XrrYTL7a4EVf3jBPfcUjjEgys", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qiiE5BoUXg1rLLwboamG89BPMmYk64SC2796a3BusDqNWsB1wQPg", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrwkwhkuhqVREH12MX2zZh5e5QMLC6ZSx41qp6Mxv6YhtghVvGjH", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qq3pQZLaJM6hAzy9EBGVf6vQUJrs4o3bEoJkmaGABbf3rwHwZ8RW", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoSSBjqVGYxH8Sm635CrwqK9FaEEp842hWeuzRCVQ9678ktSVwQ6", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjXWCGwCiLRkbEU4c8pK2eSvfQ4PH5ZiUwEfwGZxzzJuDeuiXmEw", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qo5VBfj8nU1WJ8mH2MDCNNZmrzC1Viz3c1NNx4zgGjtWXaAk4iwV", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkSHMcAFG6RdtUtk6k2JJ6uE1Pmgf7gQXvwJ1roh75R7pMGRuno1", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qorAuKCFP5mvtwe8tN8NL2fQyxMAJTmCBr9MR96DUki4CKGP9JVC", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrYWB5EZZ5WL5EqYKX5stdVZN1ec5rr9yyJpU4PdEhia683rTHo7", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qk8rELhaZ1hBU6AB42RaSLkbrbuYFDxvoBgDxYCX486dD7ECJvFN", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpB1V2m72R3A8zS22oJS7NQe1JCqyFXtgxqukwyYYxC8jmvvYAEs", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qovY7rT1ZMprGbGJadCj34EmhKc4QnPpeiSYTTwy9N6TRCopjM7u", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjFKsSn2ZtSTT8W2kcc7iYw67uDQv2QCZrbXprEnNuY9uTB66Aq6", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmiGn7RoFVjefaHYpWCKeATKVWc6oEvgoQeggYakKDuRCuhYZrtn", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qo8AENZw3FjVnQjyWF1u7xYqL7jJoCqL134jyBxzpjkX91UHsuVK", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkQLq7dp7BzMUtZmGqtuBHxU8yL6Sx8YY5ZiR71ZaQs2byBhbVnf", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qiTQmSrrrRmf14isnKSdndGQsUT4GuYGbUjSk8Bhv9Z4JFuQg3YJ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpuLdMMQ8Y5Nyy3o1nRdkmxDf9BzpWLaQgvXUQtkKcJ2PU7VsF5M", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpDNfqCC9qhC4s1H1E7TG3yFTaiw296cwZrquLQxe9jeEwjDnv5r", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqYWzqpiyfSk5fVpmwt52EjNYtyNB1mfFQo8qJtjp3c5asb3NDpP", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qj1dMj7yrhxkw4iXPBSBnSRmuju4PjMY6myjoUvVPzsUSA2A6Eyw", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqwbd8odB8VQD5SNhFjnfzoNpsuUvRN7CbvUtNs9FGPcrYkKGCQx", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmF2y5GfkjSsY2mSV1tivwoWn8cpyjaSSahNBjxxLYgRJF1tpQLb", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqwvGsR7xd8EjJ2iErsBU23PDFxMEsuV9zTeTnY9jM3i5DJA5MBP", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqCQoL7GXP8DBm2md3MfFmazGJa6NyiAWXzDMYq7DfJXKWb6pNnH", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkpkAFxR2vKGdWGWwgTupPQBE9r9wVri4aoWbutxtKMNtBL9DRYB", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoMYva1WFdncBtCEC8taMLZcpRqut9xqQj8D3TitnkMc1ueB3ZQQ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qiv2ViuaSnSnsAuY6yCuhWwrEeBT6M8jTdbkMFiCk4jEUPQnJrZY", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqh1DQqerKmY7duPiDFjJeDL6sMfcn73R7UY95pQnftU5aJ1gwa8", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrGK2i99T6pFkztGgDsubz9U6htWH1xxJDgmEP12Ms6MLDPMdiwH", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqUmuRiQTopuvZnvb7D8ytui2FnfwjA2GqKQUjTg1My5gGoRZ33h", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmLvsUsGnqcuZxnH6dEaQJ774R5jFQKD4RoiTscMGkd1WuyWRMAK", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoRpCB7A2gyLuRKS5BBszKKkcA269gekDkdsk8JxvD4XPoEP9kqQ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qopsdjZBbnBKyv7KPMB6fbrXVJrBveX9FxBRqVe3xDHsNkxGuftA", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmbgPvUTiRBHqmRwuTKURuKbwFHb1XdUTQmPdExdMgDKpESsSBtF", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qivRnkLs8iRKWyeVMJoGfsBsDumyyPHFo24fKfQtqkQ8rujYETLF", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmsoVFFo4RjymJuuXPWsH19Gx39bR3YxCidrTDaQzSjrrg54eS9j", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qog1yD4wsqVMYDCpfhKXDjGHcThtasFBGnoNppCapmuZtw6jjhLZ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoZ61PDPEyGmRXQYW2qr8WDYBQeHpYuBmcXE6kbxJDLoQFBEiMrX", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qir9EAxZBTdwk9Mcm8qhjDrwPygDRUmmGvYmYk1YJ9DPPsDPpTtt", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjaEdFscfWjKYN5zbYQEgPv4PSEmNjbmbSkEXvW5BEgTRMRagG8u", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpiCoQqJWpoBPaDo8yTeHWnqtS5D3x5GAAb4Pj83PfthVDUKUhJp", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qp2ff8QnGbmJuPUaMDRdeZTzfKBfgwC9ftT4eiV6x3VpwUNxPgvi", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqhuNe5hnmUDsafmduraXMV9RVsqPMKqJueyrk9EobR3qSfPt2is", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qifrDKG1GBQJBSmXRPTVSWGCX9eAikrpFcyFy9MBBtR8Ws56vQEa", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpdGHYLXCeCkiLQCb2H3kf4mtzA6cojsDAMGoNxx9k1AkFbyJ3vg", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnVGL6fcfakeGoM3US3yaF2Gbrcya5zDCXf8vJXSnpU2y4E3NNau", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qovfgJ9DWdXsRsNtu6Dfoey5jwtEEEZpxJGFkCLV1gcZLAj3y5us", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnawpCaN7qgybxXvg6PAKxCn3trCs65syHhtxZ7couALftA5FFss", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnaKPcKDSUVvoiSfqgMM4DQbVP4o94GbkGZ17LGbnRn3aDMcCoEc", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmMpuBdARuknJQaJRYMyZ1kTm6ajQHXvWVW3xsyKjvriDEQez8gj", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qn7NEugfP6wX34bY72y3dHvNPG6MEnNmtsRsiGTS3JVQEoViDnD2", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qq8FxSTYUHdM4GoJLHukKC3eUyi4iSYhsbr7wNPLUTxGuNBXLLY7", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmG8DGt3wDx6PQdVw6N4hUBaJeu8giH19DufiR1NBwt4oFoFyfMR", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qirv4h6zmC2H7D35T86MrY2nMFy4wcSNsYx7NSqGCwLmppGVRjyb", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmD85sffMM6cMgwJ4NMJx4mzXmNXMZ5kPi9Nv5J2TuDcTXJjD4et", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmiMMetzuftvbCq2GXREAB9qRT8xKoef9SDxmQG2zM2WHqZ1tks5", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnX6KUaHM7ZnRCkvNu9pgMsUihYutyHSEcEAwhtDrGbgGvzL6cah", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qny8K8sUXHaP2CgKJ3KCgtU5BzTGWa9pViCvhx8YYXQbmtcj9iV4", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qj46invkTRAHoYUNX9WBvDnAuxxiVi1DyP27NNbpaSrq8314BwaH", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoDHsgEFjdr1NdJE8nD65daSAWe4MDo7NDJew7Sist4DjFyhoBZh", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqgzwCuWt5vcVnGXjjzzqqZVrsk3zZtKtEbvzshK7VnWofmrJQeH", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrmvvFbQL3kNHp8337YA9TNSdtXJprGqwrmvNVbni9vtrQbNk6kU", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qngyc7gKiPH1hmtjqPp66eqwoKKds66htb3JRKcyECgsmsZY8EZK", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqrtEGjXb19Zss36Pgb4y6fWJuZytFSTazd8u89C153YVUt1pAnj", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnKDufgeyKPKxBvLZYoWtGMhdDmrgF7aBPX6eSkbUeWudUNj1Bqr", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoUfLJQKfKNgMJX8HCo88YiyR3xbanodEU6BLZkkPmsYmL1XK4fZ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoXfkWgNqTYE6jG6X2Ht398WqTRRKnceqWP8fR3Ra9tsGXzYqCgc", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmRqpVqKGkhAvcricDLUCrZ5uUfnBYa2XE4JXmid8YMPJFoy83f8", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qr1EmRJUqjSWXveiNqTihoDiAs8xZhkmHNEkGpfNCPrCJnkWy78d", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrmH7Lt7rF2TNG2JzH64FE92gMgG65RVgYtBLugruW3sGPnTXpyr", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qn6HScsGvdQ26B2XWLEqqgi34ZoUGqsZjpVpn9Rthf5Ty2mMVUVL", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkuFT4x8N9kn1tGjEixUV7dmevTT2Yx5NazqqcvNBGouP9Eax9WX", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpFAc2o3revmQ6FShGs7eqiDun7y1bFUTrt73Xrf7XBqDSmAZFLT", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qr6hcjA4wNf7NArzmmw11DQ5PRnfxsALxHfcvmXYAHejvzmvgHti", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpLYVMbMmFJ6nswoZH1JA27nvqDrf3HG64PR8rtsbUMpbhwQeUUh", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqbJtxembSq2NP9QWLsbGsQpeA4biN1uphHwoJBpwzvD3JW4PoYp", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qq164rfn5iYTiEApqWajvDHYP1cV35w8q3sbDQQR6UJMV7iLfzRT", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qo6J3yzQVzFooxmwHHBAAf8xtQE1VgmDuA6ePQ9167NGYuxrKyvv", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qj42L6pDdNiGxeb7x8Sps4tz82RBvDYmuVn61RSY4ty6VnVyGESH", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjRDiNk9UGVqEtKm1Ew5Cu1H4yFSrkqaBL4ccS51dES5VsLtCb3h", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qngJdAC2NwQo5YjiLaipKoY1FayJZQR8hG5YX77uA2i4MjSd3GyR", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmmXp1vS4Atq6YHiNP3XNCWRTDuTTNuqmqA73C8immEh3g4rdDVM", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qiUD5HCJzvdzv2isqjpDj6ntgfFzbqWA9QVu4fnUANPb2pXUU4ES", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpU26aeeuFv2s5GGbEJR4bAaiA3RRDQKpAUVZ6A5Wrf5RPv2R6NB", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqAGz4kPU95izLaRoRFNwPXFE92s6ZPZrQmQjziSVZzKAQyFDqsZ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqRmYWG5okCcS626WNJvYmFTvuKuRWhYRf2MuYviv7YdGzpHreo6", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjdXhzc1vK8tbjmod2QzpDW5kuCUkHWqAP6MSZeTYWf6RSKmtTCQ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkjBa3MsdKMHhYLErQ3uf79UXmMKm8N64DaKuLaTRm66cut7i3PS", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qp3sEsJCtpNeC2oZE5YX6efyz7ViJxoRpAhmJVLPW9UHfGA1zcSm", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpLrWmh9vngaabcjcyJjEJhTBX7LrtdihQTL2rMgdsvCmywjAmMQ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnYPFpGe8fhPyBiH3CHtTJUigYiBnMgSpX6JT526rCHjgiM7SsjC", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpPkknpYjmkYdqiQ9fo34pXTDT9jUWnYTUqDu24rAq6bFqcRg2tw", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpQ2TfFRCeoRpEoKWEdcvHXGV4birgjVvYPPosPXbDTuHjNa8kDQ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpyeHsVDMXA9gNmX1qmTYnjSj1EUrdDxYLiBch2ccoXJa7UNLYed", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqCbEX7AF2Jq8gE8G3JX8BYvYnUB9PUHgU4sfDq5uScQz47KzyiL", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoZYEz3LNYqFYwReHtBosRa9tTuBw2fg83yYJ999yyTL6A72YqJR", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qk1SFZCAeWyy6Q9zDbqceYQRx4SmNsqhSERDv7y2ZwBCNwSM7scp", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpKzYbrCpGFLLyo2BADkdjdWhQx9ugFMYWvwqb3BdaqSHAj42xjQ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqyPjJcogyEFGQrtntwDuXnrMre1RBzDqStzzCdfqYyJi3zDVYbD", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjBYtqjtvdG3LCaskrsVB5keaxJ1AAMRpqNQAws4M3gCCTRFUigu", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmCfL4AUGt9dtmJ3XsWde7tqhViCFKYvA9BBRkqmKBEoaYzy7b5y", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqXemJy4HB4WaETYTVLozc1yJrWmHkpXLYenVjvkqbDH2nuwk3zj", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qrLxpuS3TxCR8D9iR2oWXtE6P8gA83jcZZpXXKtKMMKjJsCe3W5i", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qreyhApNtPFjyFag41tbE2WioyMjsCKbKKcPP5CKRnz3T1vBJLhY", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjW7UbaPuKmW9PEgJAv4cgRwHuyQiVJJyks7hMAkifALHAgMQRyP", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmfVCb4wLwdXMsbummceZCpvfppim2SqNPpYTUBXE8Y2giKRYmX1", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qm8Qa7HK9QhBQom2Z2n5Dk5AU9a3wskjR7YgJpkTMQzFTV6bwujm", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkn5LH2ezoRpMBN4Ds6JAU9u8Une4nkw7kxEkK31CdWJJx4DJzwZ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkGKBH8LwqnGnBkvAbnWYcdouw2hZuSN1XGbmcTiWBnsrJfKqzmW", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqHLq2BK2eaYMTEr77G61rEskVEnyz1qNY8zLjVzXq7Bjaev7xDX", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqsKfdoawCqEwyMZXcd63CbT7jEJfgkvXzhohcBg65Lv4jSxv71Z", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qkaEUXXrctw4a2JUMmf5mHyT1oHVfaBPva7wnzcHKr5QqyEAscpw", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qoTTR6kcoQnJtakLeoEqrKEDmcXDqQVf6AteVFaqU2SdD63okynG", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjxoMNxFdNvmFYUZTrzbqXcYfqxB48MJyzd12b5CivwHSrZS246N", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjUwSogkzw97jpiw6FqaMrjd9F2jfgjPmGYxSkfz7E7izyihv5EV", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjvUbwJCSKJJT5RtvaZZHw1APURbEQTUshYocYeLAsSJxDkwYpqv", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qp4DqNS79kFms1sYPhJiKuoea6VPZsjXcBjmqcHxvtY6TFuu65Kz", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qr8CFHgEGbspXS6iW7QZ3kuYL1FPwYneFM6TQsJPbgfPpJKAg7T2", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qicKojcDztXuT2BEQ31jzFGrBxjzVTRiZn5k4FfNEKZypbmuGtLd", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnmtaFQeA76Ez4c5GhB5eweadTWKT1gTLkuzmBk7gWcV4dYXSCey", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjDTzt5krqVx2KRUwXZNyJxt6AzsJxQvruxEzjcXzrMbBz5JbXeW", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qnHskQ4fzBFqT16UFFwusA6qa7g9ebAeBo8N3gv81FUwPaVtwwaU", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qm2PmtdAoRywF1DzqNUNkrUtnwRjrKRjvuVTe5NXeXtqPUec9cGH", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpCquU11QDW9YWBU8u4PvVM7iVSk4a2RfADAjqRFT6pHe5kr6SHw", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qpdWoNC7NMbpJG9Vh2Cx7QYK7VKXtknaJ4qUPWNcJBeFPtmSSa4Z", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmYfAMTJauQdNivpvyGtMVaqq1fSBALK6vEBczMTLvSR1RMtTVrX", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qqwZddpm3u6GAog4oeH8cqHPCanKffBUpkUPSC2xVvSwvQZHncfQ", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qjK11bQAbXSTcGbxF7nbegmzsni8SrzasPH5FHPd6aq7ba1MS64B", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkubp2i5345ck1GtL8PAMEmhhvjjoBKZzEdMf77tRiT4Fe3dLAn3", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnARUxSXV4JgW5qtSvZrU6q2qArcLAnS87i4Ex786WxbLRojEUny", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmuWoDJYdMxcgUptUHmVxa3qxAPu4tE31vdswGzfVEVhz5Rg2K7Z", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjJpbyZoVtbJBfzmunPr8VuKKbTSLj79C37pw111iUEpYvUcQrQn", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnQezJ2fkiShWf8V9dAo8ZhKcATofTf6VWwjVTxCRYSWkyxzV4Wy", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qobsegZYQ8h6xyP9RjbdfGzrckngun1q3SwX1LtoMhwNepuDuNXc", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkoP9i7Q9yHdb2Dm4twTnQFa4sq8HCCbBPUCuCWge6FhmCMFYyHr", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkui73sMqXScnuL2uGaq9jwt2N8PDu6Db7VnYtDKxsycuGTcdtDD", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqyQuevCcRCfwUYJJoBvSuDzHNEEZLhzumC3uaM4wu5nR3oNxMGU", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qp4p8Usv1t6Hrrfv3sCG62naYNhbj7e2pNNmTfQFybbrjfn5uk9p", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qm9JU1CMAsHj9izpMDT1fbgbYSKBswPgjHHwjGg1xbWNp3zFvGGM", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qo3ZaD133py6ungByRLKTqfvtwXuU7zyXgH2Cy3f52ZT8pL1yAT9", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrWAjvZYDMAGUocDNuG4oJSMJN8kFTgim1DvZJXFwePiYvUM9Kgb", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qm9GbpatkaLiR9HbpZxxYPVewwMhDf81kQrD7mG2t7bks2ETeCba", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoaxybbZ433vf8szoXyNG4y38UmjRdsAp6uuEiBW7vyHwC3mpkku", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qr9GFBuU6xrjfMz5n3VSz1BcCeNnbiZ5GxshfLdJ5VoUs1VDgAKU", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkon3jRAQxx19vRSmKu6E4dciLyyfDrSQNi4hvdjBgUsgPwjDEL1", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qq6ueZt4U6iT9FVs6pGN6uf7Ro7Egw2QKRFHcXpjvWMPshuAw93d", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkbtdYBLTk7G2fgPE33T6oCpVBX9SWgqbXGMFs7R5umgwV8K1Zxx", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpAvPd1iSXn4g7Dsmougx1wutHSh2ZaVVfdzY1zcgtaQUuvgs9pq", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkRYQmKj5A81vyRpY35AbBB3fX2isFi8woUAwkHGFpdMPPq1wS9e", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnF71dtCPhv6np22Q1HrqwqPGBsdE1uTdQrgBdRnjTaj7aYZ2bgT", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qr6aNGgpmf1utYTHeHEb9P6nv7U2E5btrbipWbpye62Y1zwKDRvx", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmWZE5t4MyFNT83R18fY9yEbhQ6Kyy7HUE5usJ9G5hLSVmGtUD3G", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qknLGYhkpUTAxjKqntsXg9vraw9jkW4KnPwpjjBtFLNoip2oyZ1o", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjnSes9gDDxdmdiwCSuK26usDcNXUM5vzPyUGoiTPjRskyMF54SN", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjKrcpSvipamWYCtP8y1dqzvHppfzw9ttKd4FD5MdUyEyJPxyAFL", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjB2Di2aFPMQQiPtiqJkqwczWu3gcPLkm29Upf3nK4bK8tWxjT8z", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qo4Ky5E559NCNmkYTw34rLbxvuwjZaeX3aEidGZfRrrEGH6J6dHs", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qr1GFkxqfctZeonYkQeNDHQVCBswkBkeeNfHXn1GEBU9NaJY3Ebp", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkDC8zJJvaret64rudprAHVCeCsyRAPMaesFvxK6iabED35tU8F4", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qibMung3dSWFGcVBuHXwWA3z9UxqsWBxZevg8AymYhycHjejChcK", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqy1wthZ5LFKVroNbFFBwQLqVQyB9GYRpEvWoxQaJ9N4JEVrK18f", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrpYWAbuVG33Qs4NF5wqfua9cVLdAyrSYiLPnvtZkRhfgKDEtXB9", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qq2g4zvbsUA8hifiZ867x9CXPwwdiCsdq3vbVSJG8sMZZQdn3peN", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpC6EPJakbJHtS1rBZjjWAjh5YGA4LFhtDiXoyPxTUSAnGX1Abpb", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qj6bKEnDJmgdLXCHXCc6WDS1LoLhV2J4hSghV3ywtQwd5Wu3Cfdb", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjpaZVjZagbXbY8KbZrFxYkMS21M1q1JUbgHARysQx8MkvTSCewy", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnheqoAVxV6Dcr1Bfb6tHX75QsegJAiFe4RspUYc6og8UgjYKues", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmVqzEv2QtjfcNX82tfyh7GrKZSPf2vpBaRJLYwpSx7A1L2JtU6D", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmsbqtYkCgUKYzQp56wwgxBzQ5QGHEScNZxBLDT1oj4vT5xFN1xo", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrQuwGFDRamCPRb3k5sFjhvSaiRMxUS9PCeJz228434vumtZp4S7", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqbLToTqWEJ1r7FUentfwdD8jspVbDEvPhBE63h2H7jsfJZTuLJm", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpSnAV8cpL6xAa1MqX6StW3qDEQ8iQ4pyayB7HWE2ZChn4J69Rgi", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqjV6uSJeHWCQ7GXmZPtw3RKuYgwYkN9mL4ey4PUVTU2bo1xQVb3", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpt4WtYRUEyYAuXhkQ9mennDeNr5ShFyHtUBUQqBUNKjJqkWqovr", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnn55jFEJKeVtNWWMGkHh8zRBTK76cjTkrVXjYjh6prDNWwAfZ2W", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrEcgVKJFt116h8qY8X6Chu73ikymqPxFvdHHct8sbh1HzjFoVZK", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qop1sxV9ewcGoXFj6KpTuRKxhB7BNipTB5oxYxaLRDDQrNzHxRaG", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqq8hBeqVY1mihBfTvGGoUGKeVrzAxEHCYL3dgeN1NDe1Bfe3Tj9", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrF9T43tKFdizW8TEiFuNzSNi34bqdJ9uMpYW3bDPBSNEcTJztzf", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnwddwtTYQ3aLurTpB2YSXG4X3F3DUUygx9WJmN5LbKVkmuX6rSA", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoPwnc76LR5YfnyB7gJLzqmhiedjTx86xHfcgY1twCmCoYz5xuzs", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qp7KQZsPzENVRnu4C4dQavPUzHkSQZFszocFtDAedVngRGMdhPiz", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmK71FfHekKCG4nD8u7MQ8RNh51swY1CiboAcf7jTgAYNcKVvkuq", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qn7kBEF2MvCuwHVvyKjPx58vj9mn3E1uJmfXBeBM9rWFfixHpvfc", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrF1KsbMM2C9KDrptpi7BPahDqjZJTNdYJtVW1T5yktSVtQHwHfS", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmJd5pokeWTKBvRtgunt3bTBDv79ZGzMDrLMKAzPZSX8Mw5hRTZ3", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qox2D9Y3VYf8mh2hNdUwQU5j313BTFqNgeJFSqdqz8tHiEXUtNx1", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjt75jb6xg6MpRvQbrf26WmzsyFDZFsa4jMRPLcdreCEXNDZ7Lu7", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrqFAQGic7HatHwk3mG2BCja9eQJmeFsRSuVaU29NyVc3sj51jyL", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjnb4AZYyCSxWAb1UrGBXDcVWryWf4sfrPLeJjZ5ZWomjfURiPKJ", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qne7d8HqMqkxS6szMGuYqoxR77PYvyaknqDqpAYNVHQb87v13jSa", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjAJ1QYMG6RoA4EuuPUgHjjcoeG8twhD4j5geZZLLkBYyFNPJaBD", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqNXXdKj6kXRupqWdABvwFoxRJBgzvmrCcEMxpizEZEdmgVutPxT", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnrSjGo9xKWoQXSZN2nuTVa2vpRTUdo7z4FpjfDepfg154zagfNJ", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpiYJ62JG6VEEpDwsXbD51Dct3rAiJ2YPyHaeqQwUsUa9DwGXcRK", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoDHLgVgi56WkRRYKRqV61xQn55h837csEefZYQabZL3jnJ6JDNX", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkHfJoBdahWvV6QhQxKT8fqWUD83YkSmRc9hYN7cPkYffBgxtJMx", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmRgYx3t5BYmLCBgDZNuEDUxkpRBTa1Pqwx575NebxEnd238tv5h", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmXhGN9nG5jNabrjcWhXxkSdmsuQ4wH8qYMm8ZmdaEZ1jbvy7CZR", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qr5wULBvmedKoWaMhdWaKkYBZffnC8hZ15gyeLyZ8w4RQEtQUxNA", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqJ1ZhbzEeJxwfApxAP38G2ao2nv76JLcsy4oxZuP3DrJwD4S2XZ", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qo1e7c3LGxHC1itqtWXBqb4bZCkf99euuzr5C4h51Tr6cBScRKWR", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqQaE9VVyxzSm1FG2dFDXG9LgreSu9JmRwXDRposennw9cCc96k4", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmHGSqNazCY3X5WWN2t8Teov3YLaGYnmjDtH4EHHvgTKF3nBPCXs", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qofJRkRarWNS1YcqEvw3DLqFey3yHhhc6pgyQYrnQsxRCD76g7zP", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkFsYHYCn5CSyFinNZDhVHTYdGL8aPyASmK9GMo2gh1sUYYjWj2S", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmWicVbxG7zkTQBpVubtJrsGSokX6WoDBtBwTjvP4pXYFr1gPVva", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjdAcuAvozwzeeZT6eQhEfWwvnbniTsga9BFrrje9RMostXLc9kp", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqeqbfoQvMH3dJJGVfpkP6rhbDJRy3D27tm7VTce5nCC1LpngJ1n", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qn2QyBHWQCUiLKBV7XL5WkSZTPcabADCUhvAPyJc3UAEo775toNR", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkDy7S1gks78Gt5nqXB2osKBWyuKs3oeESLuRAp9eCrcU3tE9e55", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrgKYJzvxEXXC4RTefTsPsAheAPJecXsUaJM1Bp9pq5hrKivYsBn", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjLCL6eCW4nM5ag1s63WCwdvvzfQaQajaLWUtxtFPf7vEEdLj2Wq", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpuwyHct49dFxWmBTEyZptWtgLXy468rRZTHtzPHrmC8ZrNvg35s", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpVr45iNr7ddDMhjHXekE3p1hfExLsoY55B11sZn3HcyJnd9xCfb", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnGAJm94nxau3fPNCrPDwphAdX9wym9rd8MhSdmeLt6cK3LZGVUs", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpNV4krmPQ5Yf5TppeFkePrQ2u2qJ7TwAz2MdqEgnkfJNRTHj4xH", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkMbqXUCovXKqjrntbcGbCf8gakeFNZWcFrs25X5NALEcLLrAM5c", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkXXiDQgXk4NdGwtBSLavhBmSCBpCQyeXVrVzmwTzR2iQPLLqRHv", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkPZW8mhJygubALd3fs2KAJBxtxK7Xpdq5JUbb4MFMXegcRAnVeR", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrJanae3UunfxREoy3jiBMtJLjsDaHiGdo4cVjeSFWp6srXYv2JR", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmmY3PgSZdUotgbm9UynUxgfUxLhKw3XWaPoXGdbMgTuu2y6Viwk", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qofFPiJXAuPD8a2HPQz8h3QJoptTekp4YSUHTekgCSyzT5ojNGT3", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoRcssg3yvTaFh6MXLvEoXPvF31UzJ1KyHiYBq3Gjd6PC5n7wD8t", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmh5aJYZn2NK2giHj6ZErgnEbFmqsgrD83NNJkPjQYNTZCSerW4R", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjk82Wux4RM2AgxA4js3Z97AcCUqXxpgJWx5CPkbNuyg9wrks23S", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjVaKU6dPs7gYZ7xmv8CXitDFJextvp7HGtwJR95CsJohffsNmrA", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrgsVaSHrBetKBLb6DqTX5CmUcTGWDpzxSdizzQQSwFXQG5UiFHT", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjmcA9iXFjEJpLMYCugSmNMhLrZyLZoMLge1n556evRwc8MCeEeA", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoYdbpGipm1MuCyfVVD2veJP1QgKGDM14DAhHrVWZY2ie1jHfybq", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmNTUNmYY55ZGCQkyf5AWJWEEogPWA5pmQShubyzadpEKvanqnFK", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qisZCZFqMuheCzWq6utHQrha8TnyLWSGokjueTyn8cCGJzcwvXZX", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrETG5xpvVbEEC1EGzsTunzf6bCyQsYRcyrQTwq2pyF5RV7nnYkm", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qob1BTac9wvvPkuSL7G5s6uvFaXTrsF23dAa1FH5qdZZtoEE5TSE", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpUVugv2bdK2SkogUfxUzhVBVHZRq2xEyocqaN7QVNU4UHRMjMWG", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmGrNDYisDxGQbRArVRTdSuEAfKT3HteHqngdQKtK53rapiPEjtb", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qiwCMPoeskSTDC8vKyRqHoTR5z1SytrFe5Zov5Y1qbtU3Jgrx8Rc", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqXxUrst1a3xLUAtvLQhgGXXPeXMiZRq98YD2q88DkZDasR7yXKg", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnoGyXVpqpSUoMKp23cVdFjwNmRS4PiDLU2zQWYgX1o3iA63AWr8", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjCBVky2jMY5f2mFd8LxgzHgCYMAwfaJL86msuqxgwMtAarQ1fYi", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqtt2HD2P1aCETodTTayHnUKB4H9gta6RxynLrAgmDFbCZm66Uty", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrXnZ7eFyxSKejHNuBCg5tLh8pboBA3QHuPvuUUnEADUaD9ByFkm", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qobythcLxTaDvo4ZQbxx4HkzpdMMtNAFZhhNw1sKRCTjJUZMMF8f", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkEsg6QpGfXcXYdMpJyJVJksFvBSZ7ZHMQKFZs5NvvB93dRQ4hMP", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqaDBHumQDyQ4pWdDw9KxtXJhdv5vVKy8zWn5noELmKSSaYSQERz", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpKKWkJvfGd71BXdDTCzdyW6NcYpKytKzec56a6B47TGM5FDudyb", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qo2ukruZdoE4jN5zzcRSKVoi2t7d3hunEhmh3S6DjNDR3ckKduhn", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qk4gWM1wfmdwFLpGWprVoGvWbSy1b89E3rqaJbvgmp9FhDEpMHSd", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmE59YQFXQEWunNNaVD9bQmH94KTfrgcCy82CU34Q4hkRWUJfzHn", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrea33KkD3TsU5PNGx9a8cWmQYD7fDWRr2VkGt5hnrVtGdGKr7wC", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmgcLWtPQUrfDisF6khxL4omcUR5Ls3R9Yhoq2Lt9idfwzZ3v3rf", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqsbV7wgyavC7TdvykPwth4cae7SoPk4N1kXtTyAAtq9euSHee8J", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjWV7GqaB1x1oCB5wrkEV6EaaXMRuvcBajdzos3xA34gAzqPRnHU", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrssGk13tPjTuJmetMiaZg4ME4XEbDVoT1mzJyhk8Lp2GskRwYEK", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqi1DNsrDrCpykdVimwdBfGa2gsyABYy2eTWWsyrwEoRCumsK9Ho", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qowcvxJ7WWEVCdujHiTbqGvcXGuEQCHTmrJ8THooW2vY2Q3RXYpp", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkFhbCbfMmf2nzYKGEL8vogW4UvNZoUt7uGs35UNepkmKcsDrqhD", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qo7fp9dACTganmsypPyMP4SFYe5GyPL8iPUn2ddgveMBWB3vy4Li", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qonuFLkncufNE75KPViVscPDaHRhCyvzoKoRWdXmVzLHkxyY16yv", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpJAzikzvvZS2xBWCBKC4prvqoAaRXyZyBMXwi6fAbKhxyXe4Xpj", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnnk7dYogZEnSXvCK5Ydk1ER6aWjG43KsuSc75X6NCK52cLDmxdb", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qk6VN3MY5Y5eR3sCF9uG3QfsWpw6Gd2GxJtVe9ZkKHCemwM3ywBb", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrQcRZYqempm58RMBEDa7UqNz2cwJYTZr2JvvqjVXwnEnyru8jrf", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrBf4xsjMYYVezYxMXAmCLBsEmNHmt7AQVhbyJXGCTgj3hoxV2gE", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqiEhCeExx8HoDRYWkZHity9dbRLxKTMjj4J6WpHcKmabPXvy2Fa", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qowMpQgKXfqmELrWeAezMuMjomJh3QcbH6UV8EvSRy4RfLibiJBu", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjPSz8t9dFLBcfkR2KvQZQW8Pg2BGSCvhjJc9mGFcBwaWUBzhX13", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrZT38Uz1YsUmNQ7nsBQCBcqurTMKqjGo4S8YzwWHJKdWmxnsNAT", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qs2cqn2c72jeWJR25ajys5C6XPxwu2EidoABGwnGT8eMWERteoAF", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qp7uR1pGEUqoWJr9GeW3E6kRApF6kp3DN95BdJNXqPt1hPHDQRp7", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qj8LVYccK9WNeweZhhtsXwbgxmCSxTWrhgZ9JLoHauJFN4upJYzK", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqNg71uzS2e52b8ANHjGaity29Znd6TCAQpoPRTojgjFdH1jBJWZ", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qksxWZMosMXizbnbJQdRdhC1hkNSPHeaNe57n6niB1acMyrz47aQ", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qinYVFymdFuaYpzSEWLrWod99k1QUx7gqw41vQd3PV1diymifyrh", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmn6uHVcdB1KmnxAYvEDaqfDuoetwoG9cdu43bsBV5v2guFFB1Dc", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qj86euhikDEH1WumSVvxLgpAvnePBDH84iuUVeted8F6DBUETN3Z", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qomSx5HP992ehMAbhQoo1dH72WwccvJZqkS5MQZn6Lu2Yj5zbu86", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnjf2n3CNNWmRH3CsP48WjFinTQh7jxvhooRvdhGJFaQ9bJoqng1", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qr1esSciKBng5vK8dDedxdiAaiPmnefQVEo2zWkT4QYdkxv1BHoC", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qprGdwfswvD2fHyaMK44JbAxq2meuQDz5fPuZt1sFfAicUndin9A", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrsJWLsL7uTAFihUk8SF21fbtwWqkrWpjg8gdUN5GQLP3qoXfbMo", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpixmfER2PKVRK2BuT8SNiBpYTjCQgMthkT7XZ2cqF9gkcFVY7R1", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjkMDALy1FHtgN3TbSQ25N2tRPBwQYPJfgqkeWjjtfKa7fBs6J4y", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qs2Lnm6hgK3NG9SHGdx5VqBtgzUFGrZEkbCDir7gJQ7duk4DCvER", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qj6vDVcy5BTtNsQr6zPYDiKatoaGzRLx9zCX3Q2LeJhVE72f7GB4", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqhzmyZ8aaTw2GvwNM3RpFwHJDaWwkuVobDaTP9fVNQLSENMG9MN", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnnGSDpVXb2ptkGFoA68BkLGw8JDBaThjpooYn1S5f6DTXoTpfhR", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnK6LVTVZ3WNeRV3Wp994U4TyrrcwextMP8n3wq8THHC8tfKypwr", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoJRHnuDQz75xsAbuW6PafyYJEQnugwjJFiwB8JNK6N5jeupKtqH", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkhp29xfS765ksDrDHorvNPFCgKjoKaEbGMgwV1PdQHYB9nqC9sU", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpxKGu7adAinaL5onRMoYX6AD5dU3Ep5E9VBRdbnn6nSj6fVnjWb", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qm4ngXeVSF3hcUDNxk9xJWGUfMGZwLHxsRCBFYe8xBYH5Rv81ayU", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qj8HonxuKKx1j9azuHyMBu1TVQ5KArfumPR2QHx5NQYn4Wzg427U", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjiFqDAQaKcSu4iU8nwe5MPNxsArSicS1Ynts52ByajBQgoEX3Mn", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmQ7hZZqPJYYTdjExAzQuYzmX8etEBoJ14u1R2NQ79eRQAZRxiSQ", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qr2ELG2K9xQkBJxnuzfCkcP4ypzsR9dqHEnNFD6FnmnoGVyDFzdK", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qja9sv4N15TL8NPLEEtR3NEuqEQrjtfaeeqonWRrcr31jZc7Ti3A", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qn7FKnqriC97RrAhGDKcgQ2xyPwBCBysdesUeZ6kZaLPednbVe2A", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qopTF5KQwnTQ2MhJL76hdT9MjAPAJX3zsmqQi9MuZ179pfmXfGj3", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjBSRj4zyZX4wVoYni3JvixZc1JMWut6XuB3tbQTKxYw9usPHpUk", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnZzFn3uGRFtkPUmy5DfSbEYintxwR8pc6gPVy3wbJamfmas9KRy", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qr5AYr5v1XQr36McxgsoHnKPUQQYejcwga89pECo6vTt7ve5HXHC", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjjRSe5zia4rwzbp45syZs5YnSAPoB2MSJMCLj6oh6vPqb71t4jd", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjk8EnHxWqTwBDTpyi11bjY52hSjG5AgpR7HMt1Vdu9X1vt7z3b9", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkutDjeKmhnPTEhNuf9uwYHtMQpcTSPUu51NccJ4reatPPazbsx8", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qm66ZB7wFgzMTnSWs6ekFxRq9kCAU9KaxfbYbZjcWuNXPMCy47g6", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjA1cmKc4ntvxWMK8JYLc36oRoP8j2TBWZr7nAQYHd9BvNNWiQyD", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqDYVkiRu2EAgYKckiqu7C4DRifNVdW4Szcv1BvVtksxMWGFquQt", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpGLkiRoMTFXab37DpKi2Wd3A4XeSWVqMpaycgC1XQhM3Yxe442w", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqKiCKUiaQtK8TK9cR7zTLBMfwokuwHrZtvxiC54kRNcb9TC6pVk", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qj8m32mvrWYzWzdgFqhHeECcZrN6Aw4LMF1E9j2Vju13jgDp4BJm", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoQaiCoC4pL4u619kajGLGkMKBVHVLcrXJ2eA8Yjp4YEH7DfnSdn", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmo9dpMQRxVc5VKDjzNkT8nxfzDi2D1gXP1wvaTtfCqr6fMbGsbs", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnQWGnhEBia4zKmkirXPqqQ2fZzUHA1Mc4UpNrXZ8eMYNsApokao", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnzUHsfbPsGYbcwCarGtCJko8EoR5kUMtZKpzaypFDCMd8FbUvs4", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qk3cD6nZdoQeGmZrHhukUkruEgzFeuQocT6qN8Tq7cDifTMQVnEr", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrbdW8AMJKwvFNV387bb37pHrv4qSyspPNWkacaf4UxFALxNSgEw", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qiuUiSbZ7b4aKyBNHCM8WDSLsk31g1fhkzm7haosE4eTQZNhZiiP", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnRvh5kPjuz28BJvTY63EtnxoKDzDdUtwLGvZ3XN7FvrdqGatiZT", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpRMUbiq2FwDgdUy9wGJsFkEKDAgbDVd52aMhMo7SKMczW9p9zJA", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qikM6JHf2WRbR8SpGzmXYwNWs4cMkeeb3uC8sHeGuR9TGsHoosAS", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qj6EKbewjoBhGdXb7LR5EtbHnwgMBpms5GN73Bpix1rpL8UGCM2A", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qm4Mkn6KnBq7AFB1UjVFtq7nfuJmfmduJYKgK1zKWFwqdszfvGuA", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnc5gXdwZ9xvmx86W4TBMcAX6PPquix4fR4Q5a9btnXi8g39xtZh", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmdifkhamFqZzHqSJhkjqP9U4zfAUEKFRZYwAX4YcTs5PMTzT3uW", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnY9hbxagLYHBbMJSGMdU3kKFx8UJdVJeaHqfaCt86hxG5qtfBXS", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qntSBLPoUw6NCMrzVhaAfX4edYFBwScnwvRckavurXK9FNo4wkJ7", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmPCtG654fcwMcsS4dztzEX8a4eEzDxuwxQoqkW6PWMFbjzWrWWv", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjj4fqwBLM72jXPgEJ6wUTEGTodaYxkvtDJxBtidmMCYL8q3wycA", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjaCmCpSmKiPM5ZfqNatxV6xZMzmyVS6LGVpg6FXQpM7uK716JCB", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoKapTpxJ8GUVUXF7abXX5E8W7TEC43zJxLMmqvy9otZkZSoPqSS", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkGEk5yx79B1vxsQeUfEL1U6DJBzBahJ3aUK4EtyHEvaUM32ZZAE", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qivXgsi8rVagxibaFZiTmcaWA9UmFqVPQJqvmtwSxYZ2BTBxnAvf", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrSWs26WdCPxLxJzyY6a6EAZgGwDszHeDkWKMS7dMtPX6uMAV9et", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrDwEyfZoMvTRxs3TFQkRhrp2BpivpNWXmoNJoT8AfBo7ZbkMUcY", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qn7J9DHYTeYmhDs8uDpayu6p7QSGECRGhyMU9kznwGZT6u66dw7E", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkv8cYRwAWMfE5bLrNEHii2ssVKVUfWG6uR2CyBEjYk7HMJ5yVKt", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkFfG5R5VaA65f5D3kRAsTSqxW3Eyqn33HzwvW5qFbo2ui1CeNsh", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qk71ciJUSZd25yXehJLcC5jMHoUFgwasauRQeUFnUaGVvFgAPx5d", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrE1rwoBPMk5nu3qht2bVCXw5mvvE2V9Z9NxeEu8E8NyYE3zWFja", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjDUHm4i9Kx7PZx4nYUaMYpsiCGstpFPemh7QJgeW1fNufQsN3pd", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqH5FAg7YLApk3JsLcn3nL7MRuEP5CwoL6Wm6LApHnPggAb4mnBq", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqwvcXDFBk1qdbUxRyUSydtizvLzTK1beutRryPQa6FJ4id89oSD", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmfhjWV568yGebATwcFH9yskcFSSuh6aiAbnqjanEuLk3Cj7fckc", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrpeXtUiWec1CpYVLmxAvXtySJ57ijuSjvBWwN4rDN4TZmbD7hVf", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkTa8p1Le3X247JHxaVLw8SHNCzvgM8r6pXTzjcwqBvieYCni1j7", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqm9x3qRf9SvmUabxZBod5UUiMSWmoG6fxmLVZzxokJMrWGzXCSJ", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qieLvKkRkqKc1c7dXBsyCELRdjWf1Y6aBQNADCGtUEaWV7U6aHXv", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqG2unfVgVk8qgcBD5aDL3b5Xy73C7gwocNB7JEizz5cM91B82z6", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qq6nkWdBQLvcBAyF3sEbAGrMaVxKX5ikovpMG8ZjYiaWBZyjbwre", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjJMqpTdNsDKxyQ4MuCkGT7cmRwZmzMurAbmKxWDkzBCG1JiajJs", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkn1PadvsZaxhqP5MiZZXu6BhZ8KXFES6zbNGkRAUEpDLkAMk9iC", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoLtMtBPGsfMAns2WvtMy51a6cEPWvz9ZjKDiStiRj61JCjJDZwi", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqdxjJBqDz21K2dseihi1itYGkNU1mKnTruFphzW4WiDj2Kf9vP3", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnLT7FdLci9rgk1FvtjZB5s5zn2gFZk7kjcFGNP3a5L3UD8Efvzj", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpihcLJvHNX3c8SQMfPBzDGzsGXPZdgoAEeGvAn9yT4exAx2tfuY", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkxUKF6x14tABW3FfBGM4sfNoEyZkmgYXXbgt1M2REW3GYXVMdrb", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoNvMJZHZx1rXinfkVhy41rsXHHhaEJ8qgVYAVbuVD8gQ28wY4Se", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoqMnS5x2WEnxHTkc2829KudNGrYzPLocGm17xSSD4PaACMpBgdE", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qobstgX9hAveZoDk9BYDMYZ3rb2odzHbf45Cp96NFC1XrypcYjRz", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpcjqsEEnvXhYukQEQ9ee3UEHBh8gSFbVzev6PicqBPNGhCiZE8j", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpMpndeFQuje76XTT7KhCYauvsfN8mfuMJZwS8ryTrBpvfzMVJSc", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoc9XXhAbbPCMKU22cbSY1XimDh6YrbaSzLJniKG56ptG3C214Tm", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qm4NBabmzKWPW4nF3Witi4fTVrnKJ8yh3huuA1PUh6WCBst412Zs", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qig882ZqLvQbKcKHyGGqeoWkSydCBFbJWrDrapngfHmcbpoeaWP2", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qn17koW3Nyc1nwyhery9C7j2sUSayHx3PJcw2qdsfMARRqH5rMa9", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjV6aRyuB9ZGBVGPK7bXEt1ZY4ZDjNUw1wMrxBT1UXdYQFmagKYn", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrpdv6NVwqPcCbbSgjQEnwibDuDHQfmnb1tF8qy45mxAd2AsPftN", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoAhNxLF3sKvT5TZuzhptEJdAeeC12f71fW9oao3HmwXck69i7RM", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpp7J22cqgTo18NsHQKDa8Gu1nbcxAUg6sf2AoPZYJtVpJyi1nX8", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoG179C4rq9RQV8UftD14mRfFArSpSVJFgtMHJTtzBKonnqw6ND8", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qn9GSh3GwmRMFcyLXEV8HkEHuy56uapeTjxEbhEotPxBXFVcr64Y", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrppfdN45HentCookesUQTSPvcbi7h3gdsjqMxkfzXMYLLjKnm3i", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmykm6H12ihNZuTkdDF4LBmigZCYvZw7HWxmam48MZMoxcCX5vXn", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqjkwG61A4gPP9KVHGsz3x8UdeVmpJ4fbCnD6wJL365maqG1X1si", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjxbA9UHfNizTzeqGx9wtHkvoWiK6EBL8nh6iAsUgQFGdjqnDYHH", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qoG8V261reUE6fmes7vYt2JdQhv2qpXgtV1NeLz9q29JBAgnm2oR", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqk4Y1xH76dCYXt85e2qGM5mw3aRmiYBk27AVKYJR9XQaLRQb1Sw", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnmoCAYc3f5axG86hKwBQ2FYYSLR9etAY8kmqUnoqX8g2TdDtZPA", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qonKfbReX1xsXyDEqNWXGYbbwt77q3ZmcU83XzuZBmkYDtbdbD67", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqtc8HVVBZtRmkuHDo7hKJ31Aa4SqxY7Fk19Dge4YmzXqfTFHRUZ", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrrwAAEcKmQX92uHFDRra6NqNGo7h5u9gokDLJUFEtfAmhrC2cSF", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkRm317Uz6oY3ttVt4n4yoNXNyCS4yVFkWieqcd9WHtcGha3QkFH", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmxEzmxzQyM7B9kvuLZQtmfyx7ow753iPX2PZBrnrEXxMSwAXiFx", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjWRXV75wf6czE2EyvFzvLXoD69iPjVEUGi76u1D2vP7A52JZxqk", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnTDntFSnVHWgE2kkYewG8WqCc2Pc1MBGehWBp33ofXhnUbJHabN", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qrfW5nqSMWageZw2GyiSv9B6ME8ya2jh1DLAPPnZrUYzsNmUcVUr", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmaNwe2tcrQa17HWtGQvs3x8CBRks91YjYTKDz7PYmCiFkXUzUW1", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmnZDf8CVKE9QgsH6RLewPmEs3S6dzaMP9u5Z5dVwKiX9Pz1Yfds", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qpwQSFHW1qV79Ct2HiXXawULGRMkkFunaCbn2jVXWxf1NhaZ3KPN", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qo7agVqA6cKoKG7BiLs1t73Sbwwoiy4EZMpYDT18fSzkEmZqHjSm", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qr262FtjbwDNT8SRiWSuPgpUQ6rACqYba53Wz8JhhqXmg19dfHAv", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qirEE2Lamse7SyGypMBSQ2cr9WDGGSAZqZRV5MR5mmyb3YwRS1dH", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qntGVPd3oDNRkyFKpjev9ac5FZRb9Hc1tVhvULGVM2NxQWRkGSZ3", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjWFDyppv5rPTdgrhE6bQH6BebkuzFiGF6Uc8Td7JtSJ6TAEH3bX", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjhtN5pKxACbJWDuUmBgYNd257HJwBWKFG5BDVnK6kpWAan48DRu", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qq5Zw4nHjcL18hsvg1g3v8zmhsiwa7t7hq9N7UTUGaQNZfJdPiwp", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjqbYeAEQr4YfTEwYKbBtghLrXYPHEwZmRFRrjunB8AwVofq7MXd", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qizYLNRKPqhZjRURLT8sey7r5CEtvecT9727K3iFWUABvyoDLQMY", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkeYZSt4iDob8AfwUsGQAwmjssnHtC9kapLLXx73aLE8MrGrDLkA", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjsLMYRNWYP17jWUS8onzmN6UayEdGEP3A5W93V3GyuNKwxceeMP", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnNoxgEiyrccEqZbN4WRC84wA1uU4YXQ5J9xEuAj58BE97DuaopN", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqvMEveGNmbPptiEPmLhJpiSk763Wzv9w6Xpxq5Em3TvaEDkBX8x", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqyTU7MPD1GjthuN7dPVPPib7FgcMNtAXrD9X4dtboPc1BbdNike", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qn3G47k12MZbEhV2bhsuyj5Spo42CAp2szyqQvHvRpr8xuoFu4bz", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qmAmmbUA3a3SzAFemec5RSSwhgS2Y9tjtPi91BDBaqokXRaYJyz3", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qp8Yrjpscax848HmFNGRtXKbwAHaV48SQWFQFwCgNesoKCupxVXW", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqcJRxQxHJviJXpQweVepw9oRM8xZ21Dp7BM2JVVsFBQVkM77qPk", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqg6ghjRKw5LL9zyQUrS1FQVbkBSYZ29qNnRsjr6N7WGcJTBTLf4", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjTHLGzubpKHaSHurbyqW7xbiK5L8aS5XMKiGGzsifLRqh4cAtwK", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqiCfxYHC5RkStfXZYsfWnDA43N22kw4D7BKeuTR6VRrizcWJp8D", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnz37ueBsQHprhLWX7Sw3uGRvvg2HHG182u9poeQy3BdhpWrUqRS", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qifarHomjcvuraPLkquT9PB8mPktMAwmoTYXgh7DtFct96pTdTGB", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qooiMrscStByi5ajmVQpZVYrz1e6k4XpbpRc8oaHj8mfv33jgL1Y", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qnkfxeFJUvRp9fvYPdXP5fu3YedNPW9xzKXNvEhBq5YAT9z3pEpY", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qowUxwhyfSFmnbRLRvUA2nGFmQsjqMohvWRgonkjj3UimX5N62eM", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqAtZg1MUoPDhbeqcVXTbF7nSUBk6YUSzd47sBHWpfd5YRFd6p1U", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkPcsxpE1krVfcAQTYD9SK48sQAeVfoW3dwqphokpVsoY4aWAADw", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qr6t7VbC7hojPzssMrKRv4rdabzN9PhpD5Y9n5HvzAS3rJw9nh8g", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkTnECUmWctTRr7KzHLWM76uhTdjG19yky31P9fFeKt524SfiG1X", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qjYe986fcQZrWtdyuoRcbkraLHLa9ZaUinXv9VzUbwjQ3w6pmHL1", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qiguUVh2LJqsD2bjvPh9LYLG7tdYdcVvSaRBmrSPiveo5Byfx9rc", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qinTmW2VdGc8siRJs2e9qFmuM5m43wVuQZs2B9hyMtHnP5e7HWc6", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qokPMQX7NhbCfyyBZVVPUV3JCwdtaMxxnmG8Lopa8J13hopKJVTt", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qps2Gpaxu1QQUcVXwUEpXa6h5HqFJNcFVnfBWXZZQ5r3aNwVxdYX", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkur7qHFQYtMaRUzsFDuqmhfweJ1psPJH3QyoXVGByNZyvfKAeNE", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qkKtDvGdrEGu8hQjBheUZxf79gsVA6avQYiFVELoQjp9ifuiUvTU", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqoLuBHNcXhuP9vdv5NU2cURvwNHgoTBLn8CydCgZhKPcPFXnLzN", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkfDoTnLZR4TGbMMTB5detZvgfHtoeThmvUhep9T17cGnwwoDhGR", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qktNKM7LgXnoNitHGfPrTDs6zgWjV3Nhao67BLwVAEK72rxUKcSS", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoFHmSixQXTq8sJ8o1VQwA8Dy5F3ZTMeAf5JgKdmBUncAqiPjsLV", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm3r1Ur9964UZ4XzKHGZjEjGRXHNPtbq7XeuGBcCWW1546tJYvLe", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqxB7yH9JTiGg5GUwgJjhm9QdtVtfobSwUhRJAeBnP8L7t1fDd93", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm51e7vhXwC5AoGdiQvfJvEtwkAnhhSDgbPh9VyS9bzbNoJHPoVm", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqxFcTJjw2XGnmgw1y1CebakPUqupg7wE3LgeA544kAGJm2uDZy5", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkk8DUVdTXa1ytYPmz2ePttGuM8hgpu6go4dMiJkQ57D4DGY5sFD", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkSD8D5YzSU9aZLDJmpXUmmRWg415YtssrMZwBttToNuiBaRUVic", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpPvoyK7W6K5Vfg8HE7NxqncN82ZXC2ZBAZKAXxTLnwUBEohZ8wY", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qie3FfkDFaEyzo4ysH2z6597XJAJJnhQkje2k9TP7ZbhdKLs6VBG", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qroJ6EQnB91YXHGPSNUyKjEXMn9FRQf2QryoLDLGm4khQjFG1AxA", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qiq4R7NBas3KETtSp2BRvf4o6NJnzvdLaBrkWCmixZ61Vtkq7i4q", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnadWL8LKpvWopKrVS1WzJ1YX4K1vuNM82Vw2Q1M1GuK1BGDQ9Ue", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkJA8v43pZCLR2DrWBMuXJqzZtmdWaXfp65Qbsd64TSkWxVk7Vz5", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoL16oPwxc61ACGnejYj2wJmrLR3DgTEBYgzhofQkomscLXjPp1H", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqtYvhQXHdGEKR4W8yL5Z5MkmCMQPpFGtKMGyhqVCn8K2wWeiCLD", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmpyDg7HuRTceXdD7gAnTn515kezzyS89AF2WhE7G27Q4CRkrjqV", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoFfMrRrrRmF71qzHoERGYKb58NhPom4mbTxKjysBq37GwGCwUUn", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmWoaSpFqbnsij49cq3kyMWYQcYgc74SFcMoe4BU8uSN4H1X685r", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqp22kTQYug5nEoaP3MMMonVXV77mvNzvqcZh7P9fxKJJfzpYD7Z", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qivvT7aFae6E5c7d314xChY2yWE4q3g5FnqAwPHCa47R7cwMVvhh", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqUz1ucP3qUE69PbTVrt2MYY5fgbhxFTM2SLa4TQD1xVaWbZEcsM", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjz8GCoLSHUTPQtWV88UsMQmZzcsXuFYv3RrNTdfHSi98Q7VdAAw", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmWsBCz4aLJQofNkE27rJNQm9xSGZq1yL7FtK2DNSUuZdnL2zv6w", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnfpGpmF2we9eJCYkEk84ZtELpgqPYS53vKW3EVvZKaCB2BMpUfs", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnuowLVXfWo1M9VeF44H6KvFFtHkasnYZwxUhU1rBcWVfUcwUDGA", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjnDedgxHFYs8BBtP3VxzCXQWaHRRw6UtW65rrc1UBPeUR7WyGfU", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmRC8WukWVgofu3m9kuqsduJWLPvtGa4pJuLY3b71V5KcGFN7sCo", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpXErMZSt3n7RnAgUsNfFYxQBBGUZtxgrZsz58PcLctpBkmwWChc", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkHKBSsQZaPDYvzZyWKJPjV2gB9pB6h6xp89CYVUZs6H4oNMoaKH", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmXGFxPdbTAaSzbT3BAUAckEYuJrcUkoSb13WBqbvbHBjGWMs3mN", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoMpypAbzLfnmTpHM4jY3WYhKNW2QWup6HqUo4sxTZyW6dS8edcY", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmRurpmhpkDzh6iQo38Q5x9opkmRJ8QDERz38DdniQPWzVVQHP6Y", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm7XxJWtDiUQ1JCxGbube9BgyjZjCm5w9f1JS3yMYxJXMwJm8NpS", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqQmdnkPueqfMSxuj8aQZsCNrcv4durnUwmiUrprXDiZbNJx1kLA", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qiifBcdKBRK1u6ZRttSBczUs6of3NKjQTaWcb85VY7Dwv5er6xu8", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpghuHfdsrieRtGFrTSv8kzBS49gNGs2E3Zssak7j9wsWQnBhz2H", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkxQ2vsBZHehiukBo2uAhogcErCQivNpSwMgfvDM1Yz6DZwAZwhQ", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qj3SCVV7PjoR6bEeii6cNum4F39oQfkhxkcxwZZuMpAN6WKsnh6Q", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjGC4g2R4iwCPsbj2v768TGgNvGJwHuVm7fULPp7YycVnS8SMqbh", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qj9eYSRYtmVhdBED7CYzS3HdPL8qazWLDR6Ce6WHczu5Tde6YvV2", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnPaKYSE9gXj8UNSasXGU3GPfBpM4C85dVk72Yk41mAgDzbSm6jm", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkmHq8LdRoqBd3YcyFrKpYaxp37NC278yi9R3YVvLyCEJ4HMXBNf", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnfvxGgGk8Ef6yrvorkCEqWn4nnqoPkPnq9KRApf7dwRxEb2NXfw", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qptPAZqYnJz9jkMeuUu1MDK77kkpNnpYFfH1VCAySX3yGx3Zt6cg", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrFkmrSNVabKncBXThUTw8oamYGbHB8rdkwPhduKQkmR1JTv11Pw", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqBuFFRfn6zkkUu7FgRLr3auQUyWXph62e59MNZt4n68ew2eLAzV", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnXmZKVViASQpJstuEVTnKG8qskmwqMRurH1N7HPeUovo7qT4sNA", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqTM29H3626WkWVpKKzLahXaE9h45kEvPtPASHf43zfKbZjyCHUk", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjpKXjnxJZD6ahN1MRTRHFUMEUABxWb9NnQoRfvJgLKXe9d6pf5h", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrag6gFLKtUELa2SypzVdtwGj3Zr1gfemdq1QyXZE4o2YGforZ8Q", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmEQJppLF5SJJY1d6DuNZty38BVEvB8P7sfH3kB1LgRq17UHX35Y", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmh9tQwUSAN7Kb4JW91vfRccWhT3DrmmT6HAu165GLciRArWsFZi", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qk8hdapzjFyDi6mKNZgqf9mbBjZaZM22XhEjqQt3p3Z7xWYzYd4N", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkWgiE719hNEP1AGEd8qzmCQeLnz4MTQr54AjuAZY6EmBQauqyZ6", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoK1EoPLXDQJDJetKe8e59mz8U8Cbcsvr5f1V8HZ9SgNyKSgkRnu", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qngXEyiZ63ZofL7fq2WAFPdKULkTq9uoYF6X9J522Lr98HMmwJ1s", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmTdjVuPhdKT7sLipnMKuNogV8vLiGWZnDyotgZe4fTrJ8sdnrMQ", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qs2x8mEpZSuzp7kyFGoob46PAmneRy7FpfSgHwiEFs73vjzzVxSM", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrgFbHG8FnHcLWGpbosrzTbW7oVdQ5tSe8cMtvPosWDUEpx9ZPkP", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qo1oUSBXXWNmJrEN1yREU2bcj45Dsv2BHAUp7n11P82NQb18M3kk", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qioZN6xwt8BHZL9GAKEHMnSw6GWHaLzDkBMRBtSgcGspcdYsFXcz", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoTHAzFcj5kSbQSwuiLhS4oThWAaSWfxJNDqomkQRGAcMv7vFLCk", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqkBi7Q75SBdwfHe8GKPo1qFUVZeP1mbmtfXbcXdM7htVL6ntMQu", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qp7SMu8MEHeujoHjyzDn2g92fbW7SYUfE67YVRjg8ArYArYfPPg6", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjEAackbkRr3opiHS5Ti4SAnTz8JN12uMDPDiNZWqWwKkc3DcnL9", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmyy4Pb3fgWgxCXTSXbDa6LXoRmcP9JfmdVtYxM1QtjzF616Zh7K", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm7HNjw2uKyC2oQ8xMzj4wiTFueJ6yhUBSq5eiv66L6QtVBjGPDv", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrfAtC42o8irdPFfvenk2FoPDqRBtCsEmBUsv3m3RqhnSGFqN3gU", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkrvWtzoaunin4k9EPidA5ZQabkYiNNBrcCFafmsDQHixTgiEUNk", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qo5R9bqxmrbM5RKcAKdT5veETW8E8HbJQMGxD51J2bNsPGzBnNrS", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoKchyGJRzFDxFL9yBPB1eCWqhZPve1UAHTaTctZnWgXZpE9YFJo", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qovnsQv2YCsAZhyAV7ZNrw6DYDc2UJBsvvCCUjJDt2rnVcon4uWv", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qq9CnPVM2ZBPotDHfQxVNC3KVTYUMxK7XEXkhAPFyxkZjqeof4pP", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnJMpuC1bQQ7iWVY5dMoWarnmwDqMmfsdF4nenJokLVbGuT16waW", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmskow6RCS8fuFAqySjT8hkDC6vfteLeV8HtEj7zsdJ8VL5gSsHp", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnBNVhgCvzrqX3NQji9UzrLXX6RkgxiboBqaaiTCNhoH633FjxyG", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqzWVCuqP9eYGqsU4btp6B4ShtokmABWBkRi1tL2GswQ4hirWEfL", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm5phAStphCuzFQprBw5EWwisVqXJHkDbuD43Mq4GPucZLVQM3KH", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qowVdyNj2yfjG3qmfsFifGHvHRwYo8pPUZWYbhKtZDAmmAXm8yG8", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrzQyRD75cs8c2ytoTKK5NxQHzQon2BiAcB6cYk4EeH1V8ZUmXdt", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm8ddd8gPSvwYZtBMt4GGU3VbSdU6u1QiaEKCmXJaUegAaKMQcsA", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrR5mCRAECHTZf2U8RuXLDwTqLaDXWiPtchiP9x1EVBUEXLXcaKe", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm1jYGh4avgCZyuHzhnr92FP1Zk23fYH1MpMTsZQX9bQZgynbkfb", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpjDYPtKyvsoc3Eus6xZesMjFSe9njEXbRzeLwcpSd3JrRtdmG38", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qivtkG5F8V9Xxgs7ngndneozKDMXFHUqkGuL4KHCUZ5XivxhmQmR", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkZKPgmx3wS7kZZmDNPSXnsGLrX9drLWJAjp4TNHszGMzCWn7qmP", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmXQMjkeNfd7TjuZqjdtnLuN2SPMwKcNX5ifgKciGx9KGW5pR7bd", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qr69PmJr3eUM3erTJr7p91rkpLVwQC5CdDP6jsKwYh2DNXJDVvUP", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm2hpg5wvG6pHf1jiqVSv8jiFVinoQsvi9z3yXFkCMAfDi8bMUZb", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qk2rru8KARNrSrggjvRMjBsPydwuNQ8Nb5d9VfUryWfnQsj36TLQ", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqTE48wFSWLdZdUdstwGUmLnEiths4QoUtr4HhAb5Amdu4SLRECP", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qisaSXEXCH4iqGzK3F5xtPJoipT1efiMmRd4X5gyd8exPFi8UcKn", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrQnS3cwv2Rimb4U2msPQurzKp27tkBnpARqo9JCqanMWq5tqzH5", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnWm4EWvdw9xJQVNtr1cs7uMvWtnKYysgK8frJ32TTpkGJNVfJmF", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqEiEwDuHSxnGgNFhCuyQhaUzcc9chXGKQ6g4LqZ7yhqA81wmTez", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrmbgCNpQRXf3u14okJPaqfqSrJGJ2TApb5dZRHrLguKHGKucFzd", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qng1hC8wtd9XWXTTKAewEM2dSpdXXZD6oqwhJ3u8P44tL4tFWuR8", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qo65dRumHZ9hNHHEjct2ETTTsc9WsDuit3BaoJFcpygK3r54NW6q", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmyidTrNxFVkikL9rAdiShbfkphFWeXnJqFWyuK8tvHVe7bbiALS", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkxQ8A18rDzCf54uGzd6AxP7KE3XPn6keEYjyb1wgaWtDFxgCssP", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnV2swYz9FirDmDscXjQnyU2BPTBMrazoaUfvuwFx5P88DoF1TXs", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoqtMyKueasU5SSD2pAgHgGLGYFwTnL64g4dFAau8xdYXtAnTsRw", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qquc3yHD216YVmtC1FZVrF5NTbsUX7CgSftwzgCZveqLfvTEVzjc", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmJgs3F5qHhqL13hFJYjGfwQjT6rnWFtXxWqxvmCEwCsmteywPva", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qiVoqNriUdHAeEo2vLkNTVLB81JJZHjaPNE9ZLGQnPGfmEeP2Wjt", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qp3VoaUEswJm4htTS3w7KPi2TJSy56K31pXS3pWcP1EMbLXo55rw", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qivWQAaeSdRXUkEAaAzyPVHgT6FbK1vefWwT6uX7EvjRmPRciaAT", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqKbjKBxSex9Czyv83YvcbiTz7tM8nCgNLP7kNLhbcckojZjGZu9", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqp3UZbkBP7wpEpzCQWLJgykrEcDJSwbpuHZsVSBDX4WSwMwERsY", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjGVUe8Lvyc4VjMfe7WA9BSke5bFqSBwEaBa45nkUEQ4EXnhGPmA", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmd7MFVBtz6ZPFoGUosYJbHyuWMMqfVTgwMxHzHyMerZwYKqNumo", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qr4v91Z1TctKUGGQzbsQXzVPLmkGm8fu6vvCJTHRHB27URFxTPYg", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qn86pY88WjtTuUQagHNjZiEvbN8QxyzLpDFta1ad4hsKXpY8gAhD", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoJVV3M5UdUTgNU4VdJPkcyNHfMJtJnVHJxwK9YUumbbMHJWhWB4", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qopb1JbEHr2f3ojfidhas7kpYnbBhqvs5mynuzn9L7cfbS7G1x4P", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkkYAinVoESEL2TvzwwLQH9bediaYg1yChg8qh3x7Dm6anYbbUzz", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qn1Bn9hGLooh4bwhdhS2R3uQmdGTahXR6NDaghqH7m5XtHgmykW5", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm2c7JbM1jWPjE5JvLCvK1FkrtMgUu3FKkJMWbgiqwpRPfiq192s", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qok94ykjWYnMaMhb589Qc7rNXoDJ4cSgrz61wESdMTPo2fC9P8ai", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qquav4tLYdMUnRkthtFNEG3CTqczN61f4XCfvY9J5eoWQnn87haV", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnSifajCnrTfHSvvUrLeArQuFfde9Br55XRKY3rduQFNKc19fMWa", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qiyNf72bekckYoKRcTP9cthrTNGdf9xCj823uGRBaVW5PfnPst9Y", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmWjAyBaM12Ag8jxpss794kiNuXHDt3VMZxScdu8F2Fd6HXfFZFL", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkNWW2zeSFAWMBB7jdLbBoSAZXG9zujZg5Rwday9c88Q2uYVfMtU", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqR5o65aJrb9wJu2apTVaMHPi8SLDikvh3mJTHfrcM4Ubmr6Xr9s", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjY1BD1tffMToyJ6ypk3s73QPavBsgpea5nJfmrbjSVdYd9F9PWF", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpoBtRPPqf2QQswA55TLoRFS48P5A46jQ4mRb5331QE5TK8aTY2u", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqsYo6LCEDqqxTdnLbKaSzkAhtjK1AthHaWQLw7mBuTiYEPtavju", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpD7LYSnNpNTibjSeQrFf3Gbm43NQp9oAuqgxXtSPEH3ckThcRBU", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkffC4ZEWJME1RSvSMAkriZHNGWwuRoUGos49m5Lgf3wYjwHD2kN", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmszr1BwCk656HXw3QKaMPAVNKcVEZyjDtG4MsFQ5gAN9LeCnnxd", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpis2qrsbWLjtqhqLc4ABT2shTRc12eZ2zEqLRSgk6xmX96VSMkV", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmvXWdf3m9vgxBbitosTTvXbvqYVFhpbBgkMKfXdZKo62VAQnz5P", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkdMEp8LyEwACmuFrme4q4BQPgUBtMbVUAH6P3gsARxmWE4ktTgE", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjtwCmvhvfNUSLtHRm2J7oyy1dUhKYDxct9TdGX3fMVGvGCsPisU", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnCW1NKLPtpvm8aHMDbHD33bAAYAkXnvt2p9V8Byb2uW7HVwzibJ", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qp7GyLdKZwdYozMadXLLEDrAE6fqUBKvMiFJgoXaMk3foPxrbXZj", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnyzJHzvyoh6bCAXmnB3nXJbPnVPpYxspezCHyuw5yw6ZkC3vCbC", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkwtU4gyJtfjPAu73Kjkx9pATVuYoXZPgLbq8pUjLE8SMXHdZiqb", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmiA1ysWeWJPp41Hx7pvB5e491cbChQCv7mjdp1UJkQKqVvSD2u7", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmmrbcc5pLDbe3ZfbbdDGUZZqaC4xcC9ibRo7rLHr4YCM4qr9AWq", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qikwpRbtHFUCj7ehZEKwjU8CzRwKMFSv7YUTmqcmSdB3wchiwS6H", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoVKqJ7so4VnLepjXcJmA88rxG12LXHrh6JzB1UyY9UUJS9WJbRB", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmsVmfFNg4GLkeBj7ZgQgJQSXXsWrsF92ngbeDXFmcmt2GAgvbuL", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjsAPSBLJ9xRRjWmLhPj29F7FydU2NpJ6u2hjdB4jjDnFQeVnQbY", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrhk1rCBrLpGVzkcDWW8wPm5YTa1bYfeyEk6BZ2EgXS9j3XRkpn9", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnCUipsRDzTSX7RRyW529F97aj1u1JhKDN2bDdBtBk7x3NAhR4DV", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpDATooPnAmhEQBTtLNVdBU2PsvRQJQRsDoQaNdfpe7dcUHwGYNw", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqvj2nQLquq9RgQwEc2fmkCpoUqzqivkxpjumXr2B4AWfPZe5ChY", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrz9g1rSTsFH8JdLpBLoXceUDtay2AsX4FhW4Uo7fRAC7KUbfv2B", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnXZoBAdC6dVqjwFRgjCHCybm6xmUG3DGWJr2MAHi12Cv1BqrD5K", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpqJ3F7ZRhszMLE5bNXwpAocPcyRgLTP7P8JrGFX1BcPM3s7v8QT", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkk4Fvevzr3S19YyBtyy2DFtJ79HyNBsTJRsnHB8w3kSZRJkXXpV", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qn9GRnm3dFuD6ofrYrct2ZtaSKmgnkQN6drarYApwse9R6h5WPEB", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qke8vhJvUDHFJm9ACCuf9nYkNvzw5uoZWuwFsPSCr4jBNFhCdTs4", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqc2vkgTUjJ86gZCB5EUXz2WVmEuYnbavQgnEFkaVGX5TnCZR6bv", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqs1HsAonz5TkcmMMPNfgt7g7eJwioTjj7hA9M1awpx3HmFSuemy", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkhkesJ36b36f1MqBSGUXpqg5p2BmJxx7rQYnNAAi25ALuD7asQS", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoZmgaxywBVrZRUU2MWekkreBepUkGT772zcSneNiYXnRC6nzG17", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnMaRiy4csGdHTnumdi2NZG847JhXoka5tNLnPn5soXYfz8jBEUR", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpETYh1uCnBDgCpnWz88Js6sTUxmBzs3nct3Jo3PHjfqbsXH9BnX", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrH3dXfvj7ddqxPw72Ut6iQ84yx3AjvvJmsDE4jMtUcCJETxHV1Z", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjxC36qp5Qc2CENmRvEY4rLqp5SnBgxubBmn8hvMfecqR2jWRyjh", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqREqVTUZ8ktt95uWWS3sxgVWCmLFjJDDQCZinSSfkvhmrpR3Y6T", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qr1vhk3EX3PLKdD1co17Fp4DwNva1DmPRWmqp1akRGNwYJt8sWSQ", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnVJB6mzhGaKuvhRM9w8EPWi6TNaFhvW9QWgnoyuSznxW1zoeKt4", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qr7wg2uSb6suMCtAcRMuD1JTezH1XW2r8AcwHVeBBei4gWuhDtGZ", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qiqKaSGtcj5mk2HhynP4u9bb418LnPumS3SmV8xjzZ4qLo3tWy9x", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkQQyNd8ndaFmTRVZdUo2ZeVKMUydkuU6NvW6DxVTtKojgX4Aos4", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkiNkPk1o7cwF3rQdbsr3nnooSb1RfuisvUaC9UZtKURkFaH63cL", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkfP5r51WTbaHJbhi5c9z7iF8JRQSgoTnpgc3YRCLjhyLCXkNNyj", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoDkypU2oV7FS2n4wEYAVDz4K1Z2VUCeUCZTaR1i3WeXWw7GN8ZU", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnszqyCSs1CZiA1WVgDHWtnEUYafboMg4HteNXbEMtvbZXmDYsRP", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoCHAPEfYuymS3ccHU4GQg31cUfrwCrS365kLtWfYMPANXTEWKTG", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qisX7THv6qMQTYCigrXzWu6jFJocNxByfkgJwpneYWBSuDoU2LNm", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpn7XK1E32pD8aiDisDCQ5JPhM1CGJAaoKhnGRksqKRpPojKHkvt", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpH14u1NjXT3sGsdvPFLq4wYPFmgjMFQJPckbU6JTRJGtpSjvwYs", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkrB2qED9rhRPWLY2CtkiMZgQfQmwyNfqHD9dHWHP484tR1ZkYeG", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qireAZ8QSod4EjTHogd8sW6bTL69QoJppttw2q7Acz3f4JtffmLH", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qr5rcZ38RF4RPZuAL87YphBdqFeReeKZG1GMkf52jCRhsagx6Soy", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpqy3uvjQPZriAcJm2Yqxww6ceynvWAis76rty1aSkg1zW8qR2qy", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmTPvt19B2aDzjLR4uHwZm7Ud4HyKynPpf1U9nnPnnoZw2KP7twC", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qj3zyzAhMEEo7ycQNEXhkQk5HYGQ9ZZaBo12siU1vaUs3RT35G4r", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnHWSLZYumedgjnnr9vcqZbUSTc9wKrpGbMF6XH7rv9GDYEjaBAj", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkn4A85fFAy7CuJg1sXR95S4P9nMiewTYAxoizXUb34GzagJypnv", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpEmxsXMqe8ehcZV6hyzQfeQ3o5cQEBW6s1WGYpF5Bvo91kUucza", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnV6T8yJ1vHruEfXU9gn8SepH2fd2TrYjfGsLhA3zds13FYdTNxs", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkAVU7NYcUhre22wEpbetd9eSwuuqSyvCdR5TrBZwutxupGzhg6F", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnhADcmB4gJXdVGZ16PLVmMpmbs2Ybpm3goiPpCXZRSB5Y66K2Rq", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnS6SK6NzxMSEzyiULTiFeeUnPNcGXTxxMywanKrNE8BGUvNxfjw", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnuheKwHfPxq2AaTYKvSLjnyC99TTmWGbmt7piU2RUF3wAAmtyqY", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qk6RvhPE3uh9GC85tqobsHSAn8KfvrnAyjiVoounsQbtGbsdBLRk", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjDqoqNYH6fsZLQDrHQcGKGr6yAsHTNLp8Ayg7inri1QApFk9Dfh", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpmw5F9nB1t5e2xsKyM7Q1jmGGHYmZ3nS4CVZfZGYWatpQ5XqR8e", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmYoWabzoHBXnDGsDfTY3KMBA6yumhLKW9fFXhboAqRCArJuUQSw", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqzz9uuxdeXkstdgujWoVRiQeVknFweRQ3RWsELqoqhdTz8nADch", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjhuwC8PwBPFszBPATPyfJfBneHBruxWPjNHE2vmPucVFbsuKbxL", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpY2TWMvWtnNbHZPf5cVPyi2w94F5kRHyYaZQEQpY5TEV3qhpFyT", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qijGgDBKor9H88vk4Xz6FS5Ytrv74QXJh3Jq5jVPa1Kkny3szpPV", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjxdxT7UfK6sT3c7Pzy117PkRe4des9WfqNt3Trn6iKf7qpqeNLY", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjx3sAJEZnjxd5sRZ3EuV9xU6YW74GkUJtzxiCkbDXsni6emshDj", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoqKCNVnTe18PDyQVoog1FPtESKSWf93zBD1rkCq1geASAYageAN", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrXUW29CHAvinZMAqXPHVwufL5XNqdgWpqyVbSq7vt88JuDoFQwC", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmohxh9pfNdNNPfPVpnU63nyD9wyFoCXuE3qsmzAW5ubMSnVGFDd", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjznTV29SKjAgH6beWhtTF3vFmK1SVLuoDuof5yW1Vyq29zE3PqY", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmd9ehegDp3T7rJPmekhQarXEmvHiuHygGuhb8csEFPpu5Zf2iBQ", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qisNKbAmWotRAKPhEprZkc2rtoXrqeUqrPK4DdaHnoJSwa3iLkMs", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnWTFGynCgeiSpVRnMmURjbG7Z3Aoj7hyQ751foJKqWR6DmwHgBf", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpbqdbrck9UPzQwbE9iw14x1wyVP95bZHU69gz2UU9QHcY1UUy2K", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrvKqdSojTEwz8eCHBpTuWqXBifho47eau8EX3PMAv4Kmxw5GpV4", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qk7bz8xH3XWJzuLuajmMAZPvFdXQc7vxLxfuoK2H763KW8Snd5Xe", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmuha6yFi3hhYQnTzUy82dX7jSAJpBLKBb53zCrjLuWd5SSNHiP5", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkDsQQ5x22oEtsJo8zcTCHXQkiHJn4LaU6fQz4XMeJySurESGGWK", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnCRe3h13yhEvjfApBb7aMV7DpTqmhBMax35SrZRVwTUAZKYYtbe", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmSKkmzCpUQW3V7x1KXLZGgcU29UvxxTXXnwrG2dkjbm6vKdDCaH", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qooXvaB2AyvTCBjyfmHBXHt5aPQobFCAm11nJNXrankAy8HauuKy", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkvFsxgkxpscgK4RprX83iqbGnoSeoBxd6PZuexeeuUpSVZdRvfj", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkYbNGHpdBuPGjB72MEyQXMGNq7NcjdiDP8igsSaTeQTP9s4d1GD", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjfJ54gwyExsCi1SPaouHEVLBbCVx5QWa83QgK6dCGdz5qvNLYEj", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm2JAvBynWMHuNKcmZA8DuoXha93N95uMdkYBAgtTYrb1rW8oqQr", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkmfWeCPrC55SEa3tth7KttLBNy56iUr78zwPSVcepeQ6iFfM6mq", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkbCNwxCDDCLyWqrkRyX5MBbtz1xy5K5LxgCPcrFQ9Ud15mSrtr5", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkq6PAEw4V7qLLucqeJ8Uj68ys1BdRBz4dxzxaPc9b1oCV2w7D6t", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qk5ZrJyjAjcafft2kU7SQFTLMH4sStqYRnJkgmX4wdNa9reWiDFG", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjD9D2tGyhcEbZ6BZX1F8TU4ZroKpbBCwfVLSfKxEnkYVunskho1", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qo2RuxaSZFbUwCeNb9BdBRwzSBmQsCBvXrBww7P6aCXFvfxEF3ug", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqJLpiAAyoifjXjbNdzR87Vie7uAWzDgPD2f9MSQuAmwSGCyQ5EH", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqaM3wsbk2vTgdnTZdb9ZbeFPxXXUT66G9zmDowjSEnKXwDqVLbk", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkZqhR5h52dxVCU5D4H3nTCEoEhVPnkkar8Jc1PaRzSfZ4mjhmtn", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqXWyAH7tnKRrq4NSwJb4Za7iRQvqbc6AETF8pU8koPd6tMe36xf", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrZNxa4VPDds11GvNKKnAAkU6G1KrgP6BbPKPDSPbAXkAT8RP6YJ", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnsH94mvxwuCddXqGNwEWcG4bzCsN6CgavqXLpWaYyxxzg5uC6Wm", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkQ9moWTe4q2x2y4GGozUD5iE8LAMwKBxxhxAHujq72GnAfPFVpF", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qj2xo91AmUncZRsPvUYr9M7gxzyZV4xk5q3esk5zPPKm2GPfHbUX", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqnsTNgaeNbyJWWAXKRid73jYLX59fJK3JsFaBQPN7xdPs3KaGDp", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qr7H6yVM8r69qMChvq6kcjU4poJzVP7Um6qgN1kfKQFmoZe5MsT1", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmT6cszUK3Ks2MW6cHWT7X3TU6WMYpbdvWLALX3nqTSwCA3AhynL", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrco9ikHMwfS9hqHBBG8aSfEDH5tPzvvAWR4hdF8aD4bsqLdZZaE", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkryY9LaLbWNhiPRw43zjc1mUZGcYhcojEQiKGEHdSHNi9o4HYNw", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjppcKYQxidYiyfzoCLSQrvo3jfBoU5vvBVNxrnR9eqCvZdbfsZM", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qksebiSKmoSQQ51a3fxnzeLNJNvno6EVtymPKEXnmXtV2NEwMNr5", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qogMAD2VPpp655jC1aSEZGgWK8Yop4thR61SUvbgytF2CCEDZqd4", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnhGLa9dHcQ58SbDhL7LJaR9UC1m6YvBg1NwAor9vjaef1uBoQKW", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqkbmU9Ux8xZrskMnkhBhkYTuBrdVbSTuPzvKSWyzzrDrWorq6Px", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qo6Qdk3a2tgwaYatZ7HQyCB1bkD2QN9HdxrNmGjCEVxfiMYm7aQj", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqjZ4qk2r5GkHwZ4CFYz9QN2MAR4RojRVqivLJGQ7me6yHWy1rvF", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkw8G4vUrvz9aaAvR9hk9GKYxNLQAh1Zw3y8xVD5m4RX4qLGdyzS", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpjZTip7gnFbXEBq1dye2yCro5RqDafbAmJPVj3Nwx2dCJjTQefX", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmr6ezA4Jmr1qpew4yh6kGWBhLberoaNqh3Qe1KVHk8jjSkkqYnN", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqWRRFwrRynzWbopJJLpB6YWX1oQkUrrmMHaP8nm3Pfz63TmPr6Q", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjk9KCAJQsky7DsckfhjjbNxU8cog98bi5mWvAw1rBq1irnvZ6pL", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrQFoGx1nnZQzcZg2GkzLbkgRTUMKeaxLEE1ZpfWs31dzfcUBdTG", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoyqfzjvy3vSMpm8xGgjxHawB8aT65zxzSFJu5PgEszsxa4dchxL", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmScR6eqqSnnkaa1nbgJfMCTSFP7fECkVasLzrEu7dWawNhKrMxJ", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qp3TPiunxN6sXeJpCoxzFZpYwgfURyLd7Bq6Q3EFqvar5u9ioKA1", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qn9TCCXoeH23xEitBBLpG8ibR28ZV81NXvk7Atzf1jPUyvk7vesg", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnvRiAdiaejn2nzQ9sjEdb2G91X1EkWr8p9pK558gxRBDHaj3V8d", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmjyPt56D2PZHau16CMEuNPoNoWADNqBiEi1FcbBfybb72KToawN", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkgLyYaNFDk5rWVmsTbpDRc5Mu8ibyYBcmS5xYsoz7VFizn5qfVA", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnA9SH5CjKayAXUAVpAWQXzX2BVf2jUJT3yQSfA1cPfpjh1Ff8nR", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqJvA17WzNemF7qSnCGabE5TUFNNvbykkCRYeQjfXn6QLaMWit2a", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrMkRr6hqr6kz8UwFfecbmyyNNkR9hMMnRQaWDuAe4U3bgBCH15W", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qirhPZPTMeVLrKS2ThuX1fehmDysEpLnwC5akvqdM93uEpfADeCW", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqy4tEPTwbP5Nby7GodAgfoA4SmeFTFomXR1z4yTrzckqxcKBHJj", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrhD8sDXM1ku8ogW6X9HQvPcPU6jJuVEn7FQxKtBHQ52Vrovmmdu", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjkPMeftJec4Sw5qrirs7pzERdnh37pD5yEiBKpBjVAEnowqkFbU", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpBoxFr3FK6vzcR62DzLWVJQeSWCCZo6MUwCYvQXZgtZ9Ag1fjQC", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmtG6DaQCGGHsBsrotUQGQJTzedzskQ3XEybAATsCy4wsCunvQLR", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qoPsNdcgC9uj8RY6q4jDidsV2ac2rL18BQqSLSGuakKEbeYmH7GG", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkZJBjQ7tAUhKsCJ9oUzVqeRvP946YoJsrB8NVAZ5XKxFrzjfsCL", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjJ3UxRYDM8ijA2HDYjx9hom63xyrtwNJm8feohgLSRXjbnMYppe", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjbBrroDZncnQPM8wgYkeJe24WM52SM2JnFSL78yG9EikLJMvuXh", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnbaD6Db8HZGG5oG7nbPAri7tj3nsg58wwgPKNxKWgBvG9bkXiEZ", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnAqsD291rpmpwSboPzn2BnsyrL5mWg7Rzz8bUd1mxw1P5XkNt9k", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrZYP298oBA9MdE1y2dY9aCkb9H71zYW6reGwH4FFCVrxLsaqZGe", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qp3oyGHLgLzvssjDVLVEq15UUjQe4NK57NXiaBg8wyhCVgiJfap9", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqNVo7gsAnSvpYqhAc9coytaqe4ccCZP6TwKjgBbELHBcLJT7Z64", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnGPJjYiFBhdXy2BrZrFRHW7973zMVPCTPwv8qeucVwY3mpL8YEW", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qnTSnRqDhDKBHfnrAT6ZzZAoRajJASskKqngSCBwrr5CpZvCAw1W", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qp9eHPxakqoyUxaSou3VdzJH12k9rsGJsCiiRUcRtsygcEwrajCV", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqSKeUG5ErXMxCcjEwvt7LtY8U99GuPGmbdFFXM33NQvagbKq8j4", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qrD6wYxiDG1qMgi3AhW3EmpaXAZzCb7JiTt1BxGSUAL5Pf3URHjM", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qr9rrQzCkminroaZmirFxnweAgfM4CHcaQPvTJzSayxxz5pVz715", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qkVEHYKBzeVPB6CyfGdDzdt4iqDjmHAfMsC48yyjn9u5CQx8sZZV", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqvaPLzYbpMtAWxiRjMp3wXcRZ3A4ci9Zufn4GTYsXEKSTFuLrb1", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qq3RQaw6xG2RB6Q1zgcJRon9XjBoJFXJgweArU1VvfTJ8nxSh83q", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qmQMiYS58pyAcaaAHs38FVKjYZb3MJGcqRv5wcQiDsBHFdjyG3eW", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm4xkNxFtj5Fa3fVAwQFYFsKacvBpgEqXQoYcRGMFPxW4pBw27z3", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqGXCugAmohNz2xxCfzCgmWdQbVPBgQQBQhSs2k7JYRcrK2VWkDC", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qm83VoRwqknmnrR2qSqLvAAPzCcv5Zt7PRxQWaABsnima8hQFass", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpUxTo9L6PHbNEdXyXPXwKrWfJPvqYtw9UDosdD9o8thYJpF63qg", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qohGyRihweYCZ4n3rSUhXjhgNZneS6gMxiLnZU7Sm4ceTmoZmebr", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqfUFoW3YGVBtB8DGu6YroAZ3ABB6a1vrZy72kB4n8mQUBV9zpQm", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qj2QArnHSEap9KUvqfzrybyzofEAwaRsEkqGeo4FC17mPQF9WBkg", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qqg2g1K6ubQFLWUL9Jj5hqBSnwt9gfwKiNQv1ddVeqXGBYN7a9VS", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qjPk6RXpLytKJfWad6pyFBe84YBVZP6kFnMLQ7Xpf46kY16GyixS", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qk67Ltcb176tserrN9Umpp6DUmmWHrSmHbpDwKhcjekQtEqxHLPt", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmAqYoRap2RSEhavQx6c1CfMupTRKGk8yGEuj8KyEMwviYqYqbmi", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmqFwtF8cUitL4MpTXzEdViEpyHWu2UQaLWYbj17QabtwagDNZWc", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qq2FcAkSMVowChyVtxYBf6MnUgfEEjnbXc3rKGmavbXEMJDygMCn", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjVT6nfBULDqeY17sVjDHqBHGQoR5jJUAqdsz1yMoCyWfbKZVBmL", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qq6iiZY7GKmNY3oeyw6ahDjbwd2EQoAoy8CehQiQ5BRDdWC8dkYa", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpbQH8eeGWjhsCicrcwRVKBmevi2DWNtYEVNSGYZd4aEZFMWrcAP", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnHkmrgTNZdcBjYCsuJeMBZqBsBXpzSPBR6mLDdxDpXuwqt7VwBW", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qneLfrSLWZY7M9ebjGULmnbvEBvKdJNH8SdbJemUPPY6QZxvBdo1", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnz5pcACsvHYVHrBN1qAimukhzxNkQeTrBVj2S5SpkKM8UXbEXMs", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qniDjJt9tDeo2nDPeHF6cfB4xAypKWBDvs25jykwveXERShJrRxn", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpJa7dTDPTvnZ5Tqy9kocVQU5G8gpn7BT8DMUgo2tayoqCExdwWr", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmED62tCcoQzEQY9GsZc6d5QNe3RSvfxc9zYM4vq8BqM75NRWgC6", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkswbbsamfJzseqa6W8XJQP34EG8UAgwpsa6mX7EGCbLsRsAzkXM", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qp2PPDaV48JmnZzE1uXct3EKzwdjw65WhjXooD4mswXZKc2rw6zA", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkDSncsBFZcdimh8bKcVjMyrThdrFazE1znx3kpDYZqDgTsfYojs", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoVZqTcmPZXoRpysctGdHqJLADdhKUEYjBAbXxj8Ew5KQwx6jvH1", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpFcqaGpG12X1jK4zwRNzfECq4yWrLyp3DZFkj1TqxR9gJn2skhz", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqCFc2pc6oju4UBct7U1gPxyhocomRAVnwok2swSxARjvku1v6b1", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiXgpaMU7D33weVupJfCRRkXsARES6DKZCWAyy41tXETCriPU55s", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnWPqbdK7cuFLQ8Ws1S5mGuHS4ZJFwu52NzD5w9f7Cm9Gh4Dj7pY", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkaAG7NRDcGyoF51eLpe8UL7nEDtxsc8k92FkL68H43tJz1iRcp2", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjaxE7KG9FAcLv1xEDD5kKMxezE6hL2xhpXQypHEARXW8fgkKbjo", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrpQbien4iusDFTM3UfNxJrDeMzm2auyQbGWGzyzXVivTuVhvY6Z", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnR6q2RkVb5nSMBRJykXiETpSXxVsviLECu8xL5sDTKbk2vbMqQ7", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjDqZz5V9ytT39rJeSNi4xQC2U4AKJ8s2FHz5ByrYLEyPagddnbg", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjmDD5iWdxhg7K8ePxczg6vaZx9Zz6ZPNAHQpzFnJr9W5L62fxSE", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmxkDrB1Ky4HUfwdknw8hqvEA5etHXpdeBzxzSbJxCv6jLzHLrdc", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmwFwL347rJCybuZG9qXW5dqXEJU7kKaDHZuAnoPBmNp8Pcu5SsF", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnMxEcrSREUkbSojfznXRNs6Jtb1qGtwTJ8cZvw1TAwP4cstPqPy", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpgkGQtLqdUA7gNQLsZN7j3xdE2v6DgpAD2YdFvEbWibMViKTSUQ", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjXwm627DFRJ6PUwUXWwwjkbhF9LPeKnNRAMdCN9RiSwDqkDvkw7", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrRXhydapR5VqUnGYHovwypLWpeM3NeMBE1fPzP5b5L28oTzQ4a3", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoFJcWZUijXPyszzvkQQWh2QRzjVqVtCVtCjjE1DqPD4Bavft7sL", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqpu5PTSa36bJ6TBBS4aPfYJ98ug2nTevmJi98AgAfuAtuyJdCYi", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiuBv4GWpCnYTJ1CDHb236manYiuXcBwpybqeP9AaFHSDAzzBdqH", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoqNjQP8DVFNEpjJwocf1C4gDfqbeBXMGuCSC62D3o2MipvnGBoR", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqQeSsr6ovkGKpCtzKAHSQ9QYKCqe5dabQnEPVfCfCuksBqx4fev", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrEHUmdWM7q4NhXvF3ARiYVwKJqhEdA1ybwJzmvjG7TQj7Ya1fF1", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkGmGf4yNLzNpJiLRuyFLKHCbF4hyw3DLmCgwRmhKfTGh51T2SAP", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqzUMcvk2ivgLdom8vz4ujLv65ECuaNU2B9oNoXYJipexpV58hfx", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkAsBTgDjTP85juA547dGp3XaPk934fkGZKX9EaBqcVmdJD8Yybh", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkoGpv6tnpQsSoyZG9tqZh3t9WNrn6mXkM2KMV3qQqaqURAhj95b", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qriSHgv5CmAKewhNCEAx7nSSVZFhKrTUKCP6DGHmgWbrx84CAt5j", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqGxXLqyWY8yGEXgP8EgbfNWfSnTn19uWYo7JgurcmJgDHq5LPzt", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qo37rqhPKhAj1QcsBV98LcD8ozgycheUEijFu7binfBbHi21of6R", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qm2U3srNDdVMLbnk3MsT3HX54uLi32VEUeYyX6Ziu89JcSPDPNRc", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjhTncicfTFkRRTvmsbVA5ZKWZ1QZDJMYLGSAP35kqNUpcFSkD91", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqFr4aAzyudgAW1bezMSZaHxTkPPwLwSTjeXiqxkpZoiKqiEbJLA", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qidB4WkMx2nQZ3hAS84P3giWHv8DMZktaf6W8VH6FK66U41X5ofq", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrpiAbPEPHNBtS5ABy4SLazDLLvHiyV3v1duWnbiQ5eo3fFPDafe", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qo5a1YWhghVU3sGifagWbTXCLkZsR2hF2nVtx26Bov1QpbcZn1Le", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qivrFCMd4d7Ug8cpsnEH19qArdX49k3pd3bxN8osAfJRRgEZRUoU", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnBHW58D7n6zowxxeEdLH8o4qdxMx58W8XwNRAYK8LL2byHiQm3W", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqZPbpBgT7JhzXrBhpeb85G3JiRabAHpjW4onruDqf2MfUvw1Qvk", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qq4NWtRttDcDWsZoemtPmmDNBXm9ezUmkDjM2V1YaV1nspKENEDg", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrfmjeHcLBKXNs5keogkcSHbdahXRJHkU8tPjFMijJccPtWdF5Y2", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qm3PcT5aMzZM6iJKyNJYPCYAKBnDrq1V8EwTBqu7DtrVXgcc66LB", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmWbPxrZGJnLk2bhT7M6aB4S762h8b9fRCg4WA6hZsh23RTxQZNK", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiYna29RbR63cdBfZLCcs2p8bTYDmJ1q5dzaNCASXnjiFbLQbPfm", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qp1wraHMjQEbgNcHwwYUDebDPhGJJxgx1ZsSBVb1WmuxMBh6GKPQ", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqhg8fz7iCC2VdreUiJXaKiuJYw3PnpYSPFZTgGANU21cyUdGupu", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkJKP3zdbiZRSyFzZWecLSLKqKZwLgM55y2taMEethgkNTMz8JG2", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnKLGpXEJz7YQq4hKkqz2vQyH8bVixr16ojw6nvnVmSy2VvW5c6a", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnxza355UfmAmB7hoe2jsL1AAUKKDh165jAbuXHUQ1Zvr1ii7UUq", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qibAe3CRvyoLry6nLNtWPwEqWcNEUr5E5kH1BhopTf2SoJpVrMfm", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjvMdgbngWkXcXxMpJdjoySmjXnpGYr2t3eFacCDAnGyv2YGVGPN", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoJQ24NYxCAXK7nSSWbCLkGiZfo6teav43q2EEPwa47FuySkqNz9", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiZBEtdwYi6SyWXVh8jrmLD6EYQPW4VE74KCnXBnbeufHSLH8wew", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjUHZTjPypZmakyS3fqx4jbbQhNMMQwi61LBkMB8U91Sk8cSMDoY", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqf4t6soEGvE5wv38qd4X3ryrJ4rMkDDdEe55ZHj13aAQhJTTu5V", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qncjWz7kmPgJcSVWXchSyTJrYL8453TUZXCH66VPhyKR7VDWFtry", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoSDSY1M6W2URxdZH762mhxRefq1N8v8HfsqQAgsaUSzK3Az7LdR", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrc9JAzm3aMHgkrixb1P4DgtJhyA2pqWpjw8926Nje7Hz9GaBpY4", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqWKeKGgPVTpJeLaC26boqmdwQ98ium19rEXEqBswfy9BLcpUj5b", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmPuGAd7G93B16syd33KQdxFT5zMV1nYtU1gDzfqstskhsTJnWCt", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qo4d6Wb8KG1C86mmJz5cUU5VnYm7nH4VAa4eh4jTTZAzBXcJVa5e", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqSE5DL64ywfH3geUgkUzA8wZREiwsQG8NT7thfdSHd7karkYNG6", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrs7e2pugiRjeNBj4jSGQD1yjsVLaSmAEEjHe1w37oteQ5RVh6u5", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjRAXifcFXYEk7FQTGbUMRyrnHuqAGC6S4F5Ps53ShYGtQgZtdVw", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qj3KdGrRY4Z9AwtUu17MGzUAgjbRe2w6DMRDsypRmAftuPRWzRvz", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qo6WSB1mqC2ZMC9BEyd4W5AsKtMyuvD86Pb1WeCPiwF3GjJ1PHLi", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrDcUkp3Ejq6jp3m6kNnC1r356N9nWNtumsvY3A9YJVpJpKdFqe8", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiiPxQ4UtRNAB3khA5nJKp6dPjWVqFE1m4D9jFyjykdKM3QaLQWt", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmSN5at9pqBW8JHxhdVf5e96N64GLLJkyv1GKqSeKYgk26tHKqBH", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpitonsCdR92RdDuYty5g6YZTnB5ZVnYyNRG7VkdenMrvdCENZRA", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnJViDVgsv49pYqnobfg6etLDFy9txGMRnvrvXJNx8k2vt78KN25", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrEM2fkYcUnmz9hb1N5irUEKEDs4bRAVi1rHSVE1czu5nWqsuj3G", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qk9M1VcGf2pWpxqy9T8pTLD2pTHkH4QXZQrZQiQkYmpnY9Ln7AtX", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqts2pEkCUGWEboNbiNbsKMtowqjxHxMPYYtAmkUV7Zkb8xyUErB", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmxdcW2iVYQeMswqGPwTzheMLbvGUFgrLYHJL2mtKKQjEC7JRuMk", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkrzG6fffntxGRiGsoFEZVtHSJ9WRgVM28drZeAaDWsLKQvQ7fug", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qreaMjeB3ZR78N9CfWTTrMhM5PnpDjH4aKAmpsi4c3CbZhFanF1m", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjGABa18dkJQixMbY8ns8uXGNsbXEYbUMyBdkz1FZBHu4s3HAp7B", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qn7exr8AYehHPmrqwUpkYBTUAiW8tu97tqAUTQserjA74a1gSsfH", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkhr8VzCX6daMYXgqbiYBrjogmWQ9eYiGZaRyh5ojcq4XhTCUa6Y", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmGhLUuCj7TVTSUgDCuUp1gyTRUwr93TnrV6oMnneNV7K5svtbAR", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjfAxdQqrvCGG9ozJtasU94vXYyzk3JyTfWdednZHLMoPSAV7uvm", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qncS1beXZMqPD4A94WisbAV3ftDNxEYwVuQsp1726MYkGVXEv9R6", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrhEnYQub4g7kpmZmXAQkC9QZWv3vvaC2y99yxCJtJs6XWWMD4oZ", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qndioRMR7J5Y68tBpXxUdrBXFYsFErNXudvqRzTeqRksX5HoiypV", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmLUcyo4EpEgMJ1rHixRafGUq8XUz8Bpm4jFQnCZTk4QRgHXRJug", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpZmau4i1vJyU57o249Ds1MPCBGNbYQmU8b1xiRT7vKp12sDWw4T", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiY9Q7DypKtYNwUBjsE842oykt3uDLmcuHkbLxfBVZsRU9mXifoA", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnRGYySQAriadubexbddGm6kAtwGMch516zXZMuWb9dZBEyuYcdB", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpZh9tkXVm2HnCeUvyutmtnQcbmVUJxK6wJzZHg8C27x7nxuieUF", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qipD65c6MXtZZ3j8dqdbqhUPDj4YTwNxEENws5BDEdGoFuTgLUez", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qo66pzKPPKfABatkR1EMU16wyt7kDMomKXRA3yscVB9rDWwkdXpt", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqHe4MgofXmv1neWC9FyBitJPsYK2jsVW3C7qADXaFf5wXdUrXkw", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmZBardW9P8X5VroK7n9A3w8nf5hSX7GzQm5XSXMvc8hDkJY4NUP", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjPhWXYKxQLhAika7ufrzqkevvKbEaxN8wDnnv631f4pj2MrcPz1", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqYAeFJzVeGQkCTAt5bn68nR3TWTRvPrcqf7gdwEpv7ZwhzjZLUa", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qr1eX97xZ5nLwdoZcYoddZGEchboXiP1cZ6xGGGeDFweZax7xNN2", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqALRVBasQqMvrid7xE1BY3uSQ53jyguD8X9sHNpGPpatDhqdFWw", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qptgwTFUvbyXpQgVEZDP8mntJpQANs4LvvA7PbDeUSaBseXQ9rBJ", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiX2ar4NXKYhUmxohJSrZjgLVxS68GUrVy1XQqmzYEcogZb4ZPYY", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qn2Q8gcJ8454pyraGYN18Ej12XaqrdbqUN2axDHLuwcZkEXRmgFR", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmjpQWTzQmTSU1gkc1DnV87dcJmqhLGLTBLtZkmHdbTTbdBLqKVX", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqUo1xFg9kXd8ynkUVhA74LVMSXwx9MpRAQxyxWo9vrH35j4tYtP", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qktM5HtXSm9GEUwSLg7TMbhUyXXhoToW1L3PhBPqQx8iSEMjEcmu", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qk6jqDq5R6sPaYHnLosHhdJWMd14kMcWcQbAkycfULL1sy1hhjei", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpfEPYQSGu75gcr9ywK7EBwSHJi3ofvN2AehgCLYYVNH4rrSYFHa", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnvptY6AoLNwP6hcBUAz2XTwWpKV9JF1vxLVwpLMZSThtDsMEuCR", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmeEE49adf26MXWoS9MNW3Sv6wwpoM6tAEWXEmEPwLuhwxXprVMk", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkq7tDKauK6hNs8CeyJdHKv5RVjFrCSfhEfdgW4uXZuQUvS1ACxG", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkWGXn2t8G5Mz1ykdWJafLeT6dNhrPg81AyY6B57bjTNUgYDsXnE", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqiDs5auj74AoSPDUQyzEFaGRTM2emk5a5Wd2Fv4BJ51JsvBtSqB", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmmNzeMCJpjygQTHEzNqZaNpXg1SvRQPYQP6EtHVnySu9WFmFtuG", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqVLHzt9cm9ZXDkC5sJdZ8ut6kRexYK6RXs9b6JZuKFP5c4rtziv", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnBCV3SqsVscGH3c5m9qfAe96GDgUpN4zMLsZYaPEeviLw4neoPt", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qimb4CFVntu5iituHs8DbfRrMKVFbtqy1bdk9H6X2q95htTekbiP", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqLgLtd5ezd2EVjdf7jGuSME5hJxKmXyncgeFtWFRuKgDECKTpxx", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpCG5bYqCCibM6AVUiMdirjM7i6XtWSh9maCVsd4Z67pJF8AEevY", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmLpkNWvshD3DNupY7wFyyNg2iLc1Em4wbv3qKXBUJQqByCHKjY1", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqyntzn9LWvKmKEDjyGuSLj2sWSsXysPTVpx3J8K2pMFGniiBhdb", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnAKBuQJvJ2LT7Js5PQq2XzHZ28mPQP9v5MU34pm6dK8PpbPwm7v", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrWFLcWShgFBmUJwi4jjzfYHEAgq5D9uPs89pqechM9Z3oj3Aq6G", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnCGtc3Q1angjQJF7n6Ma6ymafqweMvFssSkpBFPXydpc4Z4P82r", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrsTWQ4Vtkqbnt8vhnfqKUUARmqGQjFWjXmFdPVgT8k5rJ7meaMk", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoxuVTmVpzhb39v1SbZg6jpvgSPH72k6rfoXbk28pFAMx5pctBcb", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkJAroib9K5fmhw9wHYo79Lk1R3htDc7y5n98junuTd4rXQsrAuf", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrUirnDRyPhpmNJDPUKLp2WutAzNeVDhXmx5KSGMcN84G6M72Tf6", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjKkDbK7Z4ACSjo9f5Zis32p28DCAdU2z9pSxvEiBuPJCeh2PuS5", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qo6kYssE4uG3GEZCuMHECFJSWzHbCNYUp3aoeFvAjbuyfdV4im8x", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmzqtMUrFZjUTjEunVnqCAe3N2aDhPeNiPvMkMZqZFxa52wvr3GM", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qraV8WZ7nKBHS1R5CaTR8NnwejdtDG1MFSZskQXLu1vxAwz4ELCf", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qk4k7WayaXkKPy1RqN2EYGTrL55U69GCA4x1msGQ8pXJDYgMWdGw", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpmN2nPzUnQsNMtegZ45c5H1i1kXtAgyKP2PxGjAciiFrCBQieSi", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qofr9z6xXzsVruPd9EJmTBPN5THbPbFi7RMsN5YsEsLUudHnropN", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qniMZuWXeEmdk4DpR5FqJuQUkJXyn7AmDEaWEi87QkUkSFwqvU7M", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrrGwsgEyxf6j1ScFeRdedDmVysoJ9rgdxfPc4nZ2R8MQMNXEDdC", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrA75i4hh7DksjWcp5kCvwsbg5ZpvnZNpQ6JSwSdCmru87HmDkCg", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjbdTGrWycbBtQNCXGibCmrQv2iZEcWE2uqK3pbWNG4YbaJVaAy5", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qm8T8KEu15zpasR8TrxWcYZpZv7mKjMQBye6Q6F3i7XCMRWD7VeV", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnEMkGoRZ7HJ4QcttA3MDBnsiu9An6JmPBwmnTFsvegE3cr8PHzG", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqihjR81Sb2FRDhHQ6Vi24sjBvdju6wb8AAFowvnJXsNVkzjrCpk", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpodJPB9mVzNw1UC9brhVHtPtM4eFjZch8VTSvy7W5miiQ8n6HkK", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpqvHT49dSYtyjFCmQ8MecD1FUyvNBTdYnzqPWfCP8yHJ8Y964JH", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qp5GTZUZfN6pjwNFfpGVFAtNjs6GSLP4kbwV4mVFai2VrHmZtZNp", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjvS6wRU4noLAoYmtULsph87BzsW9frTEBukYC3ZyzstMBZHqvD2", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpiwjuDe7rSXEv8WbddPb85AFQ2thVcuQkHAcWivGJT9cveHexJf", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpLSq2igejhhquhiDoVWsyZhsTm2rJcj2yfFeHGryJpr9jwU7nDW", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiUouwoeYKMWUwfgCGRFqcUdwUhbPxKeyAFUh9hM48jD9ttaC7aE", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmuL1ANKHc63vmE6276VmNp7M6aRXJYWMYx4WTNLS5F5Dezuyv6Z", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqYxecQ3MtEJBd2Z6dWyAaXzSPxq818TjJoCrmRXNjPrknaL9xzT", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjXTrk3jBxYeJGMyqnFfS9ndNvMGTZf4L5xQF45qZY4WsU3c5EKF", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoMYmgBoFSTgcUyDJ5zcytgeLoZqQEgGRTFxu3o75gDoGQq6PEZu", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qo4rhUUW9V6GVvQ1CKnqxT8vkPVQRApCRx9AiY2Bs91e8wPznsNQ", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoneRbV1BNYxYLg7cuRXN2Th94MCDZVNsekakg99NDE9GLn8HpYk", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnXfeBgNDQ78xepUgjNB77QXWvD5BWjtyZXi41eJDQNqboY43Fgq", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrko1zoPiHAgyuMM6evra48UVg18zP7uYHkCQjeKuG3DitjXyJyy", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmFebYAxZujRMd8skv3y3FbXtHkpanTfCRk8LsivzWczxvo17NaQ", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpJBJoj6ND1sxv2bBhNCmotvBKUZAhCkB9ad2RRWVUc5YTutR1A1", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpvJPtyUHVU5297BYMxRBzndqtUBh8G7bY8y8H4eCdeFuq7DHk3S", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qm8uYHpGF6TxkapskCThv4gvKcyRvGeC7Zs3BgSH7n5h2GWTwWXr", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qj8u6KgCMnLghJYLXNriMx1iZ1ExiwKv8f1VHprJcKK9iFmKXND4", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qps17qTbqpPgbyxQH2ujz7PfoWWDaof87348hBbffvQbFCr64AEH", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrcftAKJKtzfuPEQb4mUGocyshUza8knHFy8YarkRRTfAz8Sd3R1", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qj94PfoSubvwnufKKLkV2TtW5csWSXM3z9mMQfoKGjjognjAunFy", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoNu8Hge8p59oAVRAnvBLtQuGhLi9XSMtTDVxG4enjNWERHE4xek", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qioXz32AqFgtrVWXDfZdedYhBjNYM9nKtaKey2YTgBMJqYFUGSrT", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrdwA8Vn1XEQqgsjg39BFTeYxjrnEabW2B6MtUxvktY8HnsqRDCA", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiyvbPi9XdSrjnznuzH3UxeorsSbatM1he7sm69LSazXfWFqSNvg", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkBdN7nYwxa1n8r48b1AY28K4EaruH93YVu37qNcNTRMoM9zdEvW", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjximR7cwVaHjiyQXmJEWhLB1CXi5H2B6BM7yrbjAELMfeFJfs6Z", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmZoeYN43cAa593dGhYv2Tr9xSGz78f69YzZKmYWmfoJMmYGEBu3", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiVYE3HtYoNAQgrBYaQM5cizNtTdyx8CU8ZZC3uxpAB98wRMTCnE", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpeah4T2HnMgCp71UE1zAaZe8Bf8eFAERdB7y3zB4x91t6wop791", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrQ77CtEuyDKpX8rkTZKAF6Az2zmdRUzwrGqJH4yF3SpGnqVLz81", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkPYbm6gjjLRk4bDbZM9UHCMVLo84WfbmvuSgYyfohTSZi1k1i9T", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnW2nwQMzUZfa33axVjpaKFRRuQzd7bA6394iN8d58VA11Fn5eFD", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjwBr61URVkwynewgbDXJ76sY1e4V6oeZrGMKk1HkMu96J9KwtWf", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkSA6G3tuqiLXQk1ETJaYiAyVybJJfzwszXzUyy5aQKqo2bmv12z", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnMjaL3uMxFGEibhnji1932bNMcboHbk1ANFcfzfq9xSgtTLDAjx", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpuB62qQZhDeKcuAjaVab3k2PjwC519tZZypZwhaXX2e68KCBkdY", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmn4akeFaswCsv6QghuSZWGHmBLY8NGWn9oFwp4HFCknpWBd7MsB", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qokXqHqVsGnn2W5uxiMcvK9RvL37uzVhRHLQCtDkai7BgCW5dTQT", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjtbzU1sHEobc2xn1KSZ31yJJWuttxC41njNXEMWeAkLC3Jhfxx9", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qohUNh43giXxqYc2qXbrFf2Z76PMRBvNq6U9J1tVoAS4CMwbGthR", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmaZzNUTxDz9UDFRi5zcQX8TdD1qPWr22gfB1XYzwmyqmGfEy8ka", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qorduyYBpEneqcac88DUUxcN2sy7h3o4Skqyf9CsxKgfEHCP8u7f", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qp3Zsxr58Wg5JuQ8RRCcHRWAuf6RqRRieo4xwUDjoKx444Hy8QDr", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrABERsS5pN8TRN1QzrbLX1qvmrxHoKD5KRLhgGHGLCSYM8vPQeN", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrAhVcq5M1eSXeoNib4KDToFoqtUmB2Up4KjDxnP6JY43vuYNssM", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkn6CKCRUGeYtvw6QSmGujr6WvRjsM72hEncTxeB6mmwe3gYEaVE", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrzSEqZMHyjRReaU357in5mEA94vdT1M47GVb26Zrh1Lt4kecJ7A", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qn9yYYdPgaosz8MeWS1mAcWAqy8WKGnByn4ubUgt1TwAdBBrPfGh", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpV9ECg7JpukCeshBS8x1Vehy7Z8bJjJNUSgGiekDz9cHwd8SBTr", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnJPiFZ3shEJCsHAgTCge7JsFa5ggrLWFE3XcGKBnG8r5yofmU9d", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrUSNeikpQZqfyTrse14N6u7geLVHSo1Vq1hj8oV9D7KZsHm7etS", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnajXDJ298mrXefS5SDhgo8FqGh6tTXjVaLdBU5VVjahPSaA5i6V", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qn4JfxQ7rYnDD1eDLUdHBFqNDCA4W4bQehb6ZyDmkmuqmQN8SUBd", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjrrHaB6a1aR8VbrpxAXVZNBRpsW93CxQn6mmXAPinReu9ZECJSn", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpC2Yxp6fcpsevLoCN2qgNskuzERYJExg5LFiCuzPhjmvBh9yFjv", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmnExWyctUmCeJ9C6G9CCBcJju9q3DiQWLAjc6eCTr7kPLcKE5kY", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqSMZKhoY9Z93dFNncFWmy7Uzi4xY4W997aPZuBsfDKHYVGi8no5", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjDHR2VjxTVnKKANdEaCq7eFSnrCiYR58dTXKTJsiUxqEZ7PJXxq", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmVu2hwwTUfCEerq54Vtg4SAr69REB83k2U8HmJh92PzYfEGyJvv", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqQgASehFdSKa5A3wQm5Xe7Hs5KYf5WKMykqbRAriA5fC4CXVZzW", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qj5pF2BcGTMpatM9FHUkros4m46FGN6HLXX1TX9DJDJ9SA9NwFvt", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqwniFE2DyHd5xPq58j14xs62a1H93yBv3FJZg5Yg9qBHzDMhdKX", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkT4ydXyTDWovBUNzSFM48GR8qHkkj38MN6J19bLPx8qEAbUWhzK", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiya1sELqRFoTSk7sji7gqVGdQrq2rar3HDT1ad6iaptUGWqXrts", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnSH8uXCsuZgjCdKyxmwqfyhomhDSCpX9f1GW6A4nsxSwkuGToTV", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqPyBSk2gHu6b8b734GPBCpS5xdmvEW8gvA7e7d4RfsjVG19iJov", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjy2WbzohrDXCVdK27j4bY4xGEiQL3PPSNyhxdEnRCmYrJh6VBbw", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiUjsW7whGxL9bp9dD3DBm1v4JZhUCVeEC3iaVQPi5tBmzPAcRCM", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qn8b6JUWRfGA4N2JVdCHFAF9xSXTQ98rx4Rr2XjFJrxfPLUgBck8", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qj6QLZbm9P7D2reJoXdZgGuuX8r3Ey5ugSEEo3GefR1Pa3c9ELHv", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkK2nBMiPigPdYXLLjdmDDXLddNRY98U1ag1TdbvsE4ciaFYWf7C", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qo2DktojdMaE31H6CqWxXcsj66xdgatEntCXR6YLWMCGPvbJVjG7", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnqr9q1J12RJBJ8VrNfJHu49Hs4C9nYotPiwBVs7xQ6cnHr3ZieE", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjdghfmTXUZd1771oizQrCynkXFRBeKTV8JawKFtWQszjU1w6YAA", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnhDMHtTbK7tbgqChJXMMvthXTBqmwdamUPSywUaLYnhPdTbvEr2", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmWf4YNdv9iyEBeH49YuxmaZnnsJd6NraCRm46m5feQX4J8UwSQi", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiWj69Rq3PkVqYJBWgC7X3T8PTiHqSuZzSF9xbRUWGCZKMzDZAfR", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qn7w4NnDScSo1NV2kKmx7wUVQFdMErTp49ch2d48oq2eBtmAPNfu", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qptAUUfs5MtrMHHMecJ7E26YV2tBsaLubrYYaBwcgTx4CHuNVH46", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpGvmt3EAqr68aKU35RHd8nqTegGKRcdNCsa6rCHaZGspz8zdjKP", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpobXS6FdFtgeyiDu9uoHeEhUesmmpHMrZSXiE8CbTdasXJPrsAv", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnY695y3qMZzFaD4f2obXWAsEKmj8CTox3YobSjcNYaBTAw7WThf", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnUZNXPhjb6y2WBqw3jaBmuGiHwEYzWQoR2Tu7mBBRnxBQx831yy", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiirEsxLVg4w9h6qfZ9RxBvYXBoZ8W3y4azez2Maw7qg8wKtJLzP", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoJB8W2j74fXRFuaPJni9pKd1ayJa8ioEcxzPUnxiUN6BXS3MAgY", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qr4Xfyd7uZVdrjiJwZxxqeCaAX5SE5XamkSRNQvuhgUmUPTnwqzn", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qikzfYyPa7ohzY2osnnnHXybiv3XC7Cn5HRH7fcFVqrzXsHq1weo", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnDrthWUoFoLMGMc3jgB5u7Mmokb7835zWNf45hqd7qsxfFhZetv", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjCHDwyp17i1YSR3BPFFFy2UiKGVc3TXvKRhYrGKoiMGGhE5r2kA", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoBomKuSkGNzxfEqjXiyZRoNwNPD9Aqk3BruwKDo8EeLEwBfM6ez", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkVZ78c4f22YEhWdoEomMM4wbpyRGMhB3BhnHxtcNBE8VSNzfEoU", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qndXkAFYRRBzWpJwv7Zy4QzhdDvvtbycKUZYDSYz8xLGjzq7VPN4", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoDdWfeC1boFP9mcRkk3uW1UCtJuzonNjkc28JEKkyqwtdhw48vM", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qr53ZFaCeKhmvdmhVH5njmCoEKCxyrVgPJCdRKjqJRatF6TXATxa", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoPCvD3rvr7BEbgibouxdGLKrDGVjLTsWsCdGbGjHGkBzwyp5nA2", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkVyWa7YBHcnVXnTBbgq37n8j7dQn91uaUPFkxWNH6P1VhgMJk4D", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qp9DaUXbquvbXQJzqjDgAQm4J2wxi7or74vStJ3wnAmUYrQtjnri", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpnPubVSwxdPfdkp5Y3SBWoac8tuCzgLMn58327ptbowcTX5pWKt", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qopfxAVpYMCRHsLtX2ViY44CJrUxH2yj8oCrLCMR2tqBr26y6NVZ", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnXvwtwk72FqevPW3Vr3mYm7GMgbbjj72KzaVdcnSfE2d3Vz77DZ", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpUxNWFT8X2xY32NDWKpF5omhR7PJzxpdJEAm43cEFC5b1mhSp24", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrcMA8w4hwqk5FLUuMsd166CuULif8tmwR2B8XiupESQ7qDnKy1w", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpb8VBBusa1krT17UJYxNQ9La2ei6FkuNZqdWtYvvawFPs7Fno2u", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjQJywyQQCZR8jUrE7Ed3cEEJJ6S278m6KNF5s3zDTKCAG6ijQhG", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqmBNtiqP5YwRvE6zkiV26453RajajbmNdg513V1C3gMaEZsuw55", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrZsjShn74TPEMQNfY9RVPP7nXoHPxXNg6FJHRZJdhNE9mU1TxQu", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkruceiEH4iZrquaVmPuMvqxGR2e1w7VqRAMcg74p6BUAvYZksny", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoo3HtBSqFwCniv2dEqUKyJ3wgL1nuY844jCTF3VoDQpDhSvMyCT", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkMhR5MChh1w1j56tsHBBabs6Jx2eGgUjmMo4WePoLkLPkRQqgow", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiaHYKMpjhSaN51L8tygHsGZQ19W6Js29MfwwtAAM872navL2pkw", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrAbkn8cpDobk7qvsrM137KaTo2Sgrps5e9bwNDDReppiBhAb1ZD", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqvX52Rkud5iPtA9RTtkEN1hGGZhWexV4GmNKmCtMBYPzkeyioM3", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjnmPJBbzSyPu5keMZwpMENWtdk6jz5UavfMcXSExcDheTwhdh33", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkdvXvW7wRorgDqV75V4LhxaYbpV6Zwg31VBK7NNA7gaTLpgVu9G", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrSfhvwrFx3F12wuvHXm9gcbz55K5dQgQSmwuK2ZCidpo51DGGMQ", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrXNB392ignTRLhsteABkesg4QPeGLfjB95RtyDXCYVMZqmMA8fe", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qpLKxvHgUV5Rfzg2QRi1LpvXdF1KRQLmM69dY8K2uxgQLcrgdBAw", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjiRokYkZrK4bYVXZZSL3CM5SDcJVfSuDKX2DUGsAPYC5tBqUhHG", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmJ9AWVvy2onx6NE6JRMNjr9VooLEpdXUdJMG4gvypgYcmZrYsWK", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkict5twHbGh8ejhzyd6HSgqRYG1ezosmp7QxekvMmoyGpwmzLGS", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmHRUAiMACnVSMmMf7yuPV2V3rtN36E4LKTgFEcpMiNtM4UyAAK5", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjmjKfdV8ZMJW9LSiBLRPbLi5h6r7KNnRKdY5cXKJmzKp4Wuvz5B", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qj7mcyhAzjqNcKLgfyr3YraPfaPA2X3b72VYA7jcqETzu5a5a2D4", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjojN378WYr4gyzPFSDE5ALecp36NZxvXhxF3e1igLksuqnWT56J", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qoHhxjSwPscE5zM5oRtqrFPHDgUqbQnGorgPqc3r5dgS9GTqTVKY", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qq5JhEfRifVHxDyUfGTnNHoXJdiJjszhyNnZn6K1uEA3ZUiezfuc", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjwNNzQyi7yWdm7sdo8CnCjXN1rLNoWs3CEKKksCjMKp7UKpEDwj", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnDf426wDFpxxcFMM6n8SndZYfQqj54TP9VHcPmSrGsTQMZchawb", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjjhPhyD87L7eBsiG26daSmN7d65MzzoFmky7s4y1axY5stwqmCE", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjJrEYAdKe2fjsCu2ysUTKg4WWPJqLFPDU6spEUNppG1QriPaN5p", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qjevhoFbi9rieiseFFJFuMnJBojLpKbMw9AGtLqp4zJNBpZzR8X6", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qiX7Yu2Bayafn8Y12e74EV9PGhtuc2PomePEpm8zSPqtXu1ukt5h", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qkxEu7croDkJcwtoo3SxM8Mmx1E8uLCdKQh5yHJw4Lu5cSpGC2dm", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qirvS3eC5iZXYKwb3K1QyoNs7Z1ZzEqdkJtWTNGYwcoqopuRjHDq", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqPxXwb4DdRRqxN3FbMsB9DHhH3q4CcHCRovU1HS1RrMA64mztHb", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qk77Eo7APfGLsZQDpDLa9yo3pvU5npua4f3bL4V396BgZgd6uXrP", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qrhsdC9koQtYLD6SmBddSB9EdHk4evUWZscUrnF7cLcjFfQnkdWM", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qqHroUShMRF8AbpykvaoEN63HTpMvSs4yjHQgzGLDUHzescuifQC", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qr1EcLNLhD13NXTCMga5VVadonomcxAq4Xct4xYKESKqqKfYSvaN", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qnkhC1JEhFLxRWmo5iSsp54XKUBpmMxJky7QQS5vUDMSnMHaDLNY", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qj3Lr4WAVvSR9dZGpBZ2T6tchAFPXySHKB21qcJavHcWU6DLYYeE", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qp2wy7uKaCCU9N4xkATYGf78VGtUGZVvcqicp7HLnRS1p272vH7M", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnorzRbsCzAHy7NdW64jU4mZALeBWX2CgSUisJmGGTqZLNq1WgwA", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoptQdtk7M893SHzNX6LyqVHxSmEBXje5nQVae94wp6VGWBc5qQY", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoGk4MHzvkjccSN25nJsYFT1te6nrbAAu8dU9SXV81iJJjjn1i9c", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoFQ61NsKJodAeN1rPgZuY4qGvnJR2mYjizKU4Xfs4K9bnQ3Vnem", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkh3xGoV2mic4UxrphrSSm1stMxZrVU5CmpMVhtiwxBZ6qfhcGow", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqBsyv3cBKXUSjioFZQTMhqos8pMHqHD8XH2zoX24Puoear4p9Kx", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoxa2UJzH7M5TMCzzEqofZKQ9eLePt9gYBDy8rC6dPumNvrujp5S", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnojzW989UUswHiPxTcRc4vFko98VaY4gAVCG8ywD2xFCZk6ggmh", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qirawC8LsyDJfdRRM8EKHarBqjsKyDmmv7VBVvgmamdALUKd6upc", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmPjepM7S5axP3V9MQGMQjUK9SPRvxNivAATJSVWVyC1QBYE1DtS", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqN22dE92hh3Sj7hjmReQ33wEex7NnYenrSiTJdyjaeRXoKhBM8o", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiujVvgc5cwHGkSE7raSgFCbThk7c8j8PXh2yGtoNZu8aEMWZ9ua", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnJLgGgMf1rz5BziRXEu3FzyxTNpU2ktdpno8eiFKKdk1K7kyXLN", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmdHGDZqnhcwGHKncRCLadiGc2KKZjdF8o5SdCeFLE2RSnUCp8NG", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qncvyEgMZZh8Hc5yYbCKoBNVFVBHQu3GXGb5CaKFfYumRnaUb9cy", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrtjuWAzZznf6oXbD6EZJAWgw6YbWouaYJ1LNrh4Z8Qhzpi81dBT", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqs68S4XczmKz97yWh7D1ECTjuUU7bYKieSMfzgNQkbeDefKD46i", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrE4mJgxgEmYBDZDWKhedCYbQVnBsjbBL1SPQhs3W38WijKCmTTH", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmDznpod1pR5ftosjKYaFxGZjxVStUvc49gd1tY5MsgsQyJggPdC", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmtT3BqHZL1Pj8gASykDWnm4zAcRQ3temCEm4nZd3DNCDLuyoFmn", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnpCLmFFsrZpXpoHbLvaA4kUZFvcnx28mk9gRgC96jTmyEmx9LGM", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qno41FmcT8FC8VYYwRBZszYQr7DE2fux4EEjEGmD68TatqhXFV8Q", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qisSBrEusiMwag2f1UvvPQG7tdBdCg7ch5Wsk3xRvATVZ3vG95g9", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qktysCNYow3pqMWS7u3q9G5NVJPCeyiWpp1u119BvMkdpCru327m", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqXTGeLZhXo5iVGQXVXqWV7dR5J2A5o8pVBThq35nw6chwphi2Bs", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqUYE7U8jcmCfbX7x4E3eiNtLNnBWnRtxr9a8jN9xHuuLnTA4Ymg", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqJqf7w6VusqFR8W6sJUv19ngJMPqcPuuQfDtLqnAqqhPhfafxVb", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkyEQWY26q5Q5yWfiVfKaX7UDGLpLoNqgiPESr9Hqv2rr7AP4vyA", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjMYSi583jA2wZ6aaHx6Lxa22NnwguMzUbUXPQmXwZeiKnCE2MSz", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qk24UbUhGxygcmT46FMVE7Rra81pJ9ErJmZjwzYpm8Jndfbw4QaD", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqbnMq2D3QjWVy4cT31JRkvnoTXBzM7sD47dD82n1aoR7dTkzM7H", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmD2SH1FSChSA9JQsMz6a72KQTAXdDTxhenMF4VPMtUewQB3Y8nV", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qo5L6ujLAzN6ArPFXKkCUc1DBoyDvSPL1iB77tGcfgu9qzs26E3o", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qr6gNhp96hGsXfcaxFG5A5QTQArYtzjkSxEeBDoZj2hW3xAHCxFg", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnx2aQGACu4xuok8CJS3Zzusfhwj5unquZGF5shT7DLNuZBVjHvm", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqYadoCtkxHh7CisC4QDLsqyRb1c8oUMLupAHjf6pCytEnxjuaTp", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkxnr4sDKLA1JqwRPQnes6tvm2aHmQceQ6q6C65L2iB3bCE3xprw", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpcT5UAY4TNZrA22m2rPHbMs5CxoWuBKXDPaTyNh379MyQ3j3qVe", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrCNjjirks3ed21Be189i5G7jGoZzLsKsi8cuR1AVA3g3vyryv6j", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qktC7e2pDZiniQvFzjWKUVJ5sfLKbXAyg4SEaCbJaefvWtGtVY9s", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnMXe83NCGDXxi72MZms4ca43wbq1xsFCAx3uqKyrpYtbEUtamoF", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpym7791PrVUF9V6zrSZRe8UjR4iCmdH5xQ5CfCiMnXVtr87ayxr", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmqHadNj7dSNceiQubpNkGmfRfwzaJmQNVzwNSPNb9SkCRV6tTWs", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjm6bmJP9FWPcaCTD4XmKzrehXvfFAgiZRqLwgAFoaoT1NTHUy7r", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqKzE56nHRtPicgREhN2xpgqnY8kCgcqxA1rrDcrVhVnYqsbyk5e", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoFsLLXNPpE3MU56tVPBc5zYVeQVDh625XWWHTTGKKQkEPw1ZHod", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnwj1XJSaYSkRr7A9XZFJUhPArXwUv3sNNaKmUyGjoBKFNdKnPmT", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiVvvKw2rD4qLsK3DfdhYLzN5D76iCJrwSpHfg5gbBSQgFzSQyVL", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qo89Qh1Nbzhz2Fs57XjArawmLG63j8RRaepmkda4bHXeVUcYSXhb", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoakCbMctmVBwqCpRsbaMm1BFizuZfWxjiUsP6PP1NQj4Bw5xDhg", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkdBzZk4siw1dmL5NGPdiWPx7hxuFVsBRe7JVhn6sccHGrNCc6DY", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qr3xHj9BMLtAUkJWXD48D4B1QsErvXUcje8ofoyooQNqVuKew9g5", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoWP1TGBfG4c8XKZ5iGLdbWe8BAX3SeFkcixamVSk4CwiZVFfvqY", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qinaEiJSyFXwdCJQm4Ne3K1AgAMx9hY5fWU9wGaR8brgUXJ4xLTJ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qq1wvZLww31X75MyC5U4t4mNsbCDw1mEtkHWKbLKxm2MgQSnyWEA", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qihHHzi68SG7yCwQJ5KQeUarJwKiwxmouVoKeoRGn4vLvi7b7HJN", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnZzVi7K7zLh3pPfLVrhwCexN8S8AGJkPDjaKfijv1xp7QGbn3EN", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiXwGput9pzxmyUHnPkBTm47ibRqRvBgU7yUXQcgAERKSaS3eQRv", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qivV72fr56FXAUcctgjYK9uBAf2B93dDmnKTefFe5MT7F6YUkq51", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqq6QwQ8vSCqGux1VPmqU3yKb2sCZP2ha2WA7ZR1LYHmFesjyN2F", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qk7VBfcKc38LqSmfjieA8vWD71qcD2ohieWRnWwLoC4uTmBC3kkw", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnE6FbjRpPNJBP29uUaXHycgr2zJtevbN95AiVuNgu9Q4FVCAiLe", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqwGZP8tdMyg6evSJUkJQLPNJrWSebdvVSiPpiT4Gs2YqEiMsmjU", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qp7qabznVEWzhqo6m3jKsYEpEbGJ5u5KQ2mR4PPZ7vTLyzWLTKhw", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnhnLDJvFgG9rCfTq5MS48PyrPcRYtb1psVfy5EJ7SHQ2He9nX2z", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmLhifg9LcmWVyLMVLeAMpaFFEP2tzzVUTUweZB9wvJFnyrcwy72", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qin5vtGyV8f3K48aFbk1LhRAE3vwWa9zzX4qsCq2sbNTor3L8g15", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qk2rkVdHZRR8L4RSrU1yLk9haWLFEpUgJrNwxVNowM53HHFF8dAv", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrxjjwuD33KjZMpBEPtt8PyLrTL1FVBw15KCP6gJ6wdMV36kh219", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmjnyQjGuXLb8ZQodTchfXC5uSKX46oChbTYnFE3rB7BLVCi8Ggw", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qizKV19RgCtdosaEnoJRF72YjTSDyfJ5Nrdu8ygKD3q2eZcqUp7B", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrz5JvoN7gEA2dTZx9ZA1xtWWdxoqjP17tMNRtztEfgXC8Hx8LJg", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmWLUsMxc9RCzqU8BRMi9reMPXNZqhQsCzizZ21NuGgrCHfHoKKo", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiviN34sX9JSRXVR1Sw8H67XEzkMMUVXV5bRcKScJJi1hgcw3jeD", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmXEkJ8qk3xPwPPsFRcSraXZ5iwY55n49Zk2P53pzpfwpD6rbKoG", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkoTW4fiihmpkFLKGYUmCciB5NGXEPqghJQvHASap1wWxhxYoBCW", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qs1c1K7GKu3ihW9cRQyzhb8kyntr6Dnww7bH5UjFQ7JMZguLQ5N3", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpusyMQqpAVLw38Az7SEarGKJjQm754g5k9Vo5drAWnB9ghsLP97", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qigvjMJCx179GA6Pv2hhhm77nixBy7JK7VEqHG3nwgJ2sZBRKaZ1", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkaFrkt1BKnp2bisNENie8yBbNPFfgu3KsLGUpig67GkUL48zG9v", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qixSXsAjepBeqnMLsTrE4JuEK89RrYembNi3SQ1Jscr9Vmf7mZjz", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qivjfWBuU4x5UjoFAG8hB3dG1qAjiygkRTtFv5FbMG5XE7PYhVbH", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qo1prYEDAwpoeV1ksBLKJ89GJgta9P6XM8MPV1UNDApsjTsAyftQ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qogQVgsho6Gc9wUecFspKWKwszTTp9ueFDJ4vHFes9cuHAiduTdn", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpBhMJYssV6gVyagiGdrmoGVRAkcVUQ1DUQv5sNAEBHrQRjC37Cc", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmsucjVEmif3mMFHiJFX8SiJEhNgQQKLYkgAkJcF7e7mXwPa6QNa", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiyfpX4ubKDFMDgcTa9gZwuByTkcwKxLdfiN1uiHCUHeohSRH4n1", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoyCMpKudkTytm4QC48i6Hj4PhpxPLQpLBkmTPvXstmnqx7ytY37", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqRjiY29YRA9PFhJr5Q3cXUotRQ1Go9rkSY6e5ZktTeXqQ7ChELa", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpsoSZYn4Wc2h5bqnFUCzHh11iQoDEteyhg3s67dwV82VJNwCpfP", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkMmj6RUVPzKEuVR4DBmW6o9aJ9ZWw34pCFcKwn5KSRUVz3kpNZP", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqPZKLr9qngDXuHBCGhe3yFA4FDPpo5tkFTmTVY6TtJTdJXFXVWW", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiWRGwb5bV9BCVhpZD3SiFPzCaMS13HptigLMPapjXQWxsP5ri9u", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpau7dUvY5ctVsicGRuZazdaP4Dho8rEzWJhj69VD27KwrkD9AcQ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnf9bUg35PQQchBdvHo5eBjoBVar4wH7pDs81gAn9cU5VcYTZ5Nh", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrQ4hBgo7HmAt4HQgJtzVzYHuT7rDoUYPYRRoNG52DvWBTPuoAJM", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmVgTjcsn7Bd78E88nvcyNrac6RcbWTsRzG4eLZoCaiPE3Tzf73f", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqy8fvGBuAnLQFFqGv6oHFgsruZe85JvSb3oJtEt4K2RLANZc4Kk", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjD78YxQKxMptdWtghqm1eZmfMYkZYfPYGfYct2mbHesuZUg15Bp", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrY5WeBS3aypye9q1mdDSf9z85AaU7bJ6pXfiqSz11otmGMADyXb", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrKPGc66Ac4tLtU2pZgw59wktrYwkgu17MZnyiF7Z1LhTE841Rab", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnWAaoVkeyeSpXsjR7ArEarPaFWLELfHZHeYrgudu6M8Mt5mdaj4", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnyrw74yEXN2ZXhXqQKhzF2StW4QoDARvB23JqJG1GtSX45e3vVy", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqRePhCW9uAYsSijEd9EoCHhJQGoyV9rBnNGQFwfzqJyg3jpfbG1", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qneCJQ13o8bUtiQ77M5BCGU48ZuSSMxYThQwe2Vy4HucAAcXBMqX", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qm1aY1NFYangvWF49n59sr5EpM47MuKPxL6To4syk7qZtAVXoUKv", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qo7mJRAs19zoddsxMukmsaoGW7aGJUQb8912C7V64oMkLemDupGT", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkLH3YiLPkjbsYXsjECQx1oY8LF4HfyCMezoRm24wZYBvsS5BWGy", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmwaJEJtei65xQyf4mR2XDSXBqsuPWkG3PiFbEvFQu9shyQ3WGf7", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qogoS6w6nAHz74qDiz1vgZ1RpETJrdyNCrftAivrxuAH4f8wSBUF", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqEzddMTe11jwLR1TUQezhvzi9APDn1oyY4rx2G3XZ6TiWRu3WGo", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qitJbBSRMaYaUMBMrJnP7UcVw7qdUUgJPbpYhSbjXf4ZdoxLWXoM", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqpEQR7MSFxYPTV42XSJWuy27cZ5js5bdwJQZvwMcsuBkwo8Hu18", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrDZnHd7WRbitFzy8viXCj6XVKqHCsjyFcNqPv1GSYKkcS3u9PBP", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qor26ttpxk3TP51zyEd7QyXKYbuDpr5nCWQhP8yEKu39NjvRnRSq", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkyL2FnUMsyY73z1JR7eBs2FYcvWoU5FzA9YRMNuK6pAeQ5bJNrG", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkcdtGcP5a111rSwz3WftYo8DXpFkCFQcLtZtRQCgrVUjHYe59C5", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qs1S1PAJJMzkgeVSYWgpFi78PrzLaH2waAQ3u2BKoSRfacQ6i31t", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpEGvxWCfYha6ZKkvrz2ebjYq3iKVZ7wv1Gz8FeAz6Ah3nxLx5bJ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qn2uvtQ7GKisqgVGdLppMZbZa2aHTw9briqbfP9g6Af2ZzZHuthH", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkU6vbzDr4Bmn25dfuFKp9HrRGrVwWjCbsKH7h9dMoQGdGto1YPg", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpTpyE9zFmekSZaRH8wwoVJszHWvEqGk4k6G7bRWzjtiWjSxVSkb", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpiC4nPvWfhjBR1ojV85vBbZiHXRTTbK6xGcRERpxXe3dw8uyWVg", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qn4ifG4Zn463hPkggUGpiQApr5nToitR135jPuvkeMRGJy6HXJGH", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpnMzwxvzALaWApRq94KdWcmVwvVrYYRTTRi5ro4iJ8AWbC5TLjw", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrKwT82X8SjGS2jkDTdsqewvMGTi5n8qABV3S9C9V6Kh6eQTUuMU", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrvLeRNjVYNu3h2AmUW6ipxYVAiNpakpjgfQ6zfj8wA48cSFnXcZ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpZL7SBQ1C7eHQJYWLA4DDtyYCtiYqdnc2xjJtGr6STcwnJ9SbgF", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmTLKczngh1AQX2zGaJmT4mEVyEYqBQ7LrT4oPYUW2DdxDataUsJ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmtk1RYvKaXi52eza2jqoWVC5VRtRj27D3PCTxwveTHTWYNWPcVK", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qj7iR5CGpkxiTuSbH8ckNdfvgjrifJ26FGqq8o6cRVCfeuLpvAYg", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrWaQFiYUPhTGaWohP3njthTD5JdjE61Eo6M5TV7fKhUtvkP5GPT", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpbsky1ZRf9ewVgPN6hXNFEqaSKpaRcD2bL3RHZzBzqoytw6MgVH", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqHwvwA2w9wcBUKeHFNWqfYyiMeagqssY9JwMGhcL8Hft2GdPncK", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjBguPjG2V7hp2XbNvY591c6Po94JEs686na1V5zvw1j1pd2n9HW", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkYFQxVyhJ7NJeBAWTX3EJtz2GwZWR7L7GRFhjshKStmhruJWfHV", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qr1nvqJX8LAnMHFY1EyvruJhAetBuXTWL9dtLzsVDS6reb9tR6Bn", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qim1Rs2q9yHrxG34UJHQ289dhWpbzm4mQRLa2rhVuYC2HXVN2LtQ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqVjrdAJZdntceyWZGtKPu7tNtVrPhyVTef9JXUa6Hph9HXt7ZBQ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqtqZcWKJvP6Xm7e2SrbX8x3snaeg1eKYXiuSYGs4vTNPng6zKza", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnuL2zL5XrkVCgQGFHdjSgrAyapXrxkWZaNUzAHHS1Zr5dgGwUVP", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpiToggEJnmahozVeBW1fiH9i95jEpfFYLiq7UdXkDcEmyqP2nW4", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qn6MYwS7Fz3YBuBvgU2VVg6cyjdjUfLwQHe7ZyYPJsBrQpSW4894", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjqqipLwU7u3ujhs9MwDT2ddXKM8DoAwADCxRmKWAggdHmGBuQMN", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qonnaBrHAhHG38LDtWMgtV25gpGjCDkZ8z5pJxbYTojTbPCEvbQM", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnZAeFodnsdYHF1iypCStu1z4Gv5SUhySweaSAAH44QL48DDga54", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpNrt8fxVCPHG3nmaLakXbGTreibCk1sXv3GQxeh36J95gHZQ6TX", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qomXrxhn9qXvWLDC1LeRREJY6q3SpFMBYT89bsSfTmyZRmnivL5f", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qojtsYmzMaT9cfzbnY3iWgb5Fh9scfttyZBccrnTBcy7xMfzm2ri", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoUFmYuq2mu55NN4ujR54p8CpFhoi8MGWoaHr19fzFSQLYeeve69", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qm3oEXgEMM1yQSPCS6rgFAbMDS5nMToNSabKt6u6kEKSczAipjKX", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqP8wToRRFkRoXCqw5z6nNz3LRDJiVE49SEHddNpezGs7rKBRuxM", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmGqDDzA6tNoKevcxbxBWajp92hp3RrBr1gyr1UQR3aRrJZohWxM", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqYfwwFYgW4ygMsJ5tJJ2KAYsRYqVDbQGjZRreKsPfpiiUcssyUX", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpPxciBhMGK7ZSyNgnZA46gm5Bj9g7vtPnG11VHXSeMDRq16EZ7Z", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmaxZWVPwfVQ2VymzWMTaXdNoyEkXa53wJcQPnRYLw2tQZEeTzY7", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qonhg4oqynjWzwPXbcBU9PmstwrJmGwEsDh9UbUmWJSwMhjwMzEi", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrvP5tJuHLrCZ8iPhmWhc3jgvyrcWq7Z9VyCbV3cJZv4ZQHeqsPe", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrQCCHkKKsUBfBZCWKWw4qdpti4PywXzAoe5s5cuQ9tVoteYTdHr", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpshCmBfTxk1BjyFXu51aeRztjzLFTctxrUidddDfXqiq18wpZud", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkeqddyEQvNTWaqs5kUNCmsTfcF7eruzxLSzrQfnQhuaSfL6CfTc", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qosvMK7QkPADnaX3M7LH83zSBcytPZsYWVxcfcRfa3EwZXFNZxWi", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qq4GwX5eR8BGWLfsncuwR1qbWz51qfLw5UVTSZZEeqrAFJWcus48", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qq5d57pzDtX9B8vydQf1BMm5D8ir7ayuAWSanwn6gR8DmSnawbu1", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiwt8iaQbJRg7iRa1NjGBfQxaXJSqu2TJEgjFN1gftCDGqJtEF9q", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrXsJLXt6do3ZNZrZgRWN5Df9RJo8BDeHFRFLbT9jCHJpbuuDHdq", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoTJ1BagpuJmKF2ANUYisWNjUwn6aLDY9LbxskygH9ffDLd4WJEa", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmdsyNqcPBA5CvRaTctXxHYjjfzRvqkwbc63nHVegjRQakkkZ41X", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkpCKjrWZ8XT9zQysP1hGPhb1Vz73UTkGiJQQcEA6P5NW2yP4LxZ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnnocsyVpeWXoKvbCT1NYRtQwyo93gz4QkeTJThsTYVaTEXTwtoB", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiuHcvEWghXhDeDwAREQLB3K9HLgaU7rdUDiAVW67yy1nZUMVWK4", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjTxfNS365PaNKRXr4RNm5tHWMHSabtPFicW3Pr32dVA4JT5JdFg", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiuMk4WCGyGjXsdKLeeg5PkaL1hYihhttKFgmUfnH5nvJ7Vq4gaJ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrwZr8dQLN5ixpyBNYCcq3zh2S6x7L7JjSgccBra5ZZcAcch6Pdm", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpnLGSA4xGWEZY6J4oDzzDi9647ZzwPFQeKfKgSEidLgsvMwsMot", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qq3ZZmYxRLT2rkPQdekXctwmJesgoNcKd2EsFyuykjUPMGLMW76h", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoLDa5KPxRkp1dHumk7mhVi8AqMxPfQrKKBneDzH3skqK7R4xvdc", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpgVXbbbUk2yLMVuxeW816sS9MEN5CtwinHjBBRyNv8Zp92odM5t", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiibU2Wzu7G2wHGwm4UUVQ5hJ57Hgsp4DGxRUWAKdPMNHUpUenRZ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoCsRcbswTF6PuoAPjHfocTWBKMdXeMRTYhdYcWqx1gcccQqgo2L", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpwSSAtkD1Ji4nhwhyMZzaeh466xNE5DpZCTewRF29ZZWHcTzJsX", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qj3Gd21rbApm9Z4VEY7Ved6ZnnmyaLL68LXYb8RYZ9Da3164udcu", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiqsMF2xmLXvVF7dcbSc47QBTTJDWzb7eiq8T3bxo3udcb6Da6H6", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoWanf6QcGB4j92CU7dwMeVLphkgxb17fGu7HyDqiZwvHvZMeLkH", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmRekkZEqbY753hmMnpBGY4Bmx8q9YsEhbkHwMEGWZinwrut4mSK", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrTD7cr8Wg9eMBciNUsqY7k36UVWcdotE22ZVjhPKNu3Vubi7j5W", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqahJNQX683tbYFsNHAyRKActiA6htYRnX5YszXnWcKGhjp6FSv2", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnm8eUCtse5xaYn4Q1oXci42yUBRe3SqyzgBvzuc4zedoWaPHofD", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnAJsyE1wPiSPZFkzAnXNSFP12LV7cjZvZRuZzfUzFMBfYBCaDNy", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjJBRdEfFfu4n8V86tRpQ9DS2968NeP1iRzdunDLDzLFWUwY6R47", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qq4CQVuX4HS4MZCv9gLHU6Ct9ccy9HCPgUW8kanKtCsbYDZsLjRC", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqaZA8qAJ7TU1irhLYKdh9LypGpBrdhV3RYtXC6rC5WBNcgZUwsx", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkxTnkgxtMCd4TXSyo3beroaNyLGZdW4aZRSn4MuqkNvrEjBELoy", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmqNaRoFBtgDX7Tki2afCM8aoKnVgeR6MPBM5588LqSQ4mgkdpCf", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjFbQpNvVQxAqWBwNLbH63cu4k1UKZuVbKE5ayCpk9JWQbed2s1n", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjVUgSEiCjP4cw6PrWJuotChxsoKjnQR7VjaW41NdChf84GmnEct", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qojSDceWpo6Catc3J1rbV1MYvaVzoritGiRe1wJdkMRUZ26eAEBi", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnJu32mR1zZgh697FGzeBCq7iDPgkcD2n8xtLHGYkH5NVmbpz4JN", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qioxVsQxyabiMNoWuuBNBiaVksYKBV74RCKd5pXj7bsRPU8EL2bo", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qr6JGpunV64Eh63jGaPTrf2bqdkG4dm7gY5dmx81qQVm2Z5PvCV8", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnhyCRP4pHJz9g1GCDPQyd44iNzPCKZTXsv5aSdXaq8Txz7f1sV3", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkfFYHQCTjSuRWSvp44eCDadUQH7QumaNsBnf9LVewL8WTpDKVM2", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkD9xx9kNheW2RNitFLXaUydEq3ot1mZgXBERZux7fJFSDyDJ14f", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qn3knkXyvdRti2cwB9dJ7V2CqSHWFepfK54uX2SVGiZDrtRxwkgn", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrg5ixGf3uvMnNzpzGnwHX8Y5Q9S6f6WuWozNFxjW5VA7KRQEG63", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpP9dY2ZjxX1ryrY24PKAovbmJ1DYWf9RvivKnRAZbfS3H2ekK1H", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjkgwhUmThgWqAH1RqyzFPezWLBkQLcKbvor5t2Auf4mmRkGvi9Z", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qms1hHXvtejTxe8PobDcWiAs4jr68JFQwTCGKdjFCNm6EtKKZ2xc", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoa5Co6Qt8HNrpaK1aHGB5PvAccn25zdiQUeXxooD4kyrFx1FkVB", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrYBsHiSfx4NAec6TrEBNBidWggbaTckD9shRcRCnR3SNqvN56jy", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qn2L7VHSn9sv2oz9o6B9k3mcFaY4W1hJ6sLU2b8vp5uXSMiw1cnJ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnBEHuqw6SGMdDMjLAPtnw9JxGxZDhrJaYyEoeXANSpz9WRiYVCc", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqJ3cchZLDGdVMLhYA7Vw7KbJ6a96qiDRRTugch6T5cFe1xGbcMf", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qitsUQRdtRTrPgi5EC4MmSFqLjywBLauEkTHKBYZ1BtG5ULn5Buc", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnTSEHxYHf7VQTuevysF5rcWiHK9RjuVhBxkBNxQj9vRrPEubbxt", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qipRuW7SsPERhuGH9b1TrdxtFiJimKStwwWWqWmineHWPBMtx5bS", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjMw5H9WPeMW8JMs373oTAxWQigJSeifqkuDWugDRvmehfFK454m", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkWEoAxkKgoRDzsdeGjLd8ubR3nPGMVam397Eq7L8cr1XpEBPrwm", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qr3keL9L4M3uZ2ZXj6LK3gqEsx1p2GikYGbfVPRbJVRPNDyyutzu", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmdSFa3WUspdCBT3TpPpbgLFSq6a8wqRTQqPx1g2Wxw3vFp2s2qp", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkDdDvSMjyJASji2UvCp5WPDL9bBw6jBA3DGQEWRguvpFqseRQJ6", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpoVB42gBnfnSBSXyrsMSm6rs958NQccZJGiZZpLh4aVPow8BHvG", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoXT1BU8wd5bFzkwit9hE6ACdWzF8yJeQdpbFyTEVPze7FqU2PDm", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkKCnod5n7p8YH9u8P949sd92A94rVgYnAqZqHRSzE5CrPmSPyEQ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrZgkXqCrYUN8Gsun5jn2hM3CS7uAirj6gK6BZuK4HeKLeqwwfPd", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkeX7q4Wu2nA6u8WvjVDbLjEaW7pvhw864XE2Bp762HFQnAKfQXY", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkCkqiTPvAdegvYPhYg1mpDdfUspSYgYsjZX5yrz9mWxoe4pxxY3", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnGr85XThgb8hxqfsUPbuCV2DPXr1fpYMVmu64GGABtWviA4eLLq", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qj9Dcce2LfeqmnbWtZzg5VQYBwerW5Hn1cVyZ1NbiBfgWFbcpzkC", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkZEor4iZmTK53ruDHjktG9vAqaam3UNrd6ZaZ3r7EohkDzJ5Rw9", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrbVFLfPFvUHQEKRVmyhYt2AL5NyX8hhxJeAWivHHDHtnW9biQCK", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqgy6cJfUyRYKJbUHvh59xQK4egUWMQxQT7MBSKJLVwJrsphdzyL", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmY4UpfvWNrj1rXLJApnhfc3tA9fviqtybMpnwmMiJJvTL1yqJCt", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkzzgxRVq6cA8LkEQeeqBgLHpQDph67BdhXGPkBzCdHtEgfwx1gu", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpNBQ572fD9RYU4sfn7nujdAiZzdjauRUcsPyzjJgjiXCrEc5QfU", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpAzABuZrQytCs4W99TcH3SQ5LBXRfbuUF9tH9ZkpCEk9eY3WptY", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkVGvie6KdWWpo4mUNLcW4UQwKSbr7vRLV1PJTDqecM5KeYUti5r", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qj7hR5dKqk6gXQKs8oBQNrsHPrvgEttnRByGrw2U1zuUn8C3T3qK", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qq89VWLTbgb6q1ih2q7qUvb6J6mx1FeSZPEwVsYa7cWQky1gHYGX", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqTmNNSWXN1EpDxCHa1YCX14kVJk2KmQfexvkPy5sonFneP4jrM7", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrDk6jhgvh4tnGcaroKz18cmJwWer5jcNrqr8bDyoNDeXhyckXb7", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjRhShNbrDVM5jRV6D1pPvPb1cZVtp7knuhDxUauZ2S5aQEEjEv2", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkx1A4eGuPZvFCg6V8LVX5D5wRX9Gp7QyveP8K193MP16ax3ieeE", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnUv7zknA35qtSFN22xykmX2xiW3wjdRZtaGxp9GJ1xb5uMzpRDZ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpiMPMXGpNBsaH9gJnqBZCQwuCnf3aLaXrijVvdB1eq5bbbkE9WR", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qis8Y51Krm1crKcytSCHwrtEpaSGuLxyVfeoRNZVHKz5GhBnTZ76", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmrA4uePQKLKZ6faFDXqwbbeAwvsp93gxQf1Ngzt8kWxujtuoyJV", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqyoTDozBRG6cGRDkQGey25gKEyjkWxu9KttTqFPtxfkyc1PwhRt", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoRjF4MkGA3jTLXA9JSTfsFzNkN1LSxnPfynKEVhv3XJnQUjPffh", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjdSH4mQ4yX5YqLmFHazgCMdzJLDimj2yLUQwmbA2PcqKb6QEs66", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpCioJdgb3vPNSkg4iSgcMmybR3SkRyWMwqfj9zSHT285nzvDe4f", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qn3H5sjpwDevjZsMKr6UuqEAf3QexzpPi1pz4WYQVPPrLHjVzfXc", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrxkXKhvrT38peaSfAM6cR9jDBbjbUrgdJihJcj9VsBNvu2Lenaq", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkC3vd6c2QwkVxX4m4Le5oBUKUtLJn8Pzftwp5hBRQhBcNm9YZ8s", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmkf3v6Pf1BhLZMTKPsvhRZz77nqnRpqaxQUE9U8J96kTECjLvh8", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrk6sKcVZFuAnEatoHvH9wMs8h1bbzPTqPmiBaL71uWRAjxoHFkL", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqBjLNs8Deqitw8j4bTGQbJ86iQ9gsDSzbty9VywZ6SgAPNRUCoA", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnrpVRDSJGfqAxpBurRGWM5VCDqN6zVgZ7CsYwcLYF9DCDgU8cqF", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnKdAa23Ecg841EQ2hf79rDqV581SN9kfjPAFx4zLFKjq1hmU9LH", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmA3b8uJcxV5jtqitfD7kwwBcRGb31WgbJ9uxoAewesBuSHbA8x4", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qq9h7KRQ11YeSz9GCB1fMv1TUUTWHv4secCik8UvTknFjNfeHfnd", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qprWgPpFRwSwBLBoVLPCzJwg6RFqiFJBxY1L5UvUPWRqRxXK9WPK", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoaWhkXzaP14BEp7THxefUobDHGMmCvFcuPHA4hRsG7JZweSrB4V", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiYMa14Ha4G2Q8Mt6PfX6etcM9fwAjsazZRu2rkFdTbhR9hjdAZ8", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkmUD5Dn895cqKniGMah7K39K16jL1raNvFQEuEC7Tm7A962EHSU", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrR67Q45ZcEvUEkZu6Zej2rqKRrq9KnTeotAkizDbYfMh7RxHHKZ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpYaPCaR6pX4SsL6baH8UuJxoKNYPnPXK8yFFMmJYfiEGsDjyZw3", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qiiJ7ATHasHo6wDvMLz6u7iU3mXfZofjVAsrjnftR2uupkeDuTJd", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoGEX9c2Qg8dZP9NT9MA45zPq7s2jJcCxXds2omwMj5hvFPAKYfx", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnkapf4NMQeEWHUk5c8NchVYYoE8ASUaFNtjgZWwCVXnzbDUnHpP", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkvXMnXqtjgCCNeC8Aivz7rxxURDtp9hmFRSZMCsogAK5xdJLwoC", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkqajwXZv39AXRiN5RbhnwviTqtasCdLHyorL1HiGMFPBDn6Fyiz", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpCiNWCf9vDwU135Dm7f6vEhf3tHWXfo3JREPGeezwGWLgeftaG6", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmX3R1VPEK3n7MGKjeaYJdBAqUwauxTUrSxHcGA8V29yXB2QABP1", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnMVnFqTBfM4xsWaQL9g79PEmBzNkdxLEK5XGKAajzR7ct26iUpJ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qknApun2M1JTc2z6wmupVFDjDsT3FRREcoHNDQadLUC56TKiLsGK", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoGVCMH1oNfCgfQ15yhdbSyCwbLmNXxWactmJaEzkuWueNQ2buTZ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkgQ7Ch8ayZUzVquyiBi97tmKQJFWUfSNEm327rSSzrDBF9zzvnH", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qijrzzxLmkbApjMvc3d4R78s9mo5B7tHsXKphJNYGBTfupx1FHvC", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qixpfQuQH3dHrLThYWhANVnTEGsrz9UpKAM7D9eh9zT6HkZrAJw9", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjGJtmaTogKstfLdfzgJgUiwGDko7UugF1HmQ17b9UaEiDgdSh1N", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrKLTWEgRfrtJUCxLSLBvEZFwDrFKpbbHi4nXawkP6QLoXEZKg43", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmCuQD5GGXwL5vVHrwj6Jcu2PhUEEyRkG8T4YQwh15qtSwY5xgdm", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjNbkVmqE1d9JaKDkE8X3YZkXY5xZV87BtGtH7w3QyHF5rpWkor5", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnJEC2hSZyiD9P2nKJkavTgAihJaFZDTQozAwuvAde9EaGbRzjxW", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qoQ7fCV7QJeoiVA5cEq4CCwDTq3Ba966zjaFN1qVz4EvYVs8dSJE", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpsvYpJsKXSwMd75HAPBCLgPfLDSepUEow7WG8auNoa2j5eHNzNk", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qk5v8rhJeHAAioZWaSTVtVsWoXtYLViLoePEuSmC22FuhQgXXajW", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrUrMFpotKiHH2muN78FC1PA7wHwkWvXTikE9dSvk5qNuYVGdFKv", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qnGkYbAGqv9CTjryGEwwNwKMRcBRynKB1nsSwsUBpvARDxLvHENx", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qj16UBUQV3pPHMugJ3nY9gEvUwqXVNak5ygm4TBnKzebheNgbqWQ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qjyiF4VbdFqU9FwKt2YpXpSWzLxCjQm7xUo2HbsnCAwb27vGHvki", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qqqjtoHNRe1JhCBecwa1NUC8xqPgVqq9f4frV3ABEda8jw9mfXev", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qrPzAR5TChokpTGL3SWN5iAsuw8zqoW7rFwPGVoTi41yqTRjykXZ", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qpkQ7Ue5tXPMZGdvh8wHuN21HcHFnPcHXxcUcWSi77Cut3q7DkdL", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qkUbwxTrpUZfFFUNdYYgcmjGFjRtEMG34qHnFKxDRnB9qeMBnFrm", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qm3Vvr4NkAsR6H8sS6JyRSyaxGtUk7bW6gGcQfLy9Nmu4Z97ka2X", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpS7CcoXHekPj12HWRzNmYmJm21z8GEgnPyn3KmT82BSadppQM5s", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmRSs7nusuAp3Pvug27sb3tvVWmLJUYJsmKoXCusjuFTCy7mLZwJ", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjDdGkxw7aoib1ZWPCicFuhcMrbJRNsQimcmJF2doZiWyAQYdHjU", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmLRVc2b9sWzFJzCAbJFrPzeHUnAwP9BveRrbpaPxzYAa3gUxPCR", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkbeUooYnAK8MpVGdKvJmxGun2NWH8UgjUci8FUwuGMRA8Tc9wCc", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrDjos5XLdHQ65sUFAzpWbw93CpF8jD4PBs81sL6ND8kRfyQvE9q", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqPWcGTGotUDiThmLqM5aqMx2dBLTLzgsMkPPzJmwg65DGb7Vh1F", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmGDppNqR7QxFpNvCNE2EqTPtYUzDvhbk7mec8bBf7irk7L62tUi", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnhC8CK7VYrrUdYadu3qWvaVy5USmCqu18SeXp7UEtjAeVNtxWR4", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qivxQ4BjwJrf9gb6P4o8Vj66MEaDvu5Sxvss4mfy5tmGtk2hh6EK", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmK9CAkSqJzc5mDLZLR9y3ukWid3t4sL2cx4dQDSd52p7PFUkLSQ", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoJigbxRMzYcNCd8gcquCasti2zeMuoCALcc7gws6SfJxKHbsgDj", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qn2jSjZsYboWy2nQUp7yB9BE6SL399mSbM1P9skBSTgywgEaKDqC", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qks4DDbXGEKeUgh14Ja7koEQWWZwgi2Dh372n4mAMcbUwYTpJ58o", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmjH3cWaXZRf6gfYkAfBwkejqrjmMMBxvKa6X2EFeqDcqvk7QrMm", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qp9AXvNcwdDsP8G6uasmj4i2W96SW4vR6qdqysuNxa1wBXTYq5a7", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpCjmDxMRoQwFo4EHvKWRdqdQyX2TqicVgMTpZGaEwikVcu7SMMB", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmDUCvEjpMce6HRHs6XERrpCgePX4UYAd4ijggKKHmN6GWYGckYA", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpmmTwe2rPAPczMXw61eXC21gxku3CsPBpBDwcmqXVMFq4nMtbvB", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qk76HRfUx62jnmn3At9jpWTcyc6s4Q2dvWmGHF86o5CBi6Q3nvc1", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjF665bCDoiZBaMxv8CADzh5PPQP2V1bB8v3R7j6AWaatSk7FosD", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqvkmsEukKwX9vtMJTfAjnpchWy8AwdcPaB284B6g1kwV3SWEXpM", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qppZVdwxcNQPorckSVN2SpsjLcT8cd25QBwBMH5Cqqj2UYjLQPjR", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoz6c9nrKcUwUXM3FzhBwDkAyr23pmE2kmEDzrHuR4jcsnWaQQ83", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjPs5V9KSus3oGB5HnWNyVi8FBEEVsWU6TbUTWQP12q6vWFwHHWH", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpqYJ3LVTY1x77Yjo6E3Q2ajQrsoLuVUAASUUPfh5FhC33o38FWM", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrSkwHcJQeuSMN1cw1JgfoX5Y4kj1Aog4Fq5XiZEJUJRLRMAoWai", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjv4KELyqz8Q9tj5C2afC8mktQEqhuuXmR1DaaDcTJuB7Q4vZYCR", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpUw4UyShity5Agzp146ij8CmGVbhj7ivTc8hrFDjpH52WJW9NZK", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qishFRYsLNPmuCccoTQEkpmZrKTH6tKuZfg5DdCu4k1GAuaTEqQU", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqVxhjKgU3CvjNyVeLSMKDwLTPFoxAKEWuPHPWkH1p5usipF6fMY", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qquMd6NzfDmGeyKY3Ju2cT3iqMfipntC9z9pqiqeY8eZ7N7LgWu5", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoYXQcGfyP4wAocB9PkZmNAyPw4RLzxhQSu8nrQGY3YPbvGCMoR6", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qj8aSzRo4zVEzfNju7Kx2gA8kxTemrZkbotR2dxhiSQVEi1BoFkW", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qom8FjY4HAPaYmoPYuE7nwwYEnwQy2VF2uCiQ4CgnGueC1wzwNQe", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkr5cePdjLgyGwXwdRC5w1Z1xMRKDRWxvPPuJTE6k91QYHRnJXq3", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qm69VgY5ad8byyZRRF3NyvDQuPsXhxcfULcJc44kRWNQFPeppKQZ", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qn67cwLkkvZ6nTh69kjDNdTWuibkMhTRhneAaD3cv9CtEpUQPaUb", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqkXpUqnbH3HgH7gF36cqXxoToHK688Yk1n4iVR5Acq8oPnUAjDS", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkdGE7fi7QTCNQ3JxyecdhdYqcmAP35GH1Sf2Z6Rtv5ayTw3rjRZ", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrG6DzWToo2AEXk5Ea8Dq5dYnNAX6Zz64AP6paALKug7miKbP3zj", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkcHs6NyfYWhgyEcXeNHvTDr6XTzoEkHNAYzc1VKfGxvVKoMXs1f", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qimX5F2zWyAbsaYWnrs73FsfJhhoVdPs4L8kiT2r5enbkCyh9Uqj", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqaWCFLEQ297vbZr4aUtptmYhsQoSSYWNPQrGLCZgp9qew5PkSmq", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmnaZsArqRg9HgFAxT3WL98moEqwKxDdumaibGd2tKBV9dehx2uC", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qib3TFTJoZcYW4DLW4y1JVsg5a6cjs6ATgFw4KHQtfz9Zpwemu4G", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qisJLCXVp2Zmsg2noyeXwiW9RyWSFuihfAN95WNsjbW4J6wYAJ77", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmXkRf9ZWf56ywKWkFsuZLmrMUwXahi9vodEj57JQsD4a7s4MVbo", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoNwLpd3n1mks3XkPFkAW75rjJR3KU3y37z9s2a1g1csZ33uULD9", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjXpCM8V4gbbLVR39ZALrMzrPNrUCEArFauqgsnV7E2WRWTc2oze", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpt3RQSqFrfWRCb4uB9DkiXozm3MvF1iYCrZZYK4yWqtj1rFJQoX", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkTJujP81s4B5t94H6riTuAH9NKZg7aaKHzMgcdPPZCGwidkkwdC", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qr5DsETvzfnBPNS9y2rxRYArQWshsW5o6tdLii1rPNf13UwSgzHa", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpWx7ofCFVKWyUqWg3WCfdy7rGABB6WLd6w1ks3nBRJHJYzECtc8", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrRNYRJfxgzq5KJQqe9o5BduztgexVWfYMvQE3HndyZuTYwN34CA", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmhD9oeKGjH9PZHUDXofEbihBfJmeAXsELWw12bP5qYXP9jQ7jDB", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkAFAFp8YiMoGJP8kV1mq4BTx2h61ghns1hEzJWqWVfYQvzxmsyG", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjh4UPE5ihZiXfm8p4QUXNB4pZVmA9YcKZ2VGAqeTYtifqg61BWm", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmu3XzAmJTd5jJaMd5CyM2DmEzWeTYdEsdRcYC266su3rZ6wUFsH", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnqHiwgyNUcWHnk3jcHzhgNvsehN2eoD2gDfUHggCGEWXU6gXwSw", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpQmLA4yu12pJ7XewBCVHA5RWShcoNs5i8sU486sYJYrn3J7tUaN", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qib6MkU786jhMdLAqvhZuwWjkapM5FpMC4cCepJiah9hKjii2Tsq", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqoiajLqN5niJYHK7tfYm1ak4CBArnvoTLE3YQ6ZE92xtxX5GEqF", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmhCtCiUfzavgweDrekeWQ9QQPG4BmgFrA87KzsSmH2eLv55S456", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjo1vthuY5AXtqrKaByxLPUoNPjH9ZjZM5GxDByHgmknB3ttvrmi", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qo9XEzCDBVzdoWxpHUb9Q1vimEEFK6zZcYkVonrP265QpdnSsMwH", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qr4dsxjhE2qADQ7g2GG7XtmjAm43uUdrp6n3wVfWkRa9mThoggp1", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpZBLMwjcsXZismsqpaPhS3Cg4AgY6ue4CDSyJkiT9jVmgNymvKr", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqUEMzkB7HkB4gvpGL6ug47cwQDrxUBnKkQL4k4KFPZhJn8vQjH4", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoJVSmcWMK4jGk7zYYtaFTcvfCd1tgGQwNnsErSYzWse36Kkh33h", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpwheywNGqq2kzy3tmQNzez3rFnDXvd9L5w9r1ZeqGYC38EkLxxG", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpCeM5KvJE8bPGBHT3UuBeUHNVEiFfAYY11nTnrHeESUmygUTj7D", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnFyzph7eCxPA2iowbzvUU2nnGJJavP8DB7mYLy92pfe7h3aq1xj", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjw4f2KKaVShxBVBruN5GyV2ZsCJuzUseN2iMSNHmZdyZF7SFPq3", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnG6rQgEMVYwFU4BwDjJ3mth5qp5suTntKqYroU4SrUk7tpHJ3k8", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqGCg2M8hraEt9snAzKWueS7HbuHWYDDsv2ccSf4ntWpqRT5MbwK", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qngtHBdxmWoGDGGHLMhfLSzXCgZeCTzxNRHeLimeeoSecKF4u8Lw", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqZ2rCWtCNfpKxSBKc6WrJ4dAuWkJAwHNRe5AcXNawiG43vHC46v", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnbcdqq23mUdDYRAKMiA6igdTybZaqVcBbCJ5vKBZUWzdaioAYag", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qotdMDAYvsfS1dxp7G133mkEvrn3pWaURjYwYoEN4are2r9dBXfV", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjSpfQVUZWsL8NCQAfpve3LZxJLBsH9YBw9R79VEAhozah9ApVSC", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qq8zLJVuLM1Te3fHweiapGpUUek9od8obqXk8e1cAozn9449sSjn", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmj1cSEv3bTCcdz7PSawyhPGijLv417mqvqd3o1UDwHmVrwo1gLd", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qp49ptsjiPwWnchX1XfPdAESN3iRZXNKFhwDkxMu1e5bLxcWqdUW", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrrt6iM9iPghpvJkjfUxwSW9KxGpbAy2hV5Et4pLP57XkNm2hEUC", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqLTR4Gti7vfDEjuz2MhjZ5G46wu3hcABMjSyCzjPUKsTRWZJqse", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrKX7BqMzRiEPUeBDDqC8TXEQ6Tm3LDdiX7d1MKVWp6dJcKWyhiX", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qivAS2aeo8dLyv9Y9xV1w8UNxEr5HQCHGfG4qZiwXx83LxVvYQ4d", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qomyWcKknJg2JGXrZqjKtBpDj1ZGvWRcvoTtbEfu4MQJNZSVDqKj", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnEn3uqdnXw4wF2wPmHxQJ3fboJTyPDMEFWDdcC5JfMm8PHNgfr2", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjUB5yrxEtoCWJNLsLjKBGJgRj2PUVzfferSGi8HBLcFLBLdeduv", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqxDbb312dbHH6tR78PqLNiQEYmbTm7u3Lecs7AvyXjnFRDKfiGp", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnZBNHGoGCjBtSGHYmZwnaGKGtfFmKFFottrxAAP9RfirSAj4q34", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkraHvjGRGy84QMZt2ewjWk1dBJS7aJ7DzUbqiH4PP6MHKempwTN", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qripQKX5tgmbzVPzx9jTP4WbF6FPsbYyUdiGxf2AQnmSN7sykyuA", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmCdm5y8rcPCA3Jppw91QJeNWSiLFNdR3vXxv8cyiw545eDHRfBf", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qodBsfufL3SwnWShYnpngypYtjcVonpdkyd7nJkwDnwvMJ4fXzvd", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqhaS6q6EeAfa1WnVGbbPGB8YRVXsZZWebj5MTKJWs3WBBgCpEg8", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpF5ANHemr8ZxKyGL2LJnaeeAdPHDDkVnKc8kUVooW19GdNwrJhJ", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqKkJf7vNMyx7Ewx53tTQ3jkoSRqb4srabUs8tH3eDsaE9Kd6TQq", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qm6dCj24uonRH4ue9r5HCFi6XaQqocdFUipTWPunszPW9JDmdSio", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qozXEx72oYnujR3bpML6knKV1kGQ3eUUjD8VBNMpJhfWcHKTPMJY", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoKSYy6LRtsWRDdDfFck73XhHUtc17dpV5tapWuNFtswXNFGitHC", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnqTDYaSs3i2UfENzQipJdcvdcWkabpNra7z8aqKsoD1nEzyBuEm", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmDiaZjT6CdcvrMmqZba5NnY6GkyTdZd76S9mKJ7xXKVcrTZbS6W", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qp8hukfrhum4EmEak8ZQC2FCz2QCXHncr4ez5hFuvLRafnzVDmEV", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrv52kb2G6LE2oupD4bQh58o1q2P5ZBjQPhHfs3YL9yboi457uPB", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkwNKFErJo1QGTbGn93xYneCNpNns5eGsZTNHpGNMURaMzeEDusj", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmpp9dTHDew3cq5dLaXCQCJNAAadjZMBrpGi4hjysTgyJi9KiWFr", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjaSDxdfKBWgqhF7GrErMWMkUhHYcpcHJTnGgzY7SnMRJJKk5jJV", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkp7dFnLhhgYvZdF9pqgmqKPKVhEJeUF5ZbE7vQYi7Mtf81FUSq5", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpFT2s8TaTEbg4L8hcShGfittGnLAEMu2dewhJoE72QMhnzXRmgd", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjhnciwfjYQvJWMAW8xArZD4rogme8WTrpgXXczcB9JuhmUcTT6o", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqvPynxWmEDBkRd6JBBqtde5eQnq46pPuGdGTETknwLkfgsyopAd", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qncv3b9fAjhgXpUNagpTDPAenWhbJFhFxfst6v1VUVxULUCmVypD", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnKiGbfAnFy2wATE7FgrwTya4PmxGU4rVnBYVr8ZfQtPVM2CTRyh", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrQFAAqkPmpQjeu1Z13Sf5ogfwutHrtKeBNh6Xau1nesCBYtmhjG", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qiqfowFtaszqVVpSwiQMk1mVkJrPkdDhYmYY3KonV5J4B1574Y6j", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnqNVhkaBK7BfMDPE6Z4X3m2Xb3x6ZXcdRKFGJVTv1GnCX26tLoK", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnqFYh3Fw2JeAHA34pjqqZ9zvDgBbb26aN4LwGQ9CfHHjtNDJuBr", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qktSnAQEzXrsANxHY7yX6izhk8ZpLa52YGKfe91jRCPF5rxqEFKE", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmxtQNPXPhivomaEasr7xK7C5i5WXZtiZkU5txvJ6AU7Va2piZsj", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrhbYQgupUA1cQjGTs7Ba3W4CHg8c1uBFyj38hgD9LkF6W33e8Qw", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoofpNM5oVJzZfq8WmKTYhsUyfsELZ6wEogFSLrRSGCXnGrYgkzd", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qn34acEmQEMJFcq4RDHdAfrjbXD9JLraKRVxtdes9srK1JgLUSSw", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qk9FzSy6kh2LEEPzVxbN7weStJsU8pUy1eEKPMMYJoW83pyM6Rcv", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrAvPFcCpd9BokruX9V5bfiYYKJNJtA9N3ZaCs8F7e3uip64Wnq2", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrAqqsBiiAoVxEnLZRKQm6nPBFUqj1dZLHqMFTibdAMfdu51ZcT3", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmaVeZrNYUgcEdYJRQrZNgvtXx7D1vqxgLHieCcV8kaYh1UcA5Y5", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkTx2SBQc7S96jcSovt1qi4ZZTRkMPryHsSPSU4z9nPoATL34EEq", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmLxJkTM7PbqvqzhEFqud9reShULfHDbCqVFEegfJfUDXaHmy4uq", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qiehfutY6j4PqmwH7YjHq1EsCK4VhYrgRAwHfiU9H3gqCMWAeiSk", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjNQayjdNJoX84zgkNTkdURVvyYc4HpmUxLqb9MDHfWyxcaA4DWJ", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrDMUcMi9Ce6SGfAdbGG6wLe7hC77kqbGHTc3t6F6QS9HFg8175e", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnSjBWbWSEdJH3jYxcqR8aej7YjUpdTx9Vbw1C81oZK6jayy6gBb", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpRmbEEDD64E8SdosJ3m4ShcPjgEiQqJcwWKSvTeYyrfTinXU5Sb", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qj4bhTt8VcAMakRdCoVN51VebpJEswu27kZmyH5vTycmFca9F7Lz", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkECqoBgbsAoD18YG5Lb4Q2Y9DZPbt1fHePKjFcPQbocAhRXpdMH", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjjZQxYzJYP84328iWDPDDfpgLJFi6eaYZqKKGSLWKPkVLrfAcPR", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqJ5t1x8Ak5shLiPqHNtx1yzdRizrFBihKiECHpUm7ZSrnT3e351", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkghkcbCkU4JhxEGmR3PwyuFMCyh6zNGV86KvRTLyxwy7bHDd372", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qr1LR2NGSZNE4t8bF7m7abWNw7UhMgL9kTvyQShKUHy14RhHeaG1", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjrxkWqxSEC9N5DdwQwERNedztaGQJvjdF7wkSrfmo3R4f3PgB9P", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkQq4XhGdpaZQwSrrUFEvKBx8oy9KqjgPe5tDtAznsNmAx744DWc", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqnrrZ5wbhRpwJeq1u55Sz11gBS8Sk1HgrhpuHPwibGmS3KjcCgq", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrBRD2ogqWkxz7PhK9BoCwpnb4oGJ38m11ivvBSvLgpqocLJ3ZDG", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjQhBkM9Szcry8a7PFPvfsdLdXTHvHiAg3QS9no6EC24VhVVeWj6", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnESDJdYZ1yDrsR7RvQ53ratVejZQYnvudCEJ94gbMRavFGwFHHH", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnP7eSTNBVt5PkzKg2G3cfBBt7QHRXjvEwJN6uetzGjiwXvxx9Ew", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkEu4rLKogeBRRawkjUkkj85wEJLENYTUPqJu3thm9DqUS8A667V", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qo45LEtf9X1mwaNzaswxbiBi6eBHf6KmRvKZ2Nr4sSzv3cqfj8RC", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpyarrPNPP8YsjDELrKBes5jRS492DWhL4BDt3JtaHjRWv1ThpYN", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qj8WziQi9Ao6ckxAVfU9wPBfroNK9YNjfrAudBn2FLUKx6dqfpro", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qigjfWdwy9Kb2YnwnimzNgCiD8R9v21FYygtXMNBAub8z6HDaPvS", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkEYwKge9mncznQNzoucgKAJBRtt9wmKazBXYnrFsT3gGj2Kj8cf", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjBNseBoctadnCBC7oQD1SsKDgLR1bzfXTUy5b2boodBj2Ra9qcP", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkpG5BpBQmwB4iWCa9dxZwmUz6HCqksB9ah7EiwZ9nENe2VJe95D", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qme7xn9G3LdLCgWhQJcoJrNi8n2NxUpKitkoeXdEsTk7guhWWLAw", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qiWqwyUGpZdCLCaq6veK86pAqHyV8JavvPJ4tjBxLSuXnQix3idf", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqEJQqY2TXDRE7YFx85bci8mNo5RSoGym5AUJm23aSMnmUGYkA6o", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpAaxy5cWSz41jzji1noaC5cy2GkVqjEf2TTz71RbteThMyGoUe8", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrip1jhZNQzn42ScvATvEfASPuHCfhbrkdarnHBpnzkV1Mzqzm5T", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrsCgx9GDxdnUdBiJxRzujAsKNWAYGaXftuP9DRTExCNWUnAaioi", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnYjDLPpjY673NLzV2xRXVmUgxDEVGTDeTyn7kVU2xgV3jSm137c", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qp1DBwf7baSTsosVSq4APUuvbv4jPabgts4LH84LL2d8egERCHfN", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkrjZeeXm89e6gZYBKe5WcjrdPmHFfg3H4NwUZSY3UqXa16T54v7", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qj2RBeTfb9cEtnMRSFLkRLoGmsA4MLf3YSZAwT6S1eULDF4ConuS", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkX6e7ui3CVGqaujVz49BxuGdnFo5TBWbPwvygRUScK9EQCpWK4e", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qparY46xRocUi4fU8DH93j6tz9zCPS2q27p3bWoeZUgmWHiMoXCU", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qobq82muDLTTAv5EveNfxNvxRsS1E5qkon54er5SL1xR5gfDSa2r", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnNXqiT3UKrMJyydb4KUbfav3SS6uSc8bZAy7c8DLosJS46uvTC9", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjjHPsFALv8U6S3CuayzQoYP2KpDaGnqHpAx3LTbT3bxTV94oxx6", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrMyWT8Mng9i4ideatAsQ1qhKkV2SdPiND4E2WXLqsaDyKGuXbrM", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjFXQpCWp451pxaDA397A8p3gQUvV41TJbePHKXaayYweRYXjc2e", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoM41JHsn7wC7rhf7Qy5SaQDCwDKzGS4o655o7p334jVdz8mK8xh", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnzAjXjT6fj6yaE4ooBhPV6BiMcKs6eXMVfKrBDhCmVWj1KTPWDd", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qna78Vfc7QKELbRmJfCFqSRDdqhgbe1FBpPaXdDn7ZtHUFhV6gjy", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnH7gQqLE7Xcoxx637rev5JiYvry5vxZSsRj8AaWkXnq6iy6jyU8", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjqBMhjrLaXVV72NFVDFjp2LDGNXKsmyoyM5JXMyi4qUBFyjqoPV", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmsJgGkTHHvmo8bQaKpxrL9oYdqHxUjVpwMgMnragUsvKQw9XZRm", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoMc6htHcqvm8r3vJHmDQBYwiZPeed47yopNrUpLRxpVC6t5aJ9P", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qouwhUP7aVghHszRRjaqnpghmbt4KMRr6sjFNMD2KHAGe2ceVmfq", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qj76eLxYDBKgtYkdG6LTdQZkVHbLz4Q2bGGvoy2C6QfJCQFkBDbs", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjG5EFtDLeXpibhuLJueYBHeWyaAvds1Y3oAMzVnuMwqUEBS4M5h", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqK3wYQHNRgnJS8AkLumqBEqs2yhEKoujdRNpVcKnYo1SyrBfNRw", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqjMYBesceAkjArmMYi2MNWTwQzPqRDnbKpmocauXogN7iwpvhXS", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjFrhnDU6acCeyvxkGB9bDZdqJpVAx4QEhJKBTFNdyaFUJXJVY4f", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpCGQersRKtnZ3kSXEgFLYxvtGro2BoAQPy5jkzPq8gVbj2ZR4kE", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpg4N1594Ambj2DDyU39tqM9nJKGZy3jda5P9x3XCAdTNaDwTMz7", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmwCds5xfmzTKWc55mFoZ31PSq9zM2khtXgr9Aj8txwFcA8n4asn", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qox6kMnxQbcFJAdnp1mn7cvz34UWcAv24xpWuGpTMXHugu5twWV8", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnj66UFYgvTuKZMCFerA4Gf5bHkxkeJYid368a7NNfjPUH57XsbY", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qo9sUPfQkMezmW5UXTbkibzdjoCRtWF4TWdf8axmyRAS6dzEUr79", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqKUr8WRpPH9uHpwWBcTLk5V1iL6fQExxFw1BSGStB692aauqUYL", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkottPnmtQDgsrmjxeim14wz4jPFJ3qppKyZUHYMzWLL8hWXrdpa", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpT6zT7JZxo7fvy24JPWJFT1jYyFcYi3EyrYoftj2mJL7R2Aq92C", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoMDCs1YFn6QfzuwH1ozAeQ79pVXYhE7t7qSgyLDMJ6MLQaYaY3u", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkq18D5miRpsNyUNEbnEuwr9AyoUGDauracZ24fTCLpKwuwpPsW5", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqfk6cvGA232HNcsXNgMdiHC1haHd6KE6u4usKruazTrRF7aBWWP", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrbszg6kr87xBgGv2Ax4pSYQoYUpFKh5gdnErVWPKBX2Kb6PFs7Z", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkJLhVegz5wNrcx5LT5qkkZMq5qsz6FCSnLDBkhS6F3mxTnfk633", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoXyTTyE5nNSFBRj9Reo6CpTKGJfpoj69spotYS2iqQxLRKbEkEq", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkUmsMeYVrDTyzSxYNLDFyNaWELtBWbSimdZMcFUotPGLGDZoPKv", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpZLmPTgKgCVdvx2wpQpM4y1jLGUod9TRj7YMFaqUqcwwXSVQDPv", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkSGajukVsV4vQ4oCG5pUmAfso3vSYZJUhC6i5mDZQrKa2QVqvfX", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnzni4j8RWH7Rwd5nNqDrwjSRS2xTXHgPbVz8f3WL1n3Ln4Qga9v", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qorPQJLHciK75HnEFRvToFzD9YfFhFvx1grFt946WEL8e8Bm2jQW", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qphjqYqZc4f9cnPZ7XAm9gYHmSjsfBuzhLY4suN6KbRny36UdqR1", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpx6r5ZGwT3p6jToQL3PEN91s7WjCZaEZHtehkEZNxCVsJQRXnVc", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjdrChA5jGhZoBHEN6GAuw7AndaWRXyV3fLrgjviXts7xJGdX8i6", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qj55LvXtrLRR7pd9RYkL8zxHp1iqY5qYg3MYc7XyCQ5yPYsXsBQb", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qiaKndyWryArjfwcaKqjozuwWeghGxvhyjAtSBZNbqmkiMnfwm23", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnRZYRhpdPVQLdPgAbFH6LZnjBfu1nMkbKBFt1U4VLYVx6QjEh9K", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoirDRtvyPRToKFUJndmd9mWByf8zCtxFZaTeFNeUH5FF7We8puH", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qs2F71hiCsjEE7VJXMAMKsStjJJDZ5q5tGDhhji2fL7je9QgkVrP", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrzkrzoDn8iYKyKJrrMnieZmJzJUbDCXy55W5jrX2XmsFyodqNZF", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrRnSj5KKxBi194wgqkosrrz5k8hgvfHcta1zobFLhuTxGxTuHan", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrkrfwvLsB1irU3CTHAPvV4Cp8gV516Dgsv5oVW2dG8Jpif8S5G9", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qj6aXv6mxJ12UM2UvSMHcR8Q3HAbs666fSPwbrA6TRw38iUZG3Wy", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpwPkQSVNxjsmGqJyuTBh3W5gmnm9bwyFgH3xKvNkKjRzyoYYmW1", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qo2oAR3ummATqXJTomjMB1dx5kk2inNR89yZWgcgGhHR1oaRcWiB", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjjw3uhBtYXVv59U7nGNLrUwNmFLic5xm3JTDqLNDA5vHdtwVX8k", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmQ7EGzr3QgAwV1nN7qWPjMM47zFcD2NLDDDbc8R2D2SjP3Eg1UC", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qj8gzJVPDKN37d44aCE8i9hTZEgJDjb7buugdcHZc72RsWqa6nom", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qo9gFD1YrqaKnn2Dut9CfjjiVrRD2pviWb55aZtSyFGRTzAd9iuq", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoJUt3zdNjZRVHVsPFjFLrFLRHdsQ1G12KbLjNXs5kv4sv9Ygicm", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmQKbMjRaGUd3i5PN8XPZUv5rq8ng2ZxgAG81GijCkvt4rJTCpEG", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkoc6T56uHuQexeoGjyncPCZzuY8WA88MCY7K6s6yAxd4G7iiomN", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmphHmc9cnCbeDXiMF5grEmrhYHTBbNEx4SyGCZkVx7Xbh12hN3G", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqnPVVgY2LvKy4tnnkJ7WL8mM1GZ2hpuwKVXKDDifj4vpgoY6zy5", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpwQH1jFfrSS4MMNWKNtLNBE9YmD4xXdxLFAELRkC7mTka3LL4Zt", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjwbPrMAr71hULKm5qgA8SUGKzcQEk9ELf616cTiE7gT2MjhiRjb", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmz2c5JmX8gWTzFCuMbPKhn4WGQY4yEKnFda2vcVcHTSoQKfPEEz", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjcEuGC62epkZhAUDUHmJZDUGtdFVTy7gmUYAXGRz6Cuc5Cok7xf", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpyZGwMZM79yD4kK21Au9BTLxhdp91Tqpy2KfyUr9vsRuGDu8Qub", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqNK5JeqWcvKSCmUUm2yNR17NBc8FMPxjrBPsMGecBfPj69GWRmk", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqLLEasUu5gqWFmZGan4Ga58qvYVbMtQZTbmMrNiizZjDe4EywRG", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmHztgiiY4s4LA4zYMhSKUufcGGBk5tFWAnMQG7NNC97sRy2FdGP", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjJ3xmcmfWvZs7ccWQmcDcwWKkjavGvB7zjgEfn51ozTeZJCvBsY", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpEzDcgBBKhs3KVKadVapSpGwcfsdkxgoepEGobzYBfmWQz4Jzk2", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmiD3eu8MNRh8b4fHqnyHJeaVr2CaqUgwrtyjuUJVgW8n3LNMTrJ", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qo8MMus76LtavaZ9qFdbgNA2qtKoztGu2T1ARnGovkaPHYFsF8j6", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qj85qg36SWj1WLGCnrMqcYH1hGBQ7nzhCnK9TQopGutNb944h1GN", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qop3iLkrNj5hn1Hjea9mCj5cb55YwGKg76gfmWJbsnYub5s8Ev4R", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqFB1MtpWQtHpLThCVWjr9PXZiTH7z4RBmK28nPkgE9yujCq7vmj", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnFdHXoRNP1vXLePnmK6pKX2v1kftbuDEX37C7LMHjon9JuNdyzz", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqkNTCHfzYDJCTq7nBLqRGQXJRf32yMHhA4Y6YoMQ4xXfqnw5Zn2", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjfnBSS4uqbWEoRfVKS5mF7vVCD1GSBzMi1kpFVLFFDhxRjKQn2V", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qm1GM9NycaFfKrtuWh8Nr63SuG1i2bXroz23Xhfzj99m8MXHdK2n", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoH8EBwJgj7dV6uMbXep1z3nmazmEpbZojQFfCthqVLCYWEKrVhR", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmeHxuYxnpRAGKwcY2PoR7CSwntXHPP4wesep9tZS4nX9e8uRHB9", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmFARoVL79tGKa2C3KQVFY1N7qKu7hZjbPhziZkSyBj8ncb2yBg5", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqzK7PcydftsA4mgiB9VXCsW5U5tDQ21e7YnVyWBTLcWFYufa7Pi", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrqKkg2s5bfdjqJJTLRWdYYLVHQhzhF6cpYy1zB9LkVZdbr2mfS3", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrUyR59uBFTPSCP8e8QmxfbD3TbY8YcYcEqCXtyWnYj4daKEHhDp", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmbnrgc1DpnV23Go3Ggq1SUAGSBQXX1uYB9qr3bHMD9w7u2hQgqg", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrqrL4QrEpSMiRfC24jFcHW78UwgSJiYgr52zrvzZn6u1xGMRZeG", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qm8gZkdQX4EMBfQrt1TBTa6isWUYgKJbru1X7VpZ5YX8uH31sSvo", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmexNdYAWK4fvGTydW3yQwxgxeHprMYRk2gFd87h23EwMzg3FwZ1", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qquMgx163HoM3S8bWxqiw6RfxMSifMrJ8HRKNHnGkBqnZTYMBTSM", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qphDuQiD2cabQqaB3HgGQBUrpvgSyy8qQmpUhB6dH1vdrS5WGMjg", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmbPfLVX9dUbMsR6BGrWdaXwUGoKwKD9h6aiJXEHB2FUWTVhVNsW", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjGh4Vca5sEyW1cFv5v5pNkbJRGzrqktykBckj8wxF18sAyywSxF", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrjoE32ZEGaYQp5pYM6GdXTWVDsACmg31v5LAJe7yJCnF23D1KY4", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqb1F1pLsJfiiMQDTWFBV7vueV3xc7YCRhkGFBsf27GGzcS2tUQH", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qm6EJFpRGBgFWbYofeosL4Nxru4W8gTY1YdGcHRiXzimLBqSSzwG", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qq5tt8BaUvikN5b3xc2V2jqwwNhcDD2GzfBbpEc24uN1qvnWEo1t", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjbHEVWHEnzHjHNUpeGbfWpQnDtxZAWYUMtRHf3soyfD2rt29Hhk", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qq3EniHthbrv7W8kDSc8EoBdstv9crGdEejeLrQVKyJkt3nHin3k", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmRg184dDdExQafxxgVAJv3noNSnFPYGcxoxmJA4hnFGxaTe37b7", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmK25FM4Z2cdQvDoXBQBkQjPFrbKcVPx8JwXs7upZdMEwjV5rDnG", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrRy3FNq7e2vQ9CAJSv5xy5WsSu2Vf596Ax74PNjUytQtVyVpFwN", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qmgvKgVUYPZBC6Bf3c6DVMC9DGLgnrYTVoqZVW3UrLvv26Yv3V6e", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpkUCKz883LeaxAvtCZgnn6h6Ge2UbPM4oNjNJSAFzusDdyHDnLF", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrcsGEjadXd5NweSh4y57xKUsSLoysTk2HNjGSP5E4fZNdCEvSLa", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrdDEC3wHEuuj1QsoGoze3iF9uasfdaaqsZufeMwLCvoqVrRpuNy", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrsUd4Y9u8Zy5ga7RUeonwSX6YfAiJrhLRZgS8bJL5AGMD7XM4dk", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoF2prT7Kw5WNiRBHwQDKXHHVARnC9akbewu8BX77BtuexFrYxhQ", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnw7ThR6Q7dbBUHzBWzgVuqhPVMEv1dmtkHkeNrry6jBGqTXoM2i", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnuLwJFAUqnqbCqodzSnpch4Bb2Db5FXXRSYUVWQjT6tv5SDZDRP", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqFHqKM5Euq2yQe4QSxDfTxHxX9SfNr87Ei3Qvsax6x3ZpWiEwcL", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qnoWSSoxeM5kM3Gj4BFCF62wxvRzcmDzPkLqFwZNKbKi5gvrf71x", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qn6WTh3wGC3YbVCz3viovPgM4vdzRWfZnNGJUxcf4UcsQAE81ERp", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpW6apyDrVHSLwMhoqiLUpuRRVPeuvbUn4AuhKoXCoGedRDSh3m8", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoP8wjDoLQSj6TEp7JqcG3UaVBtWEg8TAyvWgiDVuoWdNNF1hPt9", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjUFtVV5SJ7spxBgTca1MaKRfUcw2pf23nhU9VM35BWZihw1ryVu", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkDGXj4vagwxHUH4VcLpJ7DrA9VbMwEDpDDRRUMFF4gnsX6Fb4Fo", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qm3dxAZ2unZsxALCskajpd6v2fRKDg7ceEhpTwUj4pgykkCstxdh", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjkurLhFUS52gvYNJzgMCpmUajv3atW5iCjHr4zYJ5pko4rYPrAc", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqrSgBoGKvA4ZYQK9tGHbE7711jzo8zJnsFWEucNDcGPjcaMH3hJ", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qk18H76P5yznquyvFiqHTAffbhB8TTyZx2hDSbk4Pqqq232p8aCE", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrooebP94bSmYVB7fabcXoxiiqjZmQ9Xkewa9vhRHv88ybSGWCz1", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqfH664KFdw5k82onWAz15MYxTzVNhP2mW5DzRpZrQsHCKbtjijg", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrHboH6S7thW1PsjkhmTuYZwEEVVHLL7rzEAVjYfxNsAaSpPYAea", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qkrcbUZ8k6ZgQvCTy4HUQHVfmzm5fAgL3Td5XSknKNF8GXjSC88p", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qqKSzPAdCVELNEp8HU9sdPmM7cww8LQoZG586aGZG4EfuysMvQ6D", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qoTcxWDuwoXvdHQTnmJmKEviQ4emRxsS23go1sdYYEmC4S8zLT9f", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qrSCNKkMAK4Nk4r8Gz4xBbXrXBsge9zwCStZ1UvTxACa6UGUncT6", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qpqPiiYohJH751yn9FtFv6aZeu1CKVG9JaApXjEuREFXsKBZbmhW", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkYm8VP8MVeyqfgSE1Po2qoLJ1uHKCEDJ7NzbtRQEv5KbKnEBrPT", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpkNEArPCzPzEwQoUT4L1PD2npGkT7jhxFXvR7NhQGDZ3naP7E3A", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjTSnKwnSfyHJVwUwTdghp5p6sUHjA4EcSxgWLKqgRvqLBxa4PTu", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkRE5h8CHXBu65yFAZvR5qbxtuPfxa6D3vZ74nuNjYXyefDgSUZp", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qntimTgy8oPHtP5FgSi2nxnd6f4N5zFcLqB4jJfziGhifY18ytqV", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkKmRSq95YtYFitKX386xgyn61aPPJvR4wbqzyHKro5k3Ekcd2rT", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrdH8bDGoPRKTSo3nq8k2hoEE6uJ97g7BkBQhg6b4PxjGsCzdGfP", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qiWaV8eXJay1iZpxgfaPJkSz3SZqaH6ZhSLy1qccTuda5Db1vWaP", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpQr3VzywhNKfPK4o8MdyWG3AUPVjne44ohy5XU6RuJJnm1ucXhk", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qq7XoVkm2T573f2ySYmVCJ3GPFx9FVZi1N8HkzsKiFy6kuKBfthH", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qj8te5TcdNTA1Tpo9aJo1yMmNgj6hMxUUN5GhGWfVfZuETcnitzs", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qin7tRFSq3muSfU8jcYrXsFo9uK5ghGHZBQuxLyhiJE2Ks3fQ7gN", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qne3Cx9hbqve9xddoQgubuQ3yxdMbyUoL6JUX6QsVBE1GJBwzx9y", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnxDXk2ixTw3oysiQbuojw2HN7hBG9Unhk3M1nChWFPjBEmXxjfE", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkV6zTB5HpmBiZS3dGcTdkb9GTwwzYpF1DASinuDgctqSjfwoLzM", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkQfLuEyMYUH5Ho2hz4XqxCXRkfCLWbNDhGj3ttxd2Q9YLZsWPFc", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkWpgAcretRzuzjuTQfkwcNHNh2Vg62yXfmgYQNLSLwBSZcu5Y17", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qp99QhgBrGsEmTEP1MHGb8ssU4Wb8MqDGwpLNYfeVmMbP1faWkz5", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qq82dy3NRUtU46Bnhvu23rXYYxeWSoMRk8dKyjySQygWgY2kGyqz", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrJCRAvYn1qvzRpMBJpfxwMc7rEMGruseMzsaNfSaiKz9SaWfeNj", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrSY55H12bAXusFYX9gZ1sDz2TZB6tafqcsn9bembSVHsaMbkGS3", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjSdRYtqRE994dVw2Ma9t7rth1dSuqU2SUjXsMeecNXMERjw9rhn", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnTsp9ZpUX53wh294kwpZdL38cmYMJSoJXjPkfTjM5Bkx7vZ8PaN", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjqFJW3D9JKBmJuWDfYnW6BnoNr7JDeDes5txmDxWCMrKLWMUKde", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoo6KE6ipRmVLcM9w6Q8PQou7AmFYAikpUx24LiKVCjGH7UiK7V2", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qiaRteqr6F59KVyZuYoShWpFktPRTLqZfPM4urEFdEtGr8wc1J6j", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrHjPQfafqAGrpMJUy4tVryCU3PN8rMHgSjPVvNSEGNtSGm8kTtq", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpDDNr7BbedD6ViUqN5rtRy2FvXFFkxccv4jL7qhgtaE1U2rXeZh", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqbUXAMAANPtjTZ6zBDAvBx947fEbEncbhLJbmpq9nwUwzR1HKcp", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnhtaTbP9DQVP6VAMvP1enLXh5qJgerJNfREDN6DCN23mCeaYRW8", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpeY5o5Q8NZ8LnB1tF1hDo2D1Kw3HTQFobikXudNi4fGV3GVF5WS", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjvfv9LbgCnbKDmFG9hRZ2nCVXnoLJgs6P74u47dTiQRMBuzpFQ7", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnjjaPFLXQ1RibwweVCfYP1MvTDtBxqhHEVMiZ5yEg32qHceSZj3", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqKvJnrZsmSnDZLnRY6XZYorm8cYYs4dVtWDAoNRVBuT5MRNXDLF", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qopXPd3Dtbj1mFyhueWfS2iECmbpAdgajejNmFPgyKBQFEvuDArt", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qp2R4dzYyMqJ1eqgQSCU2nvPLs7oGDbq1cSJKCBksueLZYn7ppmV", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoRkmUbBCxrPA74tmpUGLKkXwiGPJiR1PoxQe56Jw2yB6tnTtDS8", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpLD1miCqtyaVeGb62EPKyxho7arNZToQRn24g8LVArMKLrNhysR", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqe58QeRyj7weZwRBqqipmuCJN3QLszbT5zNNNjH9GTK7Gnhss3o", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkZEMdxmZBQmFdp1fA2tBskCy4cvF7cF4wo2LyNK971huAcfgoQG", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmXcwoonBYdJcoSuEdPde491PX36DQBSZWkqJ25BZTT8zC2qARK1", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqG6p9wXH9UBFo8FJsuW1QSVNPSWTnrXxXgEeA9oCADLfWnoqSDe", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqCC79VSBL9kYd1HGTNDjNx3j5KLqHAWgRDAYPnQA7Y2MpUBamvn", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmMbr2kAtniEq1WDvzwZLKq7PfRpFwTBbp1tzLwoZBJ7sUJm4jXD", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qn41zMtzStvGMqtaP4D4eJgG2aAfwejYeXjuNysB9Buy29t6Ymhk", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpyNZS6tmHaWqmTt8wVfGceG7Zyxez2nxf3vuBEZiGcUTv8EmUGH", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qritQQM5Z7nLMstDPPNshSEEx39UvbGDXUGpKoxprEDK9z6HWL3N", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qosTrUYkJWmpm1DZx68K3yGkAVYp2HK9JC2nuzaPVhJVSBbSv4Mu", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrQeXfKRJZ3RNyWnadCWccEjS5tUJ7yGHAsBXpYrdJirxfnu8wxn", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnuAFvF4NSJ6Gdnd1m74jCR7MapV11DhZHG3tX1kNHpPAzfd8Pji", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qiksS8uG2tpVi4Y5kqq6FB17D2og3Tag6muXxggU8sVecbPc4Qkt", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoEzph9Dgw12swtFH4guQsHcEudk8HzbsxKUxy7c59yusSk493tK", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoEdf3oRmJJARNfKGmQA9zsAaQtS6tzkAqZHj6ngtbJj5DmnbsYq", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qm37Y8YNQXV4Fus5DKwcMTYXahCgByJsoxrYvYr6xppCD369bj5z", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qinCLX2SBz1QJPhvAvypt57MnzAHWHLd59vf5SPQLcExUMcBti3h", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqxKT6dxggUCfoMqEktBqrwL5zX7L5FJ5CwPw8VYBJ8kKnMrq54n", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnCHwGTxHXgFBRiRA1zX2AA99p6ViUhkR6ADUguthYDdkoX8fNHW", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qq2oVtqKLM14uQaPFzDcv4cecfzN1d2kpnFsuT9EMXdr1PRE76oW", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qiwPL3h7rb6THHGciLsmQ4P9N8gg98HtUmCAYfPdER3kh1f1vwtK", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrLmyvbpV91hv4cp6ZV83gyBiZkP3EGLn9kmYhgZxNMXyTesNRiY", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qifx2rTvBXq2WrdmYmgdPWYwKjvhHp6kAtD4GpgtLeX8ZFDYsQrq", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpyxhQHcgMjd3NtmVSjHTdfxGYvFY9qZiRdqqeWa1xLE8wiur8EK", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qq8pWQh1sB84g716bwxPsCCnn5XrAnGVWyLWbbuzFc5Qp9gaaLum", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkET6sFMsJAqtHi11Sx6zXtE9Zzwton8QzPamMdavemTmGrZPGwJ", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqQVyboYna7yboVQaWjAzsBXjVphGxknkax3CWVgoBNoDwAFoNJE", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkdz7ep8rX9vVguuqF8bZSHcW34f4C7vXJkApZmQAWZhY966DVFn", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qozh9tK8mT6SvGBKKnfGAjc6uWptRmBCQFZEtzUV3rDL6AAkEfCW", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qq6PfaCmMJjq8Ep51hC7JScxUocDMUXaKcpsMUijsAJj1RJDo42c", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrTycYVDA1VtfS16HtWMDdtHvK8SxK71e255oZWo7mZ6TnHRAeQE", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkBiopHkAkFM5yiEpp6TiNjos3aTQPFiAHoqe7qgU3Kh5tPtjt9u", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qm8ZYsZK38Qam3DfAe8ZfNQe8uVoLEKKtj5GjyVyvD3Qi35Apmno", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkLdKit47S9MMiioBoLRFGGpy8NbjJnjeAm2yNsHjekD17EcdXm5", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrJ5jw8s4WfEnDhFRukgby7BexZs5sHouXhajL9pVitWp9ZgLadQ", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoPLxqmqqtC8yBBz8AM6qpNGC7y3KtmfQX7dJR8mJZaKZLwGvwoj", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrVTLkm3HkcrthyMy5ZBY3Cu3ZiSWhn6KX5MHmqdN3bX3znfLtNh", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmBK79XA62kLW5bxstwvKEXV1D8z91AweK1MvXh5i62YesfxtN64", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qm211QEA11nu85cQrrkJcQJ1XRXESFJQXUeGn7uAdzcY1MntAC7o", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmBhTP3WnDNMp9QeDTAvoYYu3g6s5rQYHcGCXEvMvrVWC9bJJXtp", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrqN6KMQ8tfyaCt7Ynux869HqjNUEAxBSzwTu7x51pYjFgSwyxxY", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qo2VSEAw9XdfgieexyZN2oUrfongPfjjSGNXbM15oPVttrsYakY9", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpsq8snWBkP9KkVusETEZjGpm93oYLbhQ7CJ317ixsNGRaf3VAtm", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnAZZvQjEvTjoTyVeLECgyYTjyxj7phWU1jQAJ3Wohbh4wEj9JVL", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qijnoRSeZV4CMsAc4ydj4QiTNRchMmrGGNRsWqg5J5kXLF93n69W", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qo1KM34BEEeoJie9R1fQzhWAgZuhMGJwpHfwyVcPdpeXPF4sb5z9", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrAPbR6oGy8dPFpEwfqsHM4kGDoUS4KtedLvjFhYzN97LpvXFXjN", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qohScQZWzBA1zEzuumMHXzZrYrUu4hUZbtP4sMt9BwWUGwnkA6jj", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qinQSF942mAMS3FdQB52gzAmVSujUXk8rBbyiP3ujA4iPEenDPAP", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qp76UH8HPmMqAYND4mBt6tNkz9HUyvUDV6aTJK4hERdRj1u5pXnV", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqZzdqWsftxWHsA9e2BBvPkSqeSe147SbPnr35Z2QpfotW6v6C9N", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmzK3aLz5bYjfdi3Uv8BHCeqdcgjURC5of36zPSDYawAJGtHMw6W", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qquSYQ2Tboc2bDCchXvZqbph4bAfDNtyQvTPNjVLghQ8Y1FZtjya", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpup76tiY4JsvxVdx6HTngJXWYx4BjCLkSAvj4tYYgLwhRejiUAn", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqDxM2WcR8Vs9apzKqbTV3zfSoLf8Txr6fVgSdmNFuCfUmjMf7yj", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmRJhMgxQvRppMcByTmSwVCtUnXqq6mki3G2q6hEz2ur3f8gNq1C", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjrTGvCkb5NsYKgWS3Donkdj4NhsdGJ4dDxqw2anGvMawRfSkSoS", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnnA29tM8Hs5b9U9LJzErcPKTPaMcRLSmapM1ZKXocXfTAyjLnqj", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkff4GzpfKtYJhivaYGSuktkhNapQpWbUTKCqREE6dnFPFB5xJnZ", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qs1k7FysZups3dAch5MvRcRwrhfudTZVrk2TpFi6HnNZLbMJBS7P", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkjxz1dLRtJi4btCjZs5PsLCVDZ2J3j7QFvKo9n7pqexiTVv9sv6", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qk9wkFTMGFsQFJ7SqKV8RH3g5yn3njKEAJY2kTcxT6FFUAuQqHJo", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qiuTZNk4yD4xwPE1iSy5Hzw3U3B2sAMdGcECC2LqXSkVprwi7ish", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoxVKKhxCEi9prpFQmi9hWCEawdn6oHNJYnHnhaZKpUSRo3nArrS", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpVcrqh523FXnV5uwoSmSYmkiLg9aH8RLmdhKsy8HWcsdPcizycS", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnp1krAwd7DFZk1MeKtYxJmosMcay7CZ6aQUdE5vkaoCydcdFyBP", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qryh2umvEvkjLTGr2EHJ97vkms2kEZC6nWUTfjHCnumJXwUeSVgi", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qiaSXFmSQAohRnERUq9Zbu2zne3QTAdwnh4LSArKojcALEoTGcUX", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqLcQhP2PgT5EoQGhdrrwpeVn3HrxaFps4YusAr6Pqo4eTUQrDbr", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qobPC5or2Q5eYNmnYkF2rGMLiRpXHCWZMGrKu665sin6jNxSqGFh", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnANqZsfVCaZLDhyq2Rpw77btznmeCZ7Rj7ZpyqdotstNSJHjCLU", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnh78yikhdsaGR88UknzSsGicxLMQtuCUcAPfGfzdTtaSoNTRHsg", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnKnrTevFQd56Mma3QSCpfMf51xiFTsgAR1PAvSjX7cjtQUZhDkM", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrUkGnJMFVFQ7xoirUCi3KdAQTkUHhpSd8U67t6aQAnEidcK67M9", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmxMs59ZevHoGuS3HGD3Mh1XtdrbPcQx2kYPGApJnc7x8Mkqfu89", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmo8MtQjRVUh7FrrpVhjtT4FJWorqvuMVKCy5GUnN5BEJU3zAQZ7", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qo3u9tbAQP7NTKdatTFvrsyzSTc9TMtwBMYYgC4fx6KTbt1z9iw9", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnfBkP9U4pvKACihyqXJepDe5MogDrZH15q5QcpTJMY7gdvYXoNT", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qk9NQQPmEP3mMV3KDLY8hE72XgKaxXdwhZgkfFDCcRe1HWPhF2uF", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjn946A7cQddZELVzYmaxvhE7gZzmPdEYkpVgCUY1tTSpEJ4yzqK", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpKs4ehX3Ch8KRRiMsxgeFdeBtFnNd9Zyp1xgsgvZBNheS2HuTE1", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qptsmgdmzZJ6Mfy4szw4qWXSXrb9jxBTCCJG4DzuZ4wkXVRjXU8k", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpzNZPRkNPiwypTK6hEshuUfwkjzjChjD4DTTwvUrBxEizedSR1A", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkRUK9dJD8keQ6Cpnjhr7JYo4EK4sqaaaEsyx4PnZB4FRpkx4tAy", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnnGbRT3Mqgq69x5WmH6EPX3gYeSiRVFmpakQ1mcn86JcTtWikwm", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qr668xpNXs7Fy9X2dE4D4RFeoMUU9RgJhFv1woZw5JPvHsiPrBEd", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrfR9JDAam3167bJx65PFzSFfAhZc5kSWv4o1hrxmHssjiqapnyP", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnoErtX7w2tAaG5X3r5Ci787dgXFvphufMfW4EMVqCr6ubMme3zP", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnmPzzjjfRgZ6saxWMEpE8H2MWJf7vsTWBkNPjX52RBuTsEo7wxy", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpevXb4yw6epukettAv656qXcbs3oveCgHtY2dauJif9t6DHgqdE", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qo4cKrEjjEL4ZQRgwPhRTAfYvkpiTGeifpyk2qvjFsHqLpgv1oJe", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkUs3KA3wXudErZmGRGgWJ4GeTdxdqJZQJcu6wd1xWFpskSjYUoN", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrNhJA2Y8EzT5PFkirPDW96JFDAdXnqH579aSCu6ckwjyuC836FA", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqjLDP4PYRfSBQALj7MFMaQkzA9e69sEv5UDNCJaL5EYn82MsPnT", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qr8AtMgPeSLu4TjbyGpPkh8FAJbJU6TKWLxjE66vXyENVJ91QAhr", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmSoELG41bqFLyMvBXn6x3mi5s8c9piGyiq4WxJenpBbkGJATHkx", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrTNN5ZeeFhrhnpC9JTQVhUgRk71MLuQ1rPMvJGfcsGXaKF2ohry", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmaYe35aZQ33vhpyM4MA3uRqZh5p2pMVRSUc7713wQTr36xY6N96", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnpoH6v1GUpFjXmq76qceszuK4DjUweqFXV9BK7k7DBag8M2MsgM", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qk8uv4ANYdJrwy3mMZtPhyiquFXjfZiiacw8hGvCSiUY8VY3DazR", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqCUvnh9Y6XgUfbisPZ9wtpMrQCRhvyDxEFmup591yHMaYUsLG2p", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrhqQsWbXsoXUGQMF4JRyaZ7Utpnub88QqaZWBqTDkN2UuY1vGBw", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjv4cU8AED2XoHRzGSszwebtYTvHNYWWG1jLuLNMeQSftMVCspjt", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjnSHiEjvmrJHAfFXMabzLsn8i4LdXvqKis8RN9kbZYckxtqUnmb", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrHLnx6Z44JL6qazUYW5aGn3M2rZFHbYQRpx2eNHwYR6wtuaRdJr", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qn43critymjMkBmTspks8TQ6CgD1EgToYrMCWcAqPv9cTzCJbGG8", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmu7oM9moLfuezYxB9ScJcwfdHspZQVDg3i1yYVbLWVGqEKFNXsw", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qq4H2oLULHEwkwUwKoh25ANnRJrJXvbzhnQ2QyS5bMgJzsJPzAvs", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrHar1p1iFH9hXPdf8hAt2TnaEdtUCfR8Zfp12dB2UUw9BMK4KML", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjqFNeFVK4oLcnjuJ93WAh5jkwUnV99ANJtDXGU6go87P3v8bGt2", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qr4gPadHja4rxRSseqGHdcgsg8aDyHqKeFXMqdjDrhLpaG9ucwMi", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpyiTeWetx9ySJBH9FTZKAKNJbU1j1WxRpb284UWMnth2AvytQEo", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnMaWkbqY958abiD1giiVYmtBC5vg9d1twJU9FesCXfgmJNdwKry", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qm45Ni1hyPJevcqJEh5GwhpciEYogQQEjtpjyv3Mi1ELGSwXAd73", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjaWU62r2RX4tA2zF1BBawjaKemKKjAmXqysFtuxLT413HUVhR9p", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qn2CnN7DeZbq17xDUTXmDwkMxjPwjf23Tir6tL3rDhmscQeSDuhE", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpLrV4dBr7PjhsSBpZb4KE64DhApDEPm95KWuBF6cQQttu4akM9t", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoWscp3u4Kk4jgg8gh21rm9AJqKTRvwKmWoaeCZxWLwCnqETokeo", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrCVHx6yg3NPiXUZbSSVy8i1fL8zJsLovBszkeQtHLKNj22A3tkw", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmREMDnHMF94Zp1U95GT5xtw8LkkHRYPYPdzruoEc6Z3XwyEyRtz", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qm7HB2av6Z6bnxEqTFQBfAPNNsv2mqPpueqtN4tdXQJ7ayYmF8xi", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjBng3fEGE5c7etAcFr1N67jVzrhzRVBTeN3oo3WMBPDcktN3G2q", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qk4cQv8xeoaHBPGRAZqQJzzabVxzufEK375RUPHrZEhMWazcZJ5X", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrnHX3P9C96CF33eiPdwMMFdGQBr3F1cYNMbry9EvW1VyNcfocgk", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpwgVHbcSuESqF51VAWbjLFqJGMSaMfDXrQTbBeGjdXzvEkqot6U", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpJ4F1vDoVaoUkVp9W7oBDVYrgmju6W8rEKqYXmGmRgy28EYxeud", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qizPbJYhVnCokzr3f3ENrDU7diMJZofib4Xfy1oV1uJWMqGVryfP", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqPXExgNG4aDBjgc9TfKsj3P7fic1vNhjFPofoRdrSgH4yLKtN2d", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qo4V87bNoonjipMEvkWn4QrD6rJpaWM8pp4rAzrN8yJR2oWE7RH7", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qp3g7zupZknrM1ZF8q3J2j5bCuk2U4mw53MpVAuT2qZXN6n3N6gd", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoW87NsReFsu36oiTsPMc48HCPCxiqGYa5J5TXboddbVKFMtm9Ee", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qq9CCJtEkDmNCZPrh5nZW5XE7VP8utSxCQckDqCAachBZ8RrP3zS", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmcMUCMGMJXQxv6UMeBFw43xSJyYS9UYkpq94hbxnGTv7w3F6iQx", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qk32cbZberBp9VKHExdqfMwyseh8z8dEgvst73UUG5k9NHNHdL7W", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qixEnKNTnvpgsHgNm1M74ecLT2JMW3wcMrE1EYyfHBQoyvf3Brre", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqqERTSxUga8u1G8wJoGyBd6qwZqHFeuC9aFAqLonVzr1ULB9tiW", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qryNAFEoEKU8Ui6Jd1HGmUBUdMzatQ9Ug5uMyQWQMQfndMffXefx", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnHJ1MWn9qNhTM5T8bhauFfkgAXfKaiiGXf2jegNLYYVgB5Ggmas", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmdkY5E7si3iyA9aP1WTaDi1ZZ1K1K3MmZdQuYff6SfidB2ZWvjv", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrPYv4eAyhFSho2NQRWK3cuVQVDsfHgQMfEwYuCDjpBWvMrVSjkN", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qieYcachMdMciwy7JnQavTSyhRyR8vPXnKNghEtsHxo7XGW3gJxi", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnuakVp2k6QaNFBXm9qEuTGUAA8WmPWTbqbn8ykFYkEiEHLtCnNL", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmMuERRPrb3Mnu8yhpdVW3vK7u5qE5L4Do4j9e5Km2U1vjcUhvCF", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkiPHMYbejyRAAcfFHU8Zr4Y3WhDuPahCyTxJz19BQ5taB9zpwbF", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqJp3PrYGFtUqVmJKDecjXJDUaizJhgVyVxDebVxu5MrcKHiW9cN", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qro1secpBUjbmkA2YJuMryJPgtPDz8ThD56BHUUHEzRYJoowwSz4", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkb32xLTdhPBkAsrNc9TwWmasKC39Vx8cLkt5nEZb42HyYjwCp8v", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjHRRsqPxQtc33uBY8jErmm2tm5UV2ghzDqzTAupyeuUC1wiPRyu", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqVNQwJ7e8h31Ur54dx1LUAJJEDkVkdLJUJ8yMU7WcXw23VGs89c", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qq7w9LpBhzjPT5Gyqcedgv91aEhzqeFdKqDsrzYvkWrXNdhmyEGo", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnwUeCRoekpXYCRrL76uf4v4u9tt1eqz4Pe4ZxMFCEPsGnp82erv", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrAGebN32Xs8XShqeEyqRQqMGwMtNy7Lho7VCShSkB215Ammftqn", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmSWh9uwepBb8BzCHSDBiyzssAVhkJep3kdMyS1JgTusiREB9uwX", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrfcACfhmnSGw1WVmL4a5sYu1DraPddkPz7CNZBN2qfamXvpyQXG", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qm1yfJexMeuKj2kKd238ftd2QNguGWYhhbzEV4TFY9QZ3Bm19Fws", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmMCZcLm1JkJpr1RAtDVNomLagDfA1uBRgE4EGqg4LmPx9HMqTc6", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkEsJxSUMCJ7cyTreta2NAKukZpo2YAehKvHW5icWCYvZgD2mz1g", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjjEDLBLgSTV1T1gEUBm4o18x5WY7yNT72VLY1dy6j5yMegKT5HA", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qibVD8ubn1MooLWsfzY16P9SPpm6KTyPZsHXPiRVDjwabC1E2gu4", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrkN64kTDMzm4BaC9sqXXe61ZZxMcj1F83YDh75YycgpzQydiDRW", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmfeYzqdVSBWRfXzTwxem3KPz9ycwoXApzw6m1jpofaEpe4BB9SC", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqg5A6Pr2YxsVeBzEgcU3rLXv67n2dodwybJNNLsQoQVb4o8dmiv", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoPrUtZEPFLWXdRWivrHUShkybXVfWA6nVPzHMKwD3cfT1gjh4Hh", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoHm6o9ubDDd1mjCvVXxtVpYnhFaZhE5mBmBWH864gPCVfzVVMAc", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpGZh3sAaWKGJukdwUukFQqVJtb3KHz7pKjWb9GjBCXSs2kjmYdg", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqgz6v6Bvhpd8a1rNggKPPqmLL1XXWm9Df8iVaMD8hhhwyJHiX68", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjToFL4YHThsRM2jje9trzp54x7SVJ73Vgq8v8yWZdJdtKhBMrSt", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qp64tYWtcfsRFHXdurvykMDX7K3id1G8hd68YqA4x8hDoAC5g6zy", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqrTNprnqBg8Rzj4tvFvCeueyxRwtUxr8aGEt3DUUgFsi99e8Ta2", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpoN1oE7VudmtuV28fuYrcWnfEZDJ1nDGrxQT4spLxjF42C5wcUW", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpgkrGt5b1LAvJLM1UJ5vHzm1iZMFaUVQZL916E8FVP2NU1LPduN", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qicQBHFBZe95dG62NtnacDAk3y6EyDpbdcX1KxpSs4w5vjgBoLPA", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmV4u64pyGFbyEpYuWm6c9VhQuFPsPjn7WUYnPiym9mvjUf6GS54", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmYvbB4X9UpmabBuHxkQpNo1RHjZiz9UWp8gnFRyF6MJ78miMNFe", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqpKpPmArZUtk4HA5PuRnULf6sfTpCqv1gAzhUD9536wyYjhiKXA", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpL2TLBTdeSMjMjHxfWfTPKWsjtztCqhowt3mVaVQp3y9X4tN9ok", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjiCvWWmr2akBstZPWu9Mpu5kc9Z7kGQspK1Zmazv4M343m23GYy", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qirxeTySDMa2mBwC4V8aCikq1SWae4hrp4fUnKFqgf9Mr9hdVEtU", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qr5Be3xbU6zsRzt5uq1Pg95U2pqv21P18QzSgYu33VvHZ35hhiGN", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qowH6gWUcFyKimhqopUUft6PNH5JWNso82vDGYSHWEC4PNZxQZ9N", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qodw7U9e8eVvCFGg6eH3KDhiUT4HF2cDW8AHVoDB9EKN78zfxbrX", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qm7oJDEWcRXwYxiZVtUTkJh7KTEsfSQBE9HKy41gv9Gh35PgDKw3", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qq1uctBpz7oB2SsuJsrRMwWGSrQWnsYJeVvEY2EHTvq9VLeaLrNw", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnvz6kXAMMfF2cBA7456jG26Vv5Yx6K4bw58XT5hDQ1bEkkDmpr5", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpoKcoo4YsWDk51fBoVNZRTBgVn4LTNpPpYkrRgDgit31gWoTKfA", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnz7S4UFSrRebzicwV6KUBGNSJXf7hXHvcARiXiaVLLcd3jpHNXa", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkLoVB4yZ34UQqSaD3QQHxUigg5hYSAWPni4k7YVsBfTM34uMqP7", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjSC29PVJnYUtfiSUipqBqS59i4hZXLU9uuLhmWjaN1uygNJGVnm", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnoXxQ4V9D4R7UAvkoZL3LinFxYgnUFoAYnMopLQRqqHVKZe8Q8J", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpPBxc87ejcLccFrifQaP1c2kLgwZyogdt1FX4tb2WbPxpK3hpXM", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qopW3JPoiyaG7acnSpgQo9xDV658CDHfohv1cgZgwai8ZmbPSnwu", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoQNtPNkCo4KAn1NK8HGuvpRASDbK9XvbKTasM9fgVSHjqtJmPWi", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnNJ5VfNRjXNh7jaBKWxvGrV5kU3Zmgi9FYaocRwhAgraLXrppWL", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qikNmPTjzn2o8Zxm9eNJdMujtzWPviJoyJpDpixCxiA5v1Sr8gV8", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjBj1omX5AMdSxE1xLbFPa77L6Aijx4DCUcKzTMHMvypxWHa1anv", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmbQfcUV6CUtWa1VBUt5dPN9AURbY9DxqUiig4ApGyGNekHfkyiV", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qofbMtWhNr1NRo2ezKYhr88mH4U1bJXLXBZMpk2aPsXucMpXtJ86", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qppPYUkUG6pFQ27zCtgdXN5T9o3yikjtLxtKnpJKJdZP768GbEbA", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qk3qUfgHbmTjX1seuzmHNuGurj4JVtY2Wj8gmYYDymfVhoNJuuhP", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkMG9hR8KPN2veP4ogsJCmtbJ3JQKRZ7wBr2iYsSsM3HEkCSeH5W", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qiWJmeJGtWHiSsYayNQMGKnepDAxg95Zoeuxp2t8wtDGeWprpRni", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmJaCfn4CU4Rmd6K1KUKafXMgYtBwHe391eoXkHMiXLky3s2GnpF", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qktnf1EY91kHvMnZMPzNphcex8j9vemFqsiUQHnTywg7j7JwJ4ZY", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkm3i9ebufknNuPwyjTM3uvvbZ1W4qQeUPwokEZCWsUh8ZAkTW6X", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpbmXWS2vrQTyRVcz9rRwQgFiSV42dAJ2tFKmayjt9LU3SUyHtEa", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoNz1rQ9EKiZw4WYb87hSPvgzP2naxiSwq5mBjd962STGTxiq8Zb", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qoK2jYkwGJ4iZ5w7nMMEscLRgtoNo4nD6z1CqLak3Wfd28RXF6uE", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qiqugaECoiLZs5EbJv5Cr1LLkQV6xDffVVqiZwJLHiFJL8PTmHf3", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqoYKcdzW4eGSivY7be29BHHcnAovZ1B2UdUEGArQBGNRMA2hKaY", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qo3QFdtCdh5i82NExVi2XQb21wXgGCSxuKB7xKat3iEFBTpkVupP", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpUjvvcciEinPfFrB19mse4HnR2j1JdnLygGwiosbVVoAHfPUrvv", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrdPLszyssd6meuUzjeoe6Dmc7c9qCSLPkNA1GBPhWK9DW7NWwH8", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmnWcGHuwZttXgt551kjFVnzV1YpfqutCx639oCK8Ar5aoYsd8bB", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qozSkwNqFifjsJBQAUM8SX5BzYxPUiKaYcQvuV7dpa4hbZPzTT59", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qk4F7tFEXvvdGaimG3iLcCLj6JevKtC37fXT9rpdJG2yZ1XrE48M", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrwtDSPn5rUDKZEg8Aqm3bJrPuCVziZFxej5sydntA6yV9u6LBFP", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrKRq6sXMEfUxEq5mD4NXEcSySiaFzqfupJ6d8kxKRJxdduh8hF4", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmRnvf5BvYjyfGV3oHT7DkynRSXQrZZ1nhWQBnERd7YD6nqjwtLi", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmV7zgNWyD4e5oPrXyg8xxRW6kupvXEX2UyiYG9mu68Zusv99Ssd", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qj7cADnKQa3N9HocmGhSRAuzjpuYzGBPav24pADmcJEYNNfRrDLr", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnhd5LGawEmD2Lc2hLJAhrC5Zaw3ywbkhnDZLR1hqC2U2rVnSRST", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnwTdp1cCp88xZHyoVp3pBBKWhmim2AQzkxTSepBC5S8tv2AFHvA", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qr9asniSedvN6CiPMRfXuY9gdu6HKmb5w97aPxNge9Wns7KFDAnT", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qn7ohkMKF2XekZ4kUM9PG1YTQaDvzNFw6SYo9ycLz1GbUvGPsShW", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmJnYt4qawgELzVAb2WhqQexAnGBb6pqSxeUYuLxudyaYkXztp8k", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qm4QKDUe9QXXsfhEV2v7Xfb4bzkSgMkZCWBFX5pNReXY1PCAutDd", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrkezivjY9hERTBzY88noh9TwjX32t378MhhuJSyfGfwD471nnkS", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qm5epWUwf7DjYkDNuihPwmWEQPvuwWmjyhkfBxhRbwLPS99yxapB", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qowX2ZKYQJbYdRBB3tWcYCq9jAiu6wTzMmeR3SZq197L7HPE5Tdr", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qr1Q7Jiw3Ye9fkP5Cd7xm3PreskA24rteHQmwmbZzCYjQguAB9RB", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrKUiw2vfFBx2H3z1RhABRm6o8cDCeLf4RAaCSsC5dE2mf2VV3aG", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkgHxkTPgzoypnejGzweubSgDnTLHiGNb84AL8aAtQpW7M9kD3Vm", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnyNPycMYuQ9f6wgtNCNeGDZJwkh533H7rKm6CADe4FW4LKqDkBz", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmPrWhAj9RGzBt5svJHqubtxnVQNckxfV5JiYYUCzmy6Yxdspbcc", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qihcQCw9mtNYa9o3S1b9gWrs2ut2yTckjkCsbhLZoXgGZR7eSyLJ", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qprAaYjBxyP7qmt4GMatBRKz72cCmtGJ4qdnnYVPCk9eC35TwE1o", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmemWzYM1dzTmgCo87SaL5cKkEvycAkCxuVFKWFieDTKcXr485dY", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qiyZqzWtrt1fCim8zFHQiPP4KeTW6rTqzU9Nv8RFYMTgzGnPGiJg", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnvMysByK3K5BWac3mCcQR743Q82bnC5NxiAVfrXQ4uGN4em3fSV", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjjiYcbUxDTtEYv4zHX2QminzaAmiaQjLAfnTt6GwFzhVK6kzCVq", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqRdowbh6ThmCduN24uDQieLTegTcCgN9e5jL6u2Pb6YXfdBeGLG", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qrSyLu2TuwAZoL17YEHe7Pkiedb132FKjdH9DsSQtsY8CCf6EKZF", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkvQJGWNq5bL85AKNia1BZCdNfgjTRmz7AZVEm1q6Gx7BWohrcZC", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqBgvfVZ8ttYaZeNPPShreMm1XYfvErr5TP4bzbZYPimxa2e4e6B", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkqaPDETpkthkB63y5nUcWAq7hs3NAGD7umUwwQ5L5UNdTyTDicr", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkZrfkiVb5LgwHZWZkRRWutSmHXsJ7XVbh6yNekzGynMKDFWyuGD", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qpjuFAy5XaVWpK3qYHZattYAGD1gZqaSoymmuzBhfUSAqD4gPhrK", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qiqP7NuCtWuBkn1rTNehd8nETY7ppu6wUBrvJURWuygcznRipfo4", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qn2pVYc87yJN3bpmeoS9w8pDyDU36pRNyU8k1u3poVssX4Ly8EQg", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qregY4Vq3Ff8W4WDK9pwrdmThxiuHaUX1ZrJe7wAVq1eyHyQjFE4", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qqjNmd7Mikn2gZ2LXfkJCbP9jHYoQNygU7SjSLgkczFzczpCU32Z", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmvFJBurfi5gRMK9RBjZ1rT6ej8SejdUXD1PwMrE39SDX33y1pPf", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qioFs5h4gweCKRRXYJQZqqw7pPHJDQLgAvYZGacqP4L5UZTiqPu5", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnbgHd4EbPCcnJmHKhdjzejykrpMoLhvzkAgxqXZSMcPy1pXV2ZW", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnsg2HbJgVaNtphiVWLJLC6kSttQe581EEnFTf9vBLSj69xTq7wB", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qj7gvek2kJC5xfMbDUiSLxoBPTDcavo3znDhUHdaijSgEWihdvyC", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qn9JjGGgD9ZPvf2Pym5XgFhnkMw3bLHyXJQHvdRtnXopNKUcvjcK", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qo8CSKZHLhAQ7m2ZDS4ydY2msSDSCrJ9UKVN2Rh5Rfxc7q93Hjk4", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qjuZrcrDpvHvV7MbGPFhnxCzzdMuoHZu1kaHvj4k7owCeadZQKFB", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qmfSiGXm2zoyfLoZBzXH9pgjf3SHzQzZDuBMfhWMCyNbWrrB4VoS", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "balance": "83333.000000000", - "delegate": "B62qnLVz8wM7MfJsuYbjFf4UWbwrUBEL5ZdawExxxFhnGXB6siqokyM", - "sk": null - }, - { - "pk": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "balance": "83333.000000000", - "delegate": "B62qoebzV8WgrC8Gb1csZXjZLtSQNgMYPE6QXKT743mrioj6JXRXHJ1", - "sk": null - }, - { - "pk": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "balance": "83333.000000000", - "delegate": "B62qoNBC1AyBpMyuz2TZ3ovkm5t7tzrWe3NKWxNj2JbTrujgAqRb9EZ", - "sk": null - }, - { - "pk": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "balance": "83333.000000000", - "delegate": "B62qkPpK6z4ktWjxcmFzM4cFWjWLzrjNh6USjUMiYGcF3YAVbdo2p4H", - "sk": null - }, - { - "pk": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "balance": "83333.000000000", - "delegate": "B62qkUHaJUHERZuCHQhXCQ8xsGBqyYSgjQsKnKN5HhSJecakuJ4pYyk", - "sk": null - }, - { - "pk": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "balance": "83333.000000000", - "delegate": "B62qjtHSupUKstEDPuQ4q8Ay9Pum6ZhsiwRAWG9N1EiCDYp7cEBPqqv", - "sk": null - }, - { - "pk": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "balance": "83333.000000000", - "delegate": "B62qmo4nfFemr9hFtvz8F5h4JFSCxikVNsUJmZcfXQ9SGJ4abEC1RtH", - "sk": null - }, - { - "pk": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "balance": "83333.000000000", - "delegate": "B62qoeMGjqqoXfH1JcUirKBjzWYAi8RqrRYxMdQd9a3DtpLfzG9JTMW", - "sk": null - }, - { - "pk": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "balance": "83333.000000000", - "delegate": "B62qpQT46XiGQs7KhcczifvvYcnx7fbTzKj8a83UcT2BhPEs5mYnzdp", - "sk": null - }, - { - "pk": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "balance": "83333.000000000", - "delegate": "B62qnGoNQ1gJ4h97wMZeKr6Nk3PY6qQPH5kAGnkuuqbRqKPpDkG6pYu", - "sk": null - }, - { - "pk": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "balance": "83333.000000000", - "delegate": "B62qpfgnUm7zVqi8MJHNB2m37rtgMNDbFNhC2DpMmmVpQt8x6gKv9Ww", - "sk": null - }, - { - "pk": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "balance": "83333.000000000", - "delegate": "B62qkiqPXFDayJV8JutYvjerERZ35EKrdmdcXh3j1rDUHRs1bJkFFcX", - "sk": null - }, - { - "pk": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "balance": "83333.000000000", - "delegate": "B62qjSaiEMhN9RyJSvw9FjwKzVnJnffU3x4in3pn1irzhYVNFJ84dq1", - "sk": null - }, - { - "pk": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "balance": "83333.000000000", - "delegate": "B62qoeik6jNZapnxHeYaF4sJMEq6LccCJ6cscm2ZoHNmX5UcQREF7H3", - "sk": null - }, - { - "pk": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "balance": "83333.000000000", - "delegate": "B62qmnZga2fbt5mf9hrMDctjxBXzzQs3UztCn3ecgzhiDUff7JEwFF3", - "sk": null - }, - { - "pk": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "balance": "83333.000000000", - "delegate": "B62qqYvLLtTMQtHxRfuzZK21AJrqFE8Zq9Cyk3wtjegiTRn5soNQA9A", - "sk": null - }, - { - "pk": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "balance": "83333.000000000", - "delegate": "B62qpfenMTTuG2RgaJJaatbJ7KheZ4K2a43dsK48keARjk8mZ4Mhjcr", - "sk": null - }, - { - "pk": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "balance": "83333.000000000", - "delegate": "B62qmM4HnDHDwVXqBdCcXQJ9U2zAPNkhqmo8SNWAxKWoEok7GzQEkTv", - "sk": null - }, - { - "pk": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "balance": "83333.000000000", - "delegate": "B62qmGudrekyaWbKzw2b4LagLvhUjVup3vUxKf1Yj96ZiiUJKpPZHjG", - "sk": null - }, - { - "pk": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "balance": "83333.000000000", - "delegate": "B62qjC91sRWBqABxgX84RSz55hSUuwgzyLpN4JxRWEegHHkhaCbVMni", - "sk": null - }, - { - "pk": "B62qkQKymf9v13AZoC79jZjtgz7FfYmQnCWG63bzxtrMhnvJiBQ5sJm", - "balance": "66000" - }, - { - "pk": "B62qqXw6h8Dz61QC8eNvBQxC6rx6BoyFDKRecq6PJUQWEmgncoK62oV", - "balance": "66000" - }, - { - "pk": "B62qqatcmrFjgzCkzn5KRfGvE3ptfR1Bzwud1xQJate92AteiNtWGAR", - "balance": "66000" - }, - { - "pk": "B62qqGxFDYaq1QrDUWJDSkJsBPg58NQ6eAPaV4VrNuoP22X9DQLAzrg", - "balance": "66000" - }, - { - "pk": "B62qjQrdWtZo3UqYbEadEsSBhQ7s9cG2ZzqKa6r2LPPxouPSGz4qHTv", - "balance": "66000" - }, - { - "pk": "B62qrVoaV6EpdHKpj7waKeyaQp6tFNYcnfkQQUKCWVX7hZLaQuCPxvf", - "balance": "66000" - }, - { - "pk": "B62qq5VNWF3dZccsTuZrWTwfbx6F22PzHpGrpFunMwaFB6F56jSnca1", - "balance": "66000" - }, - { - "pk": "B62qkig4d2sSXCWTTDExYet2GkqZ4cGgguUztoGBTGYLwMzJhLdD6n9", - "balance": "66000" - }, - { - "pk": "B62qp4DBvxKRFNcLEveoirhwb2F3vChtqsQjYBiiWSndFG1b8DZd7He", - "balance": "66000" - }, - { - "pk": "B62qqJ7X5YLnn3MkdkbsafsgmiAqdVu9DmCkoSjXmrbgkAMV2uuydDn", - "balance": "66000" - }, - { - "pk": "B62qqtMLVnZiX2bfPiRXpVTrxbZP6W7XzoPy58weg6oCRcM2AeopGy6", - "balance": "66000" - }, - { - "pk": "B62qjH8TeA5mKfdSSwhQ5xnC72N6PXAaDjWCFCpMZJD8qrkVgc5RZFW", - "balance": "66000" - }, - { - "pk": "B62qmZoyfgkMkUw8v7i6999C9Q6WKG9qPXPRoapVhTVzBDjmVPnaXSG", - "balance": "66000" - }, - { - "pk": "B62qrRjSRWsRZkV9imq1eauvWr7Lz4jQWSb2xseCw19wDjM9yCEBPsJ", - "balance": "66000" - }, - { - "pk": "B62qiwaNejBWNcVyTBNkNPDojAAA9f2UKV5e3kV63P7BCgAEeb1aGHQ", - "balance": "66000" - }, - { - "pk": "B62qrkb5kXFNfPSy85vsUq3BgCSjCtksY41gDa1CtsRJjt1jfnbX3gG", - "balance": "66000" - }, - { - "pk": "B62qj6LJkfZ1nJFkSgTKVsS3fSynGfAxQi9bETLxV1Ar71MQTvQJ28H", - "balance": "66000" - }, - { - "pk": "B62qr9zMHYk9F5zs92mHD571Avue6uMCxb6Xs2siFVSrvUzkvjmahT8", - "balance": "66000" - }, - { - "pk": "B62qkyzxn1nUFV7JoGbbt1iJtdELuK1Jx6r1KHVyHaFRxcosSk4b4zX", - "balance": "66000" - }, - { - "pk": "B62qoDmm8THBi7xH8FhVK3ti9bYu2asgmA5MW1dRA37bSaWwgPqUdkF", - "balance": "66000" - }, - { - "pk": "B62qqNABVNmDcBhFXBvLfHKSqEqeNiVSK6YZNHRpmpXLNUarJqAkCv4", - "balance": "66000" - }, - { - "pk": "B62qp2i9jAdMhYc3qciTQjgRNS1oqhPnhcvwqSwPXscCGamhL7Cj1kr", - "balance": "66000" - }, - { - "pk": "B62qjYLMR9gXp2KxNVLaCDnMMQe7RhHSVgqtGZxFcNQHM4bZHkZDKQd", - "balance": "66000" - }, - { - "pk": "B62qkk1UFH1poXCzJ23VQNbkGbYtCitEwSxCkTaXV4fwGqJYfrGF6KM", - "balance": "66000" - }, - { - "pk": "B62qkx1W9t2vwKMPE5dcji6nD1dBGiZVHwi5uGXstABpnsFNnYRfGZm", - "balance": "66000" - }, - { - "pk": "B62qkmpExpUufCGVxXDaEJEyVx6uVzECDtHzWXskT84AiRq3p5ym2Sq", - "balance": "66000" - }, - { - "pk": "B62qmEgm2igdsnr84NZBMfkVamkdLoy7LALR2WHFWPibmA11ReVNEYD", - "balance": "66000" - }, - { - "pk": "B62qiWwQW8JiHdjUfgNFGdkHQDep4z3jmM5Le1HNnynXPRpN8wMr6Rg", - "balance": "66000" - }, - { - "pk": "B62qoz5UphZJTDQHDiTAFYNRqZt9Pr1pLhrmDy31UdqjCsYMATyccwu", - "balance": "66000" - }, - { - "pk": "B62qq7y8heERLB4kADpyvx7eP9wEEB3FgQBHJgxL18WKHPodLtpTnW8", - "balance": "66000" - }, - { - "pk": "B62qohwBkqmgYjTYr6PDWdTxGmYEAQ659LkCnR2cH1DvU64KGw7P2Nx", - "balance": "66000" - }, - { - "pk": "B62qnghVZZoBg67EcdAWgTj25tEXy7dtxuiTs4AeWZ1che5sAiuXBMZ", - "balance": "66000" - }, - { - "pk": "B62qoNFJJi7gg7SjQvkjn3GLpqr1mstjLLDZLf2M2cgA74kuWZwtX5L", - "balance": "66000" - }, - { - "pk": "B62qpTjEFmDQymweXtJssaWrkvvXYvjHT8NC1R7qktd4jqKKmjKfwdp", - "balance": "66000" - }, - { - "pk": "B62qkxBg4drziWQmKoNyH3mrehLjVj6TAwrXAXsHWaJTHiphgYCMN5j", - "balance": "66000" - }, - { - "pk": "B62qjVRygUSnJ6jLhGQntno3oEHoD4qgzVKddUTYzChtPLw89CQ27QW", - "balance": "66000" - }, - { - "pk": "B62qpMwZKU8omx13kp8KWCmAj3FrxUL1mow2NVgBBFga6gbGYGAwMFY", - "balance": "66000" - }, - { - "pk": "B62qkgUjeQ1cAfrZg8Y7o1ERaFPQcafmJnHTpnF4tLixjvXKLikB6iU", - "balance": "66000" - }, - { - "pk": "B62qqKm2XMTp1qhFJZtv2nMghsvhCtM2tRHrW2NeaS2huP3gdi2Bpqy", - "balance": "66000" - }, - { - "pk": "B62qnGkE6B9hFUWKDb8MbNasMmEtDNkgeHUaG9abXBP6UaG8fteYfcy", - "balance": "66000" - }, - { - "pk": "B62qnnRf9PFST2zDhhnxTPiZT3pigMxj2Eg5LNtxZky5sdK53xaMjXX", - "balance": "66000" - }, - { - "pk": "B62qrwXGgkRqQpwEoKx774MpQJRTJdRr6Toh1ypGrniUZvyop43hEjK", - "balance": "66000" - }, - { - "pk": "B62qo4cv9qcqTJ6uBDKhySxzzVAipdaXrm8k16GE9NXjPBx6B75Tn8U", - "balance": "66000" - }, - { - "pk": "B62qjg96mzhiJRXQSs4DqAq5oZFXbPsakAthHFYuokGfkihG6hJYxc1", - "balance": "66000" - }, - { - "pk": "B62qmDxQufnAxdM4FZUEns6hJjSJuy4sEKzK2u7ZoH3xkbAw1fQZMKo", - "balance": "66000" - }, - { - "pk": "B62qrFpAGh7EU77q1vLJt5viR4TjMCjdEdXroWVPX91rjyw6DebSUz4", - "balance": "66000" - }, - { - "pk": "B62qnZrhCboFHvPhD4huSnZKmtBnRRZmJUTU4qWnWSbsVuyu57ieHrX", - "balance": "66000" - }, - { - "pk": "B62qkRZHMmz2qhniTLaW7oYWhHGhAwAcAg9Dih7H34uC3yZQFaejXTf", - "balance": "66000" - }, - { - "pk": "B62qk8k9veCqovJoWVkpv5phzPkL6fGpbaaxohnkGkvrq9R3k3QawYM", - "balance": "66000" - }, - { - "pk": "B62qm2iYCm8sHi9RR3QdP5iNiqJCTLcryqg4mig8Qr7iumHcCMF76iA", - "balance": "66000" - }, - { - "pk": "B62qpbBUYLRwTJ3Nfh2NfNp3Mxrm4XpzA6DbeKZd8TwEsLkuZrsXShn", - "balance": "66000" - }, - { - "pk": "B62qpyjFNAfryVDRogbKrP82ofYSDY2yNVpwaCWTxT7iwDC8BxYZNby", - "balance": "66000" - }, - { - "pk": "B62qrChUFbL1zT3ZUJYwPjFKGUpkrnjztSzrY3u5XbA2ATkYfYG8fW3", - "balance": "66000" - }, - { - "pk": "B62qrEzfvjCqsDtTLWVm28ea96j8Qr9muMbseCwqPmDGvWjHmHBqwXn", - "balance": "66000" - }, - { - "pk": "B62qqBu2CMKbrpSJ9pSTRmNyXCZ2dbZByPovdtp9zmQxs7DEDLqq8Cd", - "balance": "66000" - }, - { - "pk": "B62qpNRVfHbVxGj2uGFqfHtQgUbNKGpZkGDZAhramMvc7EL9WsgP3Gn", - "balance": "66000" - }, - { - "pk": "B62qomzv8aCHAchtTRGVe1F4ZhjTas2DZQwquobKiWMKMpFJKYVkjq2", - "balance": "66000" - }, - { - "pk": "B62qphGJcfXQ5GLaRXT2dDCxe2oM58UqMidGGS12pJg5biPga4GNCMJ", - "balance": "66000" - }, - { - "pk": "B62qmrHs5i24nvtMm2WdLWhcy5qNPwcHwix8MbzEQya7wA2jwb7aw8g", - "balance": "66000" - }, - { - "pk": "B62qoqY25bzdKwacmxDWLvCZVcrUSJyV8C7bSfwoE198RNHxqoVbmtv", - "balance": "66000" - }, - { - "pk": "B62qpiRgGe5MYfK1aNwsTGtjC4FhZRyqfzDpUznEfYb5DsVPYeLMDu4", - "balance": "66000" - }, - { - "pk": "B62qizvBNrBkEo8bboRLFq38Stk9BUrD62Ud8qyygDRsssH7cFbMN8m", - "balance": "66000" - }, - { - "pk": "B62qkxxRDkaAWKpBzCgNd6iQCRbwhwEnksCxc4bCED16noBvEpnsqpt", - "balance": "66000" - }, - { - "pk": "B62qkXRQCBRcDkCoAvpisecbhVXqSLyeNoEHdUUuXYmojDPnoLASZTZ", - "balance": "66000" - }, - { - "pk": "B62qq3Avky7L4CKvRpJbf6gEsxgqpN9QjTiWG9TBJt5VkFd1NnQ5ZTY", - "balance": "66000" - }, - { - "pk": "B62qqJWBdwM7U4fsqRT3XCjqwHLtDd733eGYi3WH6SZ99n7G9MAM4YQ", - "balance": "66000" - }, - { - "pk": "B62qkh59rUZ62o9NSu3UwmpGfExH1DRXMroiVhGgiXCxFof3MbAVLUM", - "balance": "66000" - }, - { - "pk": "B62qqbw9qtiYwoak653TpM1hzrBoWzvSAWAv2bDZ9Np3BmgWjeGwA93", - "balance": "66000" - }, - { - "pk": "B62qnjyx7P9BZGcCVVTaubBsqzJvfH9VYfjNYUMsVGMQ3GN15x5DdJH", - "balance": "66000" - }, - { - "pk": "B62qj4ovok4smDqaDop2PJYQ2JJ2W73TZ9P8jZkhjpUGxhB9mn6Rwk2", - "balance": "66000" - }, - { - "pk": "B62qmJRYYaGg7SSAooSkxiRSJ7SqTR8ZWjXPw3HuGUn6zRdPyRJwJSz", - "balance": "66000" - }, - { - "pk": "B62qmbwpLw3ZhPodzDaTxfTMnmTRqc13Yktruc3appkwECa7XeeijqG", - "balance": "66000" - }, - { - "pk": "B62qiU7317wp7eXUeDvnchjjzoZzg8LGS5HWDRZQhv2ufj3yNSLSx79", - "balance": "66000" - }, - { - "pk": "B62qkwBwdC1Vu5MYCoXAB46YiYkyf32sogyCm1vjQtVPuEG4Auvguao", - "balance": "66000" - }, - { - "pk": "B62qo5f8t1p3LJnbU1MTNnkoup794JqJF5JCemEWTu78uKLgEw8C4eq", - "balance": "66000" - }, - { - "pk": "B62qjgKETovPcrLn927Ft5BErFQaGNhXLSabGJ4RCRWt1tQUG4w6M1E", - "balance": "66000" - }, - { - "pk": "B62qqTHYpaTuo5dT1GBcTCze51qxksJfo6rLXPaBSogiECsvh1oMUKx", - "balance": "66000" - }, - { - "pk": "B62qmvGNapyBhm8oNKNeiWuAepPWWa9LopcSvBSR99ZSoTSr6ZRfgJt", - "balance": "66000" - }, - { - "pk": "B62qnEWh8d19pM7wauZ7cXU9vJvxpP2dx4Up2vzTzetEpbmqcp8U3gv", - "balance": "66000" - }, - { - "pk": "B62qn2P2MjgjpZGpbMBdj7PykK8u4JusLFWCDR3fjtVzGH3tfn8zswd", - "balance": "66000" - }, - { - "pk": "B62qoHUD829nhUirZiTtTfHpArUEoJJEeCtq8BaxHMJ8PuTZfaayPia", - "balance": "66000" - }, - { - "pk": "B62qpMF3jqywU1syJYuw4g6179SbSg7RQoq3XjenFg3b9BZcnqin2Hj", - "balance": "66000" - }, - { - "pk": "B62qjtk1ecnbAPM7Y9sRsZWbo7C3bJmPzhuR61M9AExwi2GjBnvyd6u", - "balance": "66000" - }, - { - "pk": "B62qkLHmPDNA54tijXagswxQYDgNz7K5yW8d3sD2vsEHrbGanYY62mT", - "balance": "66000" - }, - { - "pk": "B62qqvVhX51uY9F9N14gghD8uKqmkMVJgSJQNH7SKHScv847XJkfamZ", - "balance": "66000" - }, - { - "pk": "B62qm2hdC9nmjPWM9s5LX8GcocyMq4E2ZDHabaZTjw1hcSyBSryLdKA", - "balance": "66000" - }, - { - "pk": "B62qp6pd58pAnMqcwQHgYR1LuwtTJb3nL5SQ65zGz74CWgWmAXhJHz8", - "balance": "66000" - }, - { - "pk": "B62qrMi4pSc6tP6CDgLN85Ty37nQuZLzC6jSd6VSzP3oLTbbLeWXvqx", - "balance": "66000" - }, - { - "pk": "B62qinhgBcMZDWpB3hkt7uR8auKtbvk6QF5dRyZGEXSkZSSGexD3bQu", - "balance": "66000" - }, - { - "pk": "B62qodX14q8EYBGXhz55ecNQRKLpDWxGALTF6tT8U474fdPKeRWzu7K", - "balance": "66000" - }, - { - "pk": "B62qjLHSHRDmLDaxQYz1fo8DPcY3htgnMeT6mEf7Pu3Uy4SFo6UDVMn", - "balance": "66000" - }, - { - "pk": "B62qjR7C3RZD4z9Z8L6BsobTjJemNxkMnokKVPnxHvtafhws5bm3yHr", - "balance": "66000" - }, - { - "pk": "B62qp2gGuSi4yshhxEt3tmQ8pjzFxpbyuCjkwCiB7NLH4jAVeyitZYj", - "balance": "66000" - }, - { - "pk": "B62qm7MncZd1JEjQ6m9DUfuv2GGu3LgSZrSU9cXf2L1UKEacsvwF2MA", - "balance": "66000" - }, - { - "pk": "B62qojCRRg7xt8KcXf8NRcLdprPuX85VdjVRmwgkB5RjZzMxS69BcLq", - "balance": "66000" - }, - { - "pk": "B62qm9fpfoEUr1DUvvYHgRkuvq2A5nLAfWxpjhL5tBqvkC338UDm1vt", - "balance": "66000" - }, - { - "pk": "B62qkMkPjbq5xpXFPUBFLxV7Bve6jzE4BqVwyGyU5cmxDaW5WRMWjiB", - "balance": "66000" - }, - { - "pk": "B62qo81eHLPYB4ZrEEtKq7zCPhAgYaeKfyotkqjs5HqDhTrKHVZdPHz", - "balance": "66000" - }, - { - "pk": "B62qkdbeuzq21Acv3JVoF6P185dTy1hd1nhWq4HcNPcCNc26LsSSinU", - "balance": "66000" - }, - { - "pk": "B62qrbYr84NiuKksE4tfnRMwbenqbxKf69pqvqpJE2LHBECHgYNwKcZ", - "balance": "66000" - }, - { - "pk": "B62qq1vPLb2r8yPLdzq21P4SZqBXgFVT14YKTEr7dhU21ATsU1nAzfq", - "balance": "66000" - }, - { - "pk": "B62qrefB1wQcgqY3N9USHuzKMUDxhkKkUVi8mwTV3cXu4oT6F9VosyH", - "balance": "66000" - }, - { - "pk": "B62qjPaLiYYAVBoYybaxskgeViD2eyugqCnDBx6XJapwA2suaBj54SW", - "balance": "66000" - }, - { - "pk": "B62qnQaXPnxQy7BycpWb65ko2Qf2Mi7swWPPgHEAmgwFUEcVqSQpXzj", - "balance": "66000" - }, - { - "pk": "B62qoECTjhkoNnBjKj7FFPUYatLEqZ3ZJw2CkYVnYLK5Prktt7FwhMD", - "balance": "66000" - }, - { - "pk": "B62qnvjxgwxHnwhDbKjQ7Y8uGCCV6Zu4BxE8vNZQjcxn525CovaZkye", - "balance": "66000" - }, - { - "pk": "B62qkZE9B9s7Zihwjqs6k4DZurPxs1MhiC5V41y9hy8PVJYfGU7SdT7", - "balance": "66000" - }, - { - "pk": "B62qqAQfdVZDe5JoAyfv51uxXGBAav9VdpjHvKYZjFkxbDkWMv4e9RU", - "balance": "66000" - }, - { - "pk": "B62qn5KvUBbA9oyFbiPJSxYM44gVrYBTN3Md17VhwtQxbaYermZ5QDH", - "balance": "66000" - }, - { - "pk": "B62qmD7NLqzYG4RQbVnKPjhGcrik8iLs51zEjYb7gAmSYwWqzREyo1o", - "balance": "66000" - }, - { - "pk": "B62qj1q8jUrZiQXKMNZ9pmm4aHUFJ2LEWuvYcgNbVZvvwWXYWztAw4B", - "balance": "66000" - }, - { - "pk": "B62qr23m9onK8zHJMJ7nbMhAQWo84GVbEWudiedYYq6kR24ZXponPdN", - "balance": "66000" - }, - { - "pk": "B62qk788Rg35wio5JpVHfKMnbcRBi8x4yfWSM37FdSXCKM7bBP29un5", - "balance": "66000" - }, - { - "pk": "B62qiinEhm6Bjf1ZJ1ke6kt3MnoKR1TJf1cTK5e1NnsFkxGomjxqwbn", - "balance": "66000" - }, - { - "pk": "B62qnN74oDG9nFwhSuMthpHyM4GZRLrgKYdkMY1KsE6GDk8wjpERHMt", - "balance": "66000" - }, - { - "pk": "B62qp5FuCDUAqdV2JzdDFodbJszziRNGEXqg4MXGgt4hhQz2LQt5C9o", - "balance": "66000" - }, - { - "pk": "B62qpkbeN3JNr1CW6tmuQhEidEyrkUUnTZVNx9epNrueVjGv3X8ktav", - "balance": "66000" - }, - { - "pk": "B62qoVcukJ7d54nYhovEQtEM8Fpa5KE3KCUx92SZiFbqvRHyfrPPv3j", - "balance": "66000" - }, - { - "pk": "B62qq9F3EvYmhoJXM8sPAHGAiiXSdWQ75wcvXB9qUEUBnCnowdzXMPN", - "balance": "66000" - }, - { - "pk": "B62qkEwAwqwFBz97NxC3G4FFjgkmz3vBvziqZSKorVwpynFhvvKyXgh", - "balance": "66000" - }, - { - "pk": "B62qkhnarQ1dZxmvir1vt4PprB27EvkXrTRAZs9JsUV7N8Ju1QxNu21", - "balance": "66000" - }, - { - "pk": "B62qkVkjDw6HAmSMcbMsVVpgzZded9ToSBneZLMnqkPU1GSA1FjhtxL", - "balance": "66000" - }, - { - "pk": "B62qom8xaRnZUyrfMZmaT9GFWa6cozGZxVgrBQ8g8CeZ87KguwztyqK", - "balance": "66000" - }, - { - "pk": "B62qkLJRk7uvrJnYGEcDhxD8siRMmTSN1CqpZbyFx5exu6L3c6dX1Q8", - "balance": "66000" - }, - { - "pk": "B62qq3hPCMdKu9MPjAAV1pjrLdjdMEnoKjBd31B7LokYafoFxNLux9P", - "balance": "66000" - }, - { - "pk": "B62qmdg5dtqMpALGj2ExcaUisguEbPzaVXSKbqVZnxYcK3qwei6KpmT", - "balance": "66000" - }, - { - "pk": "B62qm82rLtMk8iYqsViAhfE34tBKXSBeBuU5n616aVaM1RSGPJXxvGt", - "balance": "66000" - }, - { - "pk": "B62qodumoncYazuL5hsgvtbapWarGCVmek5Q9tFzDzLJts2CNPnmCXy", - "balance": "66000" - }, - { - "pk": "B62qmjfixBsqsBGeqtcYWibHikSVyEvQgZPUBHBHLJUacT8bEDi1gte", - "balance": "66000" - }, - { - "pk": "B62qom5xAm37DHPqSKn1ck3cZ3W5UArdm8uYJNNc3Vt8CXQvjodgbm4", - "balance": "66000" - }, - { - "pk": "B62qihs32NFGwfu7KYaDy6Cd7RtgswvbuMxi1rV4CR9Ht7PWhFipReF", - "balance": "66000" - }, - { - "pk": "B62qp4AcxhhGcNVWnyK8H5LHWtsPHr1PzxpyUpa9BEviq8Sc4JdM2VH", - "balance": "66000" - }, - { - "pk": "B62qrdcGLaSuC3Qbyk44DAcneu5qau5A7Uxw5ntG8RUWUuJHuowu4p5", - "balance": "66000" - }, - { - "pk": "B62qoPWtrsirWE7rEsZhmHnnYanGCitqSh2NkihQVviUDCs2jXVksAU", - "balance": "66000" - }, - { - "pk": "B62qqREb9PLzsDFJHjwNm2obmo9sk21ej7Z1gpDz6NQyCrmZMFsk2es", - "balance": "66000" - }, - { - "pk": "B62qiVLEXj3sWVscj1DEky1j1K9JtcryWNFPXPRDi3hqRRpTNvS127Y", - "balance": "66000" - }, - { - "pk": "B62qrTLe9FCcgAwuF7o63T9Lpbog5UnzfWqGTCkt4hHgw1Bj55NDG6e", - "balance": "66000" - }, - { - "pk": "B62qmmYjvjsz7L44xyyUuqGjoW4ie8S3FVhP2W6hPtRzfZRFTvadJPW", - "balance": "66000" - }, - { - "pk": "B62qp1tNarD45Kfo5UTcKhUwAqAeh9AajRnJjH4Wt2fHNA86QpfdyEn", - "balance": "66000" - }, - { - "pk": "B62qrrnAm339N7Aoe3cxYcqAS5WxXq1JbFX4J9HMzuFvjo6eUNtEVix", - "balance": "66000" - }, - { - "pk": "B62qrcduYWKLMmfQ5EEXHJaPSjhxqV4P8nrPZUJRA39HDDwvFc9FeU6", - "balance": "66000" - }, - { - "pk": "B62qmXUqB5Wq95Q6DisK3G6AD8DuWDQTkf8ZA9TiUF3HGnyoBNn1THv", - "balance": "66000" - }, - { - "pk": "B62qqukWnTxAheZpqaTVKxKGPx8txapZi4nzY2VNUGjiCw1yC5ZWvju", - "balance": "66000" - }, - { - "pk": "B62qqvdNZui78jR3UW6Y2gu7iVQpDb8G9m4zJ6bDHK5CvNJgS36eSMk", - "balance": "66000" - }, - { - "pk": "B62qoqs3R58ctdwJAvwy991S2zGBjKV18iWBQrtkwkuVFu57V75xszP", - "balance": "66000" - }, - { - "pk": "B62qmT4hirpK9C1c8P22gjqmjsJre1Fak4tqEhY1HQyAo6voKBFomhC", - "balance": "66000" - }, - { - "pk": "B62qkTUHxLN827CKU3EbRLxpNB9t5TQkUAfc5SuxaeadfszeCdmFB9d", - "balance": "66000" - }, - { - "pk": "B62qiySvZ9eH7p1APCcmdFVPXuDztEgMAqBGnkgkvDF6T7cUrUmtjC5", - "balance": "66000" - }, - { - "pk": "B62qn8vmsDRejUQxzPz23yqZj7R8vABwGUVzCsaUmtvCZfuHcczxu9r", - "balance": "66000" - }, - { - "pk": "B62qjPFrxCyM37tcZfWSPesgbz8Rp2yBFLjvR5dxXB6xMvZ3jjuv11U", - "balance": "66000" - }, - { - "pk": "B62qqJ4U4rQSbdbNBFYNLU9YDT2ZymZ3zkw5efuDpfUvErC8ZgewK8z", - "balance": "66000" - }, - { - "pk": "B62qoo1UjfW48syJ47JqpgnWzHUBjmDriynvk4Pmfau4dV9FtP4uxma", - "balance": "66000" - }, - { - "pk": "B62qpZ2eDncRpjmdLBundEraFjJbp2F5KLkDspU1Wmtmf5YJPDbnfPA", - "balance": "66000" - }, - { - "pk": "B62qq2g1MJ9xti7a9hzYBz16xda7DwhALkZ4wYLTxZyYUA47gQkXotL", - "balance": "66000" - }, - { - "pk": "B62qqYKpsJdyLEAdDNNPNaodawizahEntJawRmYEgp5KuA1kkWvpnGT", - "balance": "66000" - }, - { - "pk": "B62qrSGsYPKPFpBSx68tP29eEH1SDsmFFdW1d3EqFKCYz9QpHEJt5UJ", - "balance": "66000" - }, - { - "pk": "B62qq8KffQsj1wtCdNroQsY3CmduBqEMoSxcRHryjpRZ3zj1EDuez1P", - "balance": "66000" - }, - { - "pk": "B62qkY6NB3U8ga2i93SrL7P6H7f7hA8g8Exv7WsRWLKzMrpWyqV3UwS", - "balance": "66000" - }, - { - "pk": "B62qka7Lo8h9Nno8FPvwZLJU4SZHXggBdQpEP3Y8MyfVhg1DuyAwaVi", - "balance": "66000" - }, - { - "pk": "B62qoBTeqQ2eDqFvGabp3FyXyBFcZDCzVyY1Ka3snxWQ4Neoeu4Bpnc", - "balance": "66000" - }, - { - "pk": "B62qoLd1iTafq9Dz6cv8moEVdqR551bzxXb4S8qsWYz2cci6Fe27Kb3", - "balance": "66000" - }, - { - "pk": "B62qii4y1PTEmitpx2GMEH94vPtgNePWkqk1THCMv61TQBvWRcczVTK", - "balance": "66000" - }, - { - "pk": "B62qo9eZxd3xyQ5JSgifr9BrgtrJdR7HUARFo8nEihGuvd8Ctg1Ccuz", - "balance": "66000" - }, - { - "pk": "B62qmK8Ksxv1esnCqRZmifRF6gBkDjj34WsMiBKqNUTpTtbf6gE72bk", - "balance": "66000" - }, - { - "pk": "B62qnfbyBb6vqphJBPJNgzfRuBpqUbpFExFSPpMXfL15Tm3Qm4kgayV", - "balance": "66000" - }, - { - "pk": "B62qnfbb44xU46JpuDb4bsNxnh8DwFFpk4SuKEmjbyVwkumojEVkNqo", - "balance": "66000" - }, - { - "pk": "B62qr8jTXT2qbjEnv1C3Gh8rB3wt4PhCM6F7UKuRT6sT38W2ra7RoHT", - "balance": "66000" - }, - { - "pk": "B62qme5k2aEnabsxtWGPU5wnXnwqmKYwedmcY8dWq5wrDwbYzQN6HnT", - "balance": "66000" - }, - { - "pk": "B62qp7toCk18yMLqA7bjb3jz49foW7w6ko4g6nw8YXBKJTZFoAexA5h", - "balance": "66000" - }, - { - "pk": "B62qmCMmGF44bBWVYRLX3mGHw3c2JAxqmokgTZjmzMLHTnzEBVU9CQy", - "balance": "66000" - }, - { - "pk": "B62qiatPfFXpJRArR3CR94aTy669wADdq9qG1di5g9YGHYnK1dCFK1e", - "balance": "66000" - }, - { - "pk": "B62qiXJ1b3nzmnSJxV4h74gvjsqb7Wz6UJr9CnYU7DioY6TPpx4cwqC", - "balance": "66000" - }, - { - "pk": "B62qrHJWNYxvdyUDCVY1mn8ZQqfuYN3upR5PXo8iv9fBaphvD18gaTg", - "balance": "66000" - }, - { - "pk": "B62qjEVBLtrT3YnBVYB86si9kjkyaKSjBz1SkLAhXrxF3TBKgFRBsGn", - "balance": "66000" - }, - { - "pk": "B62qj2HFF3Tjc4kEuWNrwcqHnen1XJ1rWHYGNobdsiazddwFcxzLwii", - "balance": "66000" - }, - { - "pk": "B62qpyJgC3AHQ8RNH3TMh4rNXV8QrRvNCSUTSZ8jmzNM6d6mfH3HLBx", - "balance": "66000" - }, - { - "pk": "B62qrbxHHLtimuab8d8oBV7dZd8uxnF27AhqQJp3FmRGoS3AWhdhsJW", - "balance": "66000" - }, - { - "pk": "B62qr3xYxTq24GxwhcHSEaJ9zQms4ScgPNTbUw4kmXFmnNg5SVXqYDx", - "balance": "66000" - }, - { - "pk": "B62qn1JhhGzkiH7sfQWbpBkJWiN4vVTjPzk2z1xoirQezXfiJRYFH5y", - "balance": "66000" - }, - { - "pk": "B62qmoDVyy3ciKRhUBHHW8sGwSaYB6pWRdcHF7RwKy7cQwUiZ5YRP97", - "balance": "66000" - }, - { - "pk": "B62qrpsedFqtfTaU22AqvjRav5p15PHmt3TQZ5SpfHpLCTAmfstN8Gz", - "balance": "66000" - }, - { - "pk": "B62qpQn3sss41ifguPF2B8s4XPhAYkEuJWceYvuSHA7W6QeZeJNak9X", - "balance": "66000" - }, - { - "pk": "B62qpdjJSxnkseYmkvTYftuxwbGDyyBXo7MwuoCDvtbsBgBgPJTTg4D", - "balance": "66000" - }, - { - "pk": "B62qoTNV9UbUfvBUsptFfN3Hse3t8dH3JKSi1R8k3ctCgwQUmnJqNUJ", - "balance": "66000" - }, - { - "pk": "B62qo5WeNVSfA5jQLQV28VhkTRKcZnLYEE21Nw2ZgrKnSFy61QSXB2A", - "balance": "66000" - }, - { - "pk": "B62qrQgYoApRfDYmGpVM8pnfSxa54Tyrqo1WnthG4Bge5ofFQE7ym64", - "balance": "66000" - }, - { - "pk": "B62qig46Qpnau7tAi77nEzXarxxW5huY5TqHWVMmz2LTLTJLNeF49AH", - "balance": "66000" - }, - { - "pk": "B62qm5CxGZMAyy7FAK8q6roZUoePjMuTAcToxu6BREhC5ho13QnuAGY", - "balance": "66000" - }, - { - "pk": "B62qiptsa2SfKqYEveyYAmEYgLrXx7DoGBCfTkBpBYoqKKULv6BXaUa", - "balance": "66000" - }, - { - "pk": "B62qquYgkYSHRPBc1TLT2HcWX5nWvWuQptdd3oMpW6VVoyk7FYtbS7N", - "balance": "66000" - }, - { - "pk": "B62qpQnpo5XduZVJtdjQMXgtEqPxuXtdw9pbcZaenUv2ob8SR3AN6we", - "balance": "66000" - }, - { - "pk": "B62qqDnmADGnKXfqVfGjvFADzvKzZNuk87kwcAETVt8bj9ftC6qLY5L", - "balance": "66000" - }, - { - "pk": "B62qnvMsQ7iVC8ocow59DuUMLToULDzX7vPxFbjjohEjUC8GWtjCpxL", - "balance": "66000" - }, - { - "pk": "B62qnhi7zqo5MsY9TgPpdHJxqY4iRZ7fdHLbYGLbh9ackeNzhD4psPA", - "balance": "66000" - }, - { - "pk": "B62qm9n3VnD2aVhwkyKFhrZyEnZ9KtKJMzkmefJwZ2J95BXMTXfmbz3", - "balance": "66000" - }, - { - "pk": "B62qkxRDd2ZmcFFv7TBw7MQP8F4GmXDNY55gBUmU15KczxtMxZkrwjU", - "balance": "66000" - }, - { - "pk": "B62qqQnrRT28gGMJibSLyiUyCb8ifMYH4EYGAt4HWxouBjZZmknFo4n", - "balance": "66000" - }, - { - "pk": "B62qpjRjz516rpntZ14FZe2T49HVtmtEbB9LEgA1CoMY95NgusM8Jup", - "balance": "66000" - }, - { - "pk": "B62qqdR4ykovjTmHH2uX1qG9bmz5upM6mHD6cwaD3afCAdE7hVJaA9U", - "balance": "66000" - }, - { - "pk": "B62qjVay8oPUw7zC3ifyKNYNv3qJujVWGjCuCsyQVzyJnJHkmoFTg8h", - "balance": "66000" - }, - { - "pk": "B62qo1CwWp18WhM5toS9D76WL7NxXNxKx2biESNk68AGrqKjRaFf8ks", - "balance": "66000" - }, - { - "pk": "B62qq1miZzh8QMumJ2dhJSvPxdeShGQ2G2cH4YXwxNLpPSvKdRVTb3q", - "sk": "EKEnVLUhYHDJvgmgQu5SzaV8MWKNfhAXYSkLBRk5KEfudWZRbs4P", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq6f3enRpmGsWBaJMstwQjQiRdAnyAZ6CbKrcJFgFidRnWZyJkje", - "sk": "EKEXS3qUZRhxDzExtuAaQVHtxLzt8A3fqS7o7iL9NpvdATsshvB6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkBw74e5D3yZLAFTCK3yktG4TZtq4wSfjPrxKr9Psxu29oEZWpvw", - "sk": "EKF3qRhoze6r6bgF5uRmhMkEahfZJHHQ3hzxqCbPvaNzdhxMVCQh", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrDMuC4Vu3x6Kcr6YpBYsFsrshpyyH6MWX4cs5UNN2b9syT3rHNX", - "sk": "EKFd1GxnQ53H3shreTB2VzQJxECz9DE9NjorrkfKyEuKCsHDHVSE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo2C5mvFGtmTdHVAynh2ZgD3kG6QbN6pMqnoCYsaFyCsxHuskFVe", - "sk": "EKFTtvEvxDbMLGfmktofYT1Art7imjTQjUctvpuzbD5bzm9PxHrG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmYHbjp4oDCNRNgHf1YLPQWQkVZ49Q6DLXmA9UdoERa9q29piAAo", - "sk": "EKEHLiY4THpcrHaKNqj9yPCCS9gBFCF5P2ZQSULeAyjUZRyDXV2Z", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiYg67MzbxgsHv9EPxANUk9EyKWLdPFVc6sdvECF2ktZoguHRRbg", - "sk": "EKDpKJFP7UYUgFDxDQX8mprMtoFJHorK8dQfT6c1RmyCJLVDgFnB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmKLqCjz7j4Wj1yodmsr9xDtGaiMz538NMY39D9dpukZJtEmsSFr", - "sk": "EKEKGDyC13jpwTacYGbpr6nvhaifmMss5cEuYXYHyxYCoD656Cff", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoY1SU63CQR2kyU3ra38s9AD66hyLsxRx91gkpEm3Y9sUcer5x5k", - "sk": "EKFT7AEhreTdud8prVgfvrGnXd8W45mVftwSPmm4o4okQDLN9Eei", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkEdNmGbUVaUnVtwMeMo9G1QBgfp9c3K7j4FbmXn21zG8ssvaPvi", - "sk": "EKEJru1CaxwBKMZZzoKEpD1HPCF77htS2VgqoVz6dBaCRoTtmFCy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq7vvHBQvVfkkcWqn7pGWFUvyVdkxA8UfWPhiNKiDBaExc4AWr4z", - "sk": "EKDnuv8xDCnjUh6YuMvvH8P3h4TjK7QSqgFMRqZASL37eEbULNgB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnAixvaVe6q1Jyf7MyHDrTZ6ZLtHwG3QosoHYU1sHXXBvQZVPYKm", - "sk": "EKE6TgsugK846uK881VDiMmbganriXMQXFYhvaa9y1X8TxmAK2gP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiWQzP54wt3j67SPSy5TXmMKETmtzinyF5EAXdv2ZVAhjNHVR1Rq", - "sk": "EKEFQRUYiZU3JEZgfLf3Cv27nUrYKbUufjxP6wCdPMvuJwkcpcWe", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnQiBH7BKE2Sz8fPKsuh4cDXSdGQayCNisEKFK6iKaAUSJ43igfx", - "sk": "EKEwP4UWrAnJPtKWQHPwb9MMn5kwTYWVM7jTF7jpFdbwLT6w1hjS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnc4mqvMEcqHaEbmzbczsMjJv8Rbb7tmMnFGFJUiE9pP1PeRrXx8", - "sk": "EKFWRTcPZJoM6rhC8gMwKXwo3UY1dtLWmJZW1ZMdsqLRi9bPfaVi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmMPfnUqyS1Wpr5jTAVdjvN8CKwgh4qCf8N3fZX3P4scBoTyoy8z", - "sk": "EKFDVnQbCno9ZSkrqprbzcH5pFfSptG8NhedzFyJii2nivdcuNb5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqXtMvkCnFstk8ycRQjjMRY4bL5hFJqJwRybcinf15F6YtkqUFj1", - "sk": "EKDubpo8y2AX4VGJ87hvh1tXbGU4UPQVMwJWBReTcRcqUG4zcQFP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qroyoKgQXBQ8FLTzCCKcj1uREF1CSeYbsLmJXBJ9U6yTGx2Snmqt", - "sk": "EKEzEnPSz38X4FDv9HooGc3kFHvAfeAu6pXUCtyjYKwn3PiKAzEb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrXNTaMKoftG15zBGad2tijoHbMLzASP2oV9gUtspL8jeDDfrYX4", - "sk": "EKE6k8Skk6GS9NjFuvyPjoiZsYAExhmM4UbC5Voh3m1JkBN7QvU3", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo1rMA1Xp7hLpNv5WzeTv5nkwVcf1YtNGJzNgR3BmCdsZhYB21K2", - "sk": "EKEHr7sGea47TDY4WUQmARggJRB5GzcQVPcarucBSxUeKveRHVX4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkQWFWfs3782mvfzKdQxgRue2LpnvtPQyj1KeiS2bpSci7ju3Ttv", - "sk": "EKFdjDaq5VdVD2VVFCFWc7WpkEvcqadawu3x7ifFifETfAiQdUG2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkwgPjb5EdPKGgnGAwYvuVpyRQgQGCSN5HaKeDabhqnVTCX6QWAK", - "sk": "EKE3tpY1DUFpu3HRbbxfjsBA5NU4R1fjaMoJgLVKtKsBhJ1qnwQ2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq8AnHji7MdMxarXdven74S2LrYRTqLziaX5FkfydWJ82nGHo4iw", - "sk": "EKFHUxVY5q7cwkGf3RwNJQdt6WPxVznGkP5Z83ZyaAc6RVbmoDrd", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrrBaVoSFZArNVZzHCR8G1ZntyrcMSGqTHFvBpSB9juaifLM5j1Z", - "sk": "EKFVvLzbukK3HC9zoL6tfes5V4HefqSrU3ASeLGreNAvAftwd85B", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpX4U8egY1DXUq1DS2vmHt3yPkGe7LtjHjcXoTVKz7T84qpsQibq", - "sk": "EKFdJvkRhYnv2SXfY44iLsH4QevMgTyoeDhAw1CumSvSmP7XjH8d", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjWe7CzScC1kFZv3UuvNsZE9aRiE4xPByqqDGqbDCPNZTpwp3uA8", - "sk": "EKF9cFEpSNNm4xVxtx1PRpWTYP3GmWgEBoR6BeirRrehXqFqWJjm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkpARDQeCpVfpdstNNBC7FENLPNhcNhSLoePDqXM8p8oBo6T88VK", - "sk": "EKF99JAuqWk97ys5RotGtknNFJAmn4eXfsiKSPAx8jhAH4hUfTBF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrVjy2B2Sx2LvBUDh24ohL4ddFwPgTH5o6M9frv1qRAAFDBE3FFU", - "sk": "EKDiscDUy4whtt9xQ3JoJ6Npo9vLwdPdNjLqawXpbBCx7xhw55uX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqT7Eq6GNjnhN2YXY5cVhGmg2s6qBBkiDnaMP6NNYxsfaRrskW8j", - "sk": "EKEwR5yyKG6zs3D5NSg2NYj5iJ74jrPxuSz7RGu9b8dKfwcyDZLi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrA3dwsVKCfiKfv4ct9ZrdYG7Z2ksxKcqq5DvLD5yacEVyyWDhrS", - "sk": "EKDhma1BCsKkf29XqKRv4w2WbL8VPwaN4ymuAjUJRxLPPT4xZLwq", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo8oiwjGVk6YqpEvZvihYvTNEFZRkdx1hz4aep4r8s71WM9VeU9o", - "sk": "EKEm22mzWC42B4X8uNMEVnzMDF4y3HEWckd1X9qQgmqcqWRMvC47", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoSC7vrro2t7HhYhXWJnAqFrbzuX1qMpLyZ2k3bWeHqFP1tGqsoy", - "sk": "EKExTsnoqxsMgh3BcMZzFCkTXRPNBhQVwRDFaHi7Dg8XzZjyemSt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq2dpUzeuq5Twt2SBfxaboPttMZ1bq4syoc3zWjaJPUve9vMy5z8", - "sk": "EKDzf1EQnxM5u9sJyZ2ZmFB38uxk7i7mwtqFP56UY3XwRC4RBkHv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj5GWkCj32zqqNjJ34yBRBUDsHAyxQpVZ4qeYjZx3Xs1QYRBztq8", - "sk": "EKFQfG3bqEQ5QtpG4d4XHQFugL37hwRnY7pbrQy934YbMPXaeYBP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjZ1X7XoQgfWq3bTJKY1haqpL83crBcyVPKZgiKWfkzmr7815vGJ", - "sk": "EKEV79dEa7etWBw3xEwHRVKqvpdpxp5KSoSvCYFL4ZAsxJxXj8BE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm4CmEudyKTZFtJZH9tWSYFAAycqBZ9i7JjzrfEN3f5hDRJNkoBK", - "sk": "EKF5QtLySy6S3i8mKFEKJ7ndfoWBTX2et3juc6vMkmj6KSP69sme", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrihVKf1UyHTKYL5wNMVphM8U632qkSY3aGjvhwdZp9AnKRchrDM", - "sk": "EKF4T9HWyD4pDwcj3cjeU4isCbFm2jVLFbAYvCQ6hsK36rMAPHfb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr4NnrFT4kuxWKAm7BarYqnfZNQxvj2DU4TE9fapGCiUtzsfEGMx", - "sk": "EKF2ew3hcaBcFP5gmxUrbaxEGQRaczmUx43LJ4yGtpBv24Pu5Es6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkAb7rWcb3cXfLezr4fnhjr6mfzTQq86TbiTJohNd4B2XhgQwiaT", - "sk": "EKF7KZAqos7vacs8KF2XjfmCD16W5uiuKrfKDxToLjYzyraKUfsG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoRPmiNm2Psz8Hbmqo3Xm1tqDRDrr2MHX3zHNrrSfgJZzmEFrc9x", - "sk": "EKF8866rj21R5tmWjDcHfiokB4nEYUy595PphZni2H86RhLnMF8q", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpMiHykzoJtr7ZnNiYQS9pLHfDSUzR9wk87RnhgUsDMFjvt5Lcsy", - "sk": "EKFHwuGP346iNkMWXNXsnpkHD33kjcKitw2QJZMQvoMbjhvzrtL3", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoJrDhMkrNzFBoHY2E47xpgvyzKJLsy9ctMZ69uniDTMhhsNS9rj", - "sk": "EKFMzGEiuKjNSPxh8aVxFxmwtnvf7he3Pf69LjfH2mXnadSPjPnd", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo3QgpxnKxZXYv6nXaMnoPnRQ6gjF8tUaJEqZ7ZEQZKobJ3cGKgi", - "sk": "EKDnVfJKf5BEWJDpGmkvFpamz2hY7B89AuUPJYkVsD7HpkkP8Cv1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn1wQsYd1F3P7kfmA5yMSjHgExp2JqhtkgYcbURudtinEGESBo7q", - "sk": "EKEtt9s3SLS4EpNasWWf5JoRgusFgGfwHPh6wRvCC5VQpkRjMP7f", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrcWc62vM4AhW97Gev3ZW7DY3RXcM4bKZs7pQjAmcqUU1mtPNytY", - "sk": "EKF7Ea1Jz4ZkYLZ9Kz1L55fyjujAVwW4qW2JftqhZz5mA1x1D7MS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmJEjc8yaJxzYr9Hna1wzWviK79y2KVBzbrY6Xv4U6MB7ZR19jTA", - "sk": "EKEvMdtudR6TujsRET9tskEMeRbYnbVdFMLiRYEvtVyjXhc4ErRG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp5eJC9H1g9UDdaPrmUr5AKe3gjjiMGbddFtLSvuk9MfaRYasAn8", - "sk": "EKEFtzhvAZd4WhaD6M5UEhbzMxVJtg8YrxyGw2rh1tweWN5YkJUP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjNViRKSJ9PY1ZQJvNXMYRXvnNGmQfEo9cDDWngzLLMd2JCq6SWZ", - "sk": "EKEBrB1VTqxeNrEmh9ZJBs2VCPyF9xAR1hy9qsMxoee6yYJUYGr5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnKSahSyKzF1cJbb8GDC3mEf97SdfyUipi84UkBSEL8ArQNj9ZZs", - "sk": "EKFJNMyjjbfmJ8ebP91NUaE1giCconh3hJ1zA48iupyC8t8Bt7DG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkF23gfsGZxKzFSE2veS1cHYqee5WvvZhTvL7dfwQZBtErxTHmJN", - "sk": "EKEgfWyhWozv5ufY7KEoMCfRVngwHjpc5ffpR4TXNjE3AoRYmuAf", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqabNCkP7TbGrJNmT5gTFLRdpUYexnKM3VodyQgt2bzM2X4TkCY6", - "sk": "EKFRz8DET3qNyJ3qWmcAHcHNTkrMhf47DdUFkUgEr1eoL3AoscNm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiabxD2ZD6VhfSABGgBYxdkJJFqNxnoUWo59QPdKW8EgtRgAiJox", - "sk": "EKDx5bJ54ALMfU19cUWaeMk7pCQd6J9SMyxPpR6BhXpfFVNZ5UNK", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn2g7U5V3K1S7EEbn6c1my2b533Dgor9QTgsSGVyXpJkrKhvu43Z", - "sk": "EKDrxaQJRWUevyPEVTyBi9JrZ2uUJbSejYAfK1hmymH6RqFmLwvr", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjsuXcngyDvUkEc47TMgVVndXTSUcuzdpLy1WNeTRj2KFqmwE7TN", - "sk": "EKDuhtjtRBwphWCn47eCpfSYeun5cWusdyvEPM5UQ6EiXNS4ryTD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnbtB42DXWKg6QygsHaibyeTjjaGHhDARMSDrfVjw1dmxgemHzeF", - "sk": "EKEA2QjsZr4dhLWv2hHuVsPx9GzfBmWwRy3Uy5wK5gDtmq442hYx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjFWGzQ7WYA9vJhv9Lr8EKe41LtTFLmyeoZfnwUXFP3T6ZaBZipT", - "sk": "EKFbqbxeHrBUqUsvf6SyMbDCJvSixdRVbXhT6AK8So3xdbej4pRj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpLXdZMxX1iwc33RpPgiBtGqUThidNQ69N7vKyeJsbYQb6mMjfjJ", - "sk": "EKDpXmWFgmqPwU2wGUtjDK1BvkxjvhzqDuW4LExDS3cPFfHtvW17", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjEpQr5TdiyAPPB3NvetSWedkzsgbaknqp8Tu98495aWUeQ23MTu", - "sk": "EKENL9tB9KKAZNQL12bFHX7WW4fB2LsW8cT66oWDyCJi5CsnGyq6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmgiipxyNWiYSh1H1tfupZ1bNpxKhrHzAdR6Z3Ee1JqAVwJwZnVC", - "sk": "EKDjpJ4M1a2xjVZjssxHXuc8eVozCDvCVToFtSVggFBdqvV4uFVw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiumpKPv31H6KqvbNH7yDjwhhVJZveEfrg4senhHGEcBS7QkisqZ", - "sk": "EKFEYa9Z7tPGAMgBTVZZ13rn1LvcjQ84tqRy6SWt4sjb94GHigvf", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkUipiBWU9A5xCAGatupcjUoHUQk5dsX8Fu4ZBiTZnccmZYnK329", - "sk": "EKFDJxTcaiJZouegjEUjEDkf5txUpWRuktQsvufUvFWk4G3NPSFh", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjNZYpGpB9DXHxBmPCMn6R62iAgdyhoUSsjKmJMtZbsNBfjoTxay", - "sk": "EKFY4e92yWptSyQ5reCie1JKzPpkH3nJxG4K441rWe3YMuyQG4HB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpNq4KAdg97AGsoPn7drFUn1Ho7xz25rjbjzaX9djF2VF3KMs693", - "sk": "EKDsjmtMx5PzR9ukufk8dS1wZ2VNMAi4rME7d6T1GCd61aw6KUBv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqmUcvJBqKCK7z7hVG6nuEwpev4UEtxb2JvoERnxc5GviHUTymzv", - "sk": "EKEYL5sFDZhQUjYh1GygeSZJ8y3d1AVTiDaEs8nheCrJMPgSGFEG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr7KkXBT1Wd8kG3rBuSLtV11WcYMg8ajBPGgQwTViGM5A2H84Yn6", - "sk": "EKEJCy62odQaWiZW1Vu5iL5kzo4PZZ6xrh2unLpwcT5CD9f5d2M7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjNFG22zayXav2oPy8bDn9HEbt68P4rv28EdL1rWxr3yBaexPBZR", - "sk": "EKEV7gd1CDW8qZzqhZRzZ81wAmoovnwpRaP4DTeb8uTCueYY9yLB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoAjgm78faxj4LaPVzF7Qiz3whVZfKf65CtaH18R2eZryZ3jWthd", - "sk": "EKEwKdP9kFEHfAWKx4T7emG25jCs7PmMKKmVqGHH8Nhvys6kuXUV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmVAwZb65H8Kv9wc2yhZJSirNcuq2FuhsrXdB8uM2W1AiQqJJmUD", - "sk": "EKE8yq729PSVTXHWizdK81KnJgin4RA6P588DSV8qu3eXmWU6vBh", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpSSKyMiwGFyYFQ3UihZKTQa4Czx9GGfG8US6yfGtUh2LgJMgnq9", - "sk": "EKDhd5sD2B5W3N4E9iFycPTbvBQ5VY4uFytkrrf3Pt2hPfkHvdYh", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj6F8hhvdJsfCN7iB5bBHyj8MMFTL9wHGLzbHLbzSL4mhP4WSFfU", - "sk": "EKDjkJSAi47kcsGhsaNV4QHkkrnj4xBnofTsXCxyfwUycR7euLVJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj85VvYEFZMDLpNJB58LNid5tEcMG5B4EFPxX4eofdPzKeNxkifo", - "sk": "EKDoEqGsSfsbkT2s7uUc6MW6itE6hfvaKRmVFracwbuKh2fKAzwf", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnp6SHY6CNR6yhHyrmHwmxybsh723DX3TSWRTzVdfzb9dnDceTDe", - "sk": "EKErmiiZqLsuvkoyqkfo6Rxwd9TVPx1vBvd961r4QxUo9ZLteVTU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrz8gkA2wjepdMG2SDWjmmEe4G8oDYJ3a9niaKHXbjLGDpHLoXDy", - "sk": "EKFR6Pq6DUXip9JUhDPtU4MYPLrkiwx1w26aU1WwCmeoz4iqaGP4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qicBYXGCqkofLcFvj6zKLXQLEXevFVr8WqCRpq6xgJQQDEwSuY2m", - "sk": "EKEisjQRqVCJmotLHvC2BMkLwg2ZFFg6vj9v64YnAtZ46GcfyiVq", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmXxAQ11bu4xNQEGnFRd88wjaQiRX4hcLAccKZQaxvz26fyJKKjW", - "sk": "EKF6mvETX86sHMxJxMFXeYSvf7UVHEDdcuVdzPvFX4FK4xQT3zAE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnssh9wEruDBJUacVR815kaioNAs6TjpLQRy2aSV6WLSWm1fPTMk", - "sk": "EKEgWqnKdyWxxMPqQ96UZromegUjqBnyBnN2Wc9sS73FF7JReNkw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiz7EZnE93PVCdKeJX35YKr6nyZsyC7bSHT7khtqgC6JnMUVr1ra", - "sk": "EKDqREVeRymQB8LZuEgNLCSW8LZ1hY9xKAaxid1KNhsozddHJJFY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnXxriKVrQdXLeDaa5HrJgr2W2J4aXo1hgfPPkiW8hGPFarq3uBa", - "sk": "EKFS9cKKXcCvfAyUYFLyWDngXBB4Agbqbn6W78pD2V2VKy6xaY1F", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrG6wdk4Fdu62SQeBjr5aGfD53zYViAxQEAj3nrU4fEwwWLqUXrn", - "sk": "EKEzCHcyTtHK8VLvHMkXZKmFzn86hnCfFHf6KPzBTuupDh9gQdEk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnPXuTVpkVS7f7HnRe1BZAmiXLVg8EWJYcuy2CUwSYEc5HjYTSUv", - "sk": "EKEzMv6SEkytmjdm51wcwVNLvMdHNkt2vYfz87KtEXf8g1LWSf52", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmiRrKTqRwMss7pms4bYHFMxxYua7j3DMoBeLS58oLhJkYYK9wgL", - "sk": "EKFLP4SPaGMbx1KUYSJReLTmdR8GrNyNy8LhV46HfMSX1qGSMBNu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq7unQYzuCW3rngTofx8a4ZZ21dXRdzfKpgXnLH1zgb14giuP3uL", - "sk": "EKFSVweC4dYfpqKe66VBxFdCa3FQsNh2piuJJ2MQge4yptLuxanT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmJhvPD9Gp9Dbicz11xJNU9W3LMEk775YQg4QSbCxYrsGvfVyL3i", - "sk": "EKEc2QwZApZZzoBjj4129QLVtkc2wLveafGTnzcpavmhthEnHRJX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoXy6WSgPDsfd39nNwyW81ZFQTZusobWntnGD2D91MSnGd7aRFeE", - "sk": "EKEShSdCWEBqGCsfw8TgU135JRpv1BT4apDyEPq4Bsqd6dcg5KKF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmjT7BhwHVsLUzRwwp4Po566NdEn4DdbKJ4CwYU7YSu74PL9s1Wc", - "sk": "EKEjQ2FovA7gRDyoAwBRiDd7CSbpZT87ioUbZFyoeHeMNeJ7ZxsR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjEahWK8QzwdSyarWVkm5Nm6HWps8kp1oQf7qvxy8jAjiADgdNG1", - "sk": "EKEz6eVRAR2BY4VK6rroC73gwbYGsRENNEi7DuzPYfSsDteA9ezJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkWBvJBaMgV8skiYS4J5Y87Z2iNY7ELYaLqRdAtoL54ZADuYKhCm", - "sk": "EKFEFMmCm5BX87YRxTPtvAbPNpfHQYvKqbpti5pn6pNfEx3cGtMW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrzL364eGh9Jxyj7dAi9hLmAtLsbCKCXFc3QHyqUdv3dFvfgbGhq", - "sk": "EKFADUBdaHhWP9Nk3NLLPAnqzcUZ1r1WwzXKJh6HaGYfPdEMZgXm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qimAUiRsDnyon3Ab54AENw3xx361ik5g529TR1BYXUPCi9Km94bf", - "sk": "EKDjjETCVA2jJWtPLfmPS1rHHjUFADVia4fSbPF8ddVuwrpsXxeC", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm78Y8LPXKtr5ejEzQb1f66epvCB3ZjLfNpSDgq1H9gA61DWVTwy", - "sk": "EKFMvbHphL5EtNJDqMebongVGbYuv9N3W65DPZ8TiY13aCtM1LdV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqguDCSMYRReGwpC1aE51HWZRZSH2vi5ZPkFbdUtssFtjT11xjyC", - "sk": "EKE4MpAPCgtvRzVp3tY7LaRwpW358pH64oVb8pTDGFeTMRxBkEbV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrh1jJiR3X1PcvLaiytSJ3YJKoYQWTmMBQDmGypU9CveCZ8xcEZo", - "sk": "EKFXKQKm7ZdeiEcHpcua7oKCbMkPRrsmgbcsBHk9cxWNiYJomCwy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkGEZHJQF81UTAKBGRGwd3V9ZqU6ZR4QhHVanBDRPUkj2w2D7P2C", - "sk": "EKFDpEgpRKriSjxyq2tvTjCab3u1n3ujTTwfYmZ92UgTkhJAGwav", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjiPMvSGCtbJcQKrqPfXx5YKuBZ3bTCQs5pkug85ndsFLatapDH6", - "sk": "EKDqNCRyVHe3ySqujF4xcZhQy26EJXQgm4FxiFP3cuKJKKMnkh2f", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnNddX24NNeaXX7xz8LWDGkGPj2GwuWtc6pJTNfTQNXf2bb3abgE", - "sk": "EKFdX7ejYwA2743ECZgbbZ5TffetnmfDxmeiGdRbLXqSMkgW1x7c", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkV6P8M6BSHPUxqsGHD2uLLXmFUBsv1WwNdEefZiKHyT8YuxQSV1", - "sk": "EKEaNhpDwzQJoUqggZc7x9KeV2inU58L6tXQzob9nfs5bFnqDWsK", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpEaoKMj6MsTgzy2TCHRAvv45opdFMGMsgxVvHkQrKoqVZdrGBoN", - "sk": "EKEMTsm4hrn2J4Gyzj6PbtKZE83SLfD1L5WwmgHqC6uPFXVBBpfd", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmXF8gPF6ccyQ6wruwiyZQfeH2wdCq9rVxsJMCuccHnku4xcdg1L", - "sk": "EKE6LF6YyRECCMu5VdfyUZKz6DMMGjuJXd9QoEiCN7SjqymbV9Zt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjPWmhxuishxLYbxKYaivM7zmBYZ8T4Rxb3xBsQUH38wS5DB5G6H", - "sk": "EKF6T65jwBcNfBQWJ2dSVi53LcSDkfA776g4cKEcWorYPfPXxwkj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn87ZmNzaZ2CJPau8C6mz7K79MQHmyKrg5hUDestcB8DhNho3uVG", - "sk": "EKFQPJEYxUVhCyXQ1PXje6nSJkGs4oabmVpNomKFbE9kN3VkL7n2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnhZ2mpyGzDSFRbg2sw3dXLAMuss8XjjFjcYQG53UAWhER22KkLE", - "sk": "EKFc6tXg22BjctQGV4N1u822PkjtZP1xyuGibXoKC2me9jnmFXHK", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqLw312pkoRKGLQ8vdfGJxrUUiXBTRq7hFeLHU2wLXVLiQ9UDvHx", - "sk": "EKDsqTFugvaKYFBNLfp55X5M9HUdtoq7RHDfdWPD9fEMNJmqTKLZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpKLAZnEHGsQNw784wW1X9NyxCW3KiQsahTYa6qWmmSx91VbQs5K", - "sk": "EKEgp9V1tqj2eEPhiqedisYjB4LCccpCvEASMChXaGaoR2FVJnhb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjSUcpa3sSsACKt5bcyURps6dZjpdNiH6sTLsLpC22xnZgd2moqe", - "sk": "EKFPQL6Q8jQ5GWDnKkeFRn2c4Yz4Ue7CpmkTf7Gw2eAgLoWH5xLP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpGtVhp3bta5WmrXQZLS2CUUQgYe2NHwLHHEdKnujBeamtVQYKRo", - "sk": "EKEEv9mexsdJMgmqbmHSTwMXDErF65xDBjEpfYVdZdkkP9si73Jz", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjsPRuRmwdmb2w7AaYVisAxPSWu5gghq9AUYmwRPMxbgioJtBaKv", - "sk": "EKEpCUh5RbFiuHoyZb4wurNhNiZASWt3hD7ceGJsrh9kgLwwZarU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnc3YyG9JeE8vwAQSbcVc6GZnVkpSipU7KiuGr2smBkr2sYnsdG8", - "sk": "EKDhdvndyXrAg6xSMQV1gtBqLJXJsjmXQsybFD4z2jpKGTpaHmus", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmyYLqTZeMCaXFhbFcaMxJbuPHfb5GTpVoiXKNSAfUDEXGbP19Re", - "sk": "EKFbKTgBtevArrTnfG31ujgZyN774FJZsmyscKSgFsnDAT7V9dgW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpovH76SeK876xRQwiGP1aV9pEeMRiCA5KksBC5tiure2GWyYTcb", - "sk": "EKEVQpvD7rLGoBvoKCCQgCRxqvwqehxrKSeG2t3YrLBRmSrzTuCx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqDfjbYPSGTjVjbGvYaVZCVqzXZSFRVokxe6Kaqg5HxCqn5MjtkL", - "sk": "EKEHF72UM9h2eXSEW3rF3Js5B4a7fKiQ3LVQFHLv2n92hyNHfyJv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj3nPotcdr4JNuy2DzwwZ2sddMDUjyAJGQrjepaSdd9zUCMvxHV6", - "sk": "EKENRz2URpVGMyN8MR5iNu4ZPLwMeZkPG4LSnGqB7BEzqkQx68PE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qktZfTHJnZx1UhVVnWTHZzE8JMG3Az7XeiJ8SoHxSeYNXcZEK7Lx", - "sk": "EKEG4fJKyZiNgy6bsvhvYg7rn5ZZC6jwyAJLeHUL5h5JZDrKucfV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkpKNGfRxAMX9TKGYFAgJr6ErFXbH6ftB9XQSuBRrYDjV6faF6Wy", - "sk": "EKDm9Fw6tsbaxeurdrMJLPU9icGqqLVYT7DM4KBffntgQ6iNpqGf", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkRHmEiUr12DR4cozRddE8ZyKooEZ8RpFsjguSobpjYRjGtjn5Hp", - "sk": "EKExBmvsg84HghWTPM9gPUuyfr5GTQoCdaUL14S4UASChcAsGpgv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrr1aGjDr4mRmTvaB3dYLyEhrMgLtcNffcHNELmbVXDG93YcdZx4", - "sk": "EKFM6UX4RTsCfXmSjdqUkLxVrHi5mDPmJBt9oh5gQ7KhJpw6t56E", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmvBtaZoJaeXagVLwfFdPPosiWNvbVmd58F3pXP8imUdBqYyFhpM", - "sk": "EKFS6hRWDTS8SSATUnjhRD9FBrxUCW4FpUoBTDkVi9BzLv9V2CSD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjmVFg1hnNoyztdbaVopNRfgnP4eAMLg7ZQWRgxe17iA9saPkyQW", - "sk": "EKEShjmcLknV4VGLfKBgjcJFWHVnYEqLqX145SSJWi9ATqqUUfy4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqySyA79hXqqxTTJXzGkCDj9p52Y3mr3qucYauXf6nQW9fYY2Twz", - "sk": "EKFVyCvySzihabErtEEKs5VYNNYQmGrQLgDdFxApFAfQ7yW9RXH1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo9eZktiNVp6CE2Jb4wSTX3H9MAUTABwjyvVAnhbEScsk545mjrA", - "sk": "EKFPA2wf1ciDCpGjyGXEHongHLfvB3YKq7k6b99C5sHnt6DKqNjt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrhQzg4dJ7ysnvj5A2DVvvenXB6xwP73Y4p5BsufRngxVh7FFjm5", - "sk": "EKFRVVaNPk5AJzh8r8qEp7GgYxRos34SUAQLYDDWgrHgRzB7Pgkv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoz6G8NBHDpEeadPrv7uD3QGXtZskFQmzx2GaiDa3DQihHkLTLzd", - "sk": "EKEn1zSSy7jMupX6CWQFsc7MArw5TucEZ8559TAa8Ac5H6KaQAKs", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpHp41xQxQSHutdzRvNvmJPJVok1Z4FphQS8wvjv8cXbyUxy8wwx", - "sk": "EKEaZBt5hG2e6ausENGjgeUQidgVuyoeeEbLQfZ5nL242Rj6CGsD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj9VMi7N3k1PYbyA5HRU9FgktBFTDBBdkRf3HPjECck1czmif4vq", - "sk": "EKFZ686rVheBUK46MCoT2ttiU8HwGg16AWLGVEaHDhTPThYWXwuZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrP1BbCowdJ26kGWKtqvWvMSsWuD5WA778mx4LSX68zWpM8yTrKX", - "sk": "EKFQbpLDxXDBUfFGX9ecj6vTqmMV8hU3HhCTzXMpm3SL6D8Bcuyj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpCiGAGmKrus9zFdJqdFmvtLWQNMy12HGrMSuToy7hDszBGjhHtm", - "sk": "EKECT9MvS2xTpBoTgL7dbBb1EJgkUjSbtL2JFzsQj6nYLbZDh3TS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrqcKKE3BSgwxTUTTNcjby38pk54nYnPZi8YfRc5hr11HkGoJZ1m", - "sk": "EKDqZnVtzXacFu7kbfm5tu3EhTJspsoX9D6V7wHe9PmLkKoT1sEJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn4BevbxMCZzbpgUNzrREteAgkMoiu3uhXJxF4FQEfnTLsw6j7wg", - "sk": "EKEcpenPmcdGt9VxoGeZ6jdTnm7vNgZmVv16nc4GYnzRC8QW4Fux", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpaX8EJecAtG5JM92fYfp61Ycfj7rXXHtkJZkqvEbH7qCbFc2ZKr", - "sk": "EKEW2kpNyFthdvDfDDpvpxPfkFpsibcWYquYvJtbqDpo6pydyfrJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnY5vPPKjQeAK8AdXgU4nHHeMX3RfbFAQwiBdsWdg83GGxVxgFcR", - "sk": "EKDukTVf1FGhnwRww3KRbhL99Nr1Q3xkkjGBWGBgYKSVQtJ13SDR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnRcV3HEFU8aqXnz6b8WGZ637XwQGG93xjGEm4wVteFH8HpDH1WZ", - "sk": "EKEXE8miCepeafawqRax1TtmAAFaZApEf1rupsySbCnUPfpDxv9b", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qopfxZfahKsVt87gfbZAzSNDkmZN3RMJTbvYv6wW4U3P7axo2roE", - "sk": "EKFaDSfMgwnmDJGoAmMVEQzK2y4fra2ePduL5PFDpfAUF7iNCJsH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpGEez2GeshaJqhkwsn5PnTYYEpUzz7L9WkcuTnT3Am9ittHaJt5", - "sk": "EKFUaLs7dKTiUckh8ib7BCUZr48m9QTtEj8FgswSBCNcWwXpuxds", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpv6eajETPZ5DoABALAa7gL94CuqQkNxJRBZXmz2qt2sZPsF1qsy", - "sk": "EKE3JX3aXRKA3VxPh4EYUkfYVf75Syoe62DErMmQyTjmmokoWAKn", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrpaEs2BYcbFLQADQSGNKj1WcTWyPGK5uDaJu8PGA7xvCayKMaMc", - "sk": "EKFL3mxe77FDTHfymiiXJwMexodWYJFo6Lm16nAhFYtWQa2MqHoA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn34ZGryrRgYmZPiCiQQPyobsNt26H6oZJG6HPm5haEqgPmnWzpZ", - "sk": "EKEx3cZESj3Sb8wvis7vXZrQbXtGt1ceaaPYpjjmP2tKqDc1QrE7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qooZ8LNHjBHnpiRcBpv3Rbp37B68XjpT1KS3PcMvDws83DwMDdrf", - "sk": "EKDvihAsnYC85tc1KKJqds9nwp4pYr5BPWKtBdLiiZ7xER1TTErX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjBELZ1fPJz7ryom8Y1ZCF52dzLrbP3w5aCAi7cozAy7DwEwAdSD", - "sk": "EKEXT2WcZHeu4HHJaJeRqog2pqvYTRchtrcCovpDC3eCAmnEoeoV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkK4G1V721CNZyzNNuwVQSNjABPkshd6QX6xqPNQ5rVuP7ZWaUBG", - "sk": "EKEgZ5SVmcbtbLpTJciguXYuL4hLzdLeR1Sd9A4e6bRTvgANF4Km", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpHTD8KkuHtCgwtC5NePn9sVdFKsDBqAJkGti264vHs4Wb5iKTyJ", - "sk": "EKEpTS7BPELGVknSgdEEG4YYR1UJMtDgLwYeNbkHtMxkwdwJTwyy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmDV9BDm4RKVR1u9EECWV3Y1XCdKhoF7N5Jw7D8PbJVq4qKbQU4U", - "sk": "EKEhaZv1bHYTMcvwqwfxdKJkti9QoDUvsM8BpUJxm3wk1YkdH9j8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoWzZ71dhBPnxxidYkSXcpzBB164ReZCUbkvMmd5CSFzQW7qsiyB", - "sk": "EKFYnguxckh3fWoo7jYuFFNBjWp7dz19N4gUAYfsNj1HcZ6g7u49", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrQx5kH6m5PN1srMiEkfsRjzKJRnBG5zTDbMLJH6YLg8q5Qu4YdP", - "sk": "EKDvsuL4J3PmmgeUEvD9CEPm6CDQhD3XCdmJgqFm3E2kFyxmE6eL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoizvfVGKmdtnowdJbBTVd1kzQwHnKaCNAUB1FexK3zG1SwSY74w", - "sk": "EKFccGVvtMsUygStAViZTU7y9vNEo6Liiwpn2Nss3b4GgtfcRx8f", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo8RktEGujBAGtHcX2ycrvxmxKRyDSpHAqAA88H5ctDqzT8s93WH", - "sk": "EKFXXiQpvrvAow7EsSuGfVArnByxZQqsNvgi55Gky5LXseVyU3Cy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpoooJ8E3S5FfozxgAkP54BBU2Jq1ScSR1Yz2skqvQvF5fnmu7Nb", - "sk": "EKF9tGnB3v5kXceiNH1H5QFjGXszg95fTiRkuXqUfFJKqAjuw91t", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrLhMx25kWzmZzdyMaqJcs7yhGfGz5ivqrFvsSf6YSrte7FgY9i1", - "sk": "EKDyQbXa444avLQt4az44KnGiZsGMJ8HhUzDck7pHu7phNfTwrfy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnYDEhwZuZJmBAiQW8Wp5VgeKFjfMvvdfhGZuAadfARwzJChPbhU", - "sk": "EKFHWnxiL94MqA6cXcA6fgEBKCaGXNVAN9Vz38Lmf9m9KzRzFiPc", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoknaiD4anx1zpnvzj6WXQszwYPofzJwQTg4KFuWduA8wACshjY1", - "sk": "EKEZBHHtLHvugaRMuTgEZmCCGxfiwCHUxzeAsM5m8yDbQeeEY21i", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoYPCgLstrJzKucLye74XChoxwYFrq1x7GswkGAE1EDKHMaXyqiw", - "sk": "EKFMdWsESBFssrhpHv32HLZwR1rcWAiKTTZLf5JePn19URcLPHFW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qksRVLD9ocE8JA4dNw5S8f6DkMWFoVkN3GzS82TntWpnP4TW83eV", - "sk": "EKEu85dP8QPyK8a3dEfca1Trx2uZkxmVynYQqWGCcjvXFUfXRuL7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qobex1gWb2H4TRHxRDWDZuJeJZCmLXPt6wU6TeiFRhPfFvyBcSVg", - "sk": "EKE1uhkJpSajuLwEtVv3RPSrwwsZJfZsbLKCkQH6r3Zh4mZSUvvW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrvFeS2TYpmR7aNPUBiTQwcokRKuxX71B7RiKmreUvm3sG6ozT16", - "sk": "EKE7hi4tVRP2tw1RbD7ETEp9WdjucTEnZNbfrV5edu3GQogve8fr", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoZZM92s14K9oJ2NkV9XFwfM9jmcUJFENAvrEtWgWY62WUAosj4P", - "sk": "EKENsF2jamS7sGV97HEgYdqVM5oE9HP27CASXTVL4vxxjYUiUCu5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmYJFjV2Ku29vTt6zJPQRqfrrKSKEaT2MarSNqEEbqhGScpHobFj", - "sk": "EKEif4zkUD1gcxyLZLScRps8iRCndVosnrUHVMDTa6oTKPGAzqAc", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjTSH3FdT5rKSEFZTmS7yqwf4gKP1aG5ptFKcyFEAk7GDAPy6ubs", - "sk": "EKDmLwmFwgMfrjKj2kEGZXbjeRmhtkvrFBSz5xixVh3cU3nDzMxp", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qorDgtNY58VCu5QbYJuFw3TyyLeQ9iQ6BzGeiPdiNg9vfeQCXk5c", - "sk": "EKFdq1rg4c49UL9WXc4cme4xrrQwJ9oxSBRRWzSjaFubF1s5foyQ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqJDJEBmj8S8mjdB1W4Qs6VYqBdDJxxdXzd6vUJr28Vr7D3JkXPD", - "sk": "EKFGAEjvDJ4MkQmcErDijdCC2CU53sZg1oFfpSFo69C43QcUcR66", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjYrY4y8V6fBS9Pnz4ereDHKPwxx1DTAGYJfcExR3hLrr4tnnwZJ", - "sk": "EKECZ92CfjL8njZKWvXcXv89vEZGSEoVoNaP66FsuGmUMMvMqVHd", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkanWtqCcAAZTSDegmt8QNiMNohGDznxY7dzrksLNipATh6cogFX", - "sk": "EKFYhK8xChThoHG8bJ5gq5iPMxP9k2F9R85Xu6PL16BNT1ouqYT8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqPQyk1N3H5CQiiWW1GF8zvck2GmDkaenKhnXHLtw7rHEkBh89Za", - "sk": "EKERiiGJFUvshHTCuhrY8peLeT2X9dPQ83j7VzjAdjtZUwJYCmHM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqKmJf7LPJF554F8Ra6fQRb2ku7DHf2dwvkGhvZw8Y5KkuYNGTXE", - "sk": "EKDyLPoeX5fzLRKZDMG7buTRAoBeRiMEF2SAHKNUhmCTGWAT9Gsj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qntY1efFGatZyuK2uquadv7BGixcp9LGtjGnpvXL6j58K1Nj8zDZ", - "sk": "EKESSVhiQWqfKtp5Ad5V618jp3BPuujzfX7KzWY6WJLEVU7QnWaT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnF1jzzw4bhSk9nk3SdghSuoQLuFwhBx6B1zHhAdaFd3D3WKC6wM", - "sk": "EKFTrXTN6GiaY6FhnH7T9ToWprEjVnLiefpHF1dposbmy93yFa84", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr5hnXn2vSSyktW2QM8YXwP127HyBHFW2FRBpw6aEvWg743xhQ1i", - "sk": "EKENBY8FJNC5Qe3nMYdpe8yGDRFJrNdcpMi8DvvTqEnwoiqk5u3A", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrgPXFPKGFS51sLwKzQuTHiXoxWHseghE1p5P5fhk38TcEinDfh3", - "sk": "EKEznjyKXQF5TjUi4GjEww5dNJSw5CVMDMQgyp8TTnFzhtTHkB1W", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrk6SQta47t9Rk2avDPZcMTrEpBQEFbHv2v5hMqLCbiuorHGzheX", - "sk": "EKFWdqJLuDyEpd79w6tEQ3dKuwgHRAXxkGhvAKXmk5hY86uZ8aXx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj94pxHZ3gJ9WSU2eeYNVQSLNPZVM5YUUBH3GcFLA6Y25c7nb7sW", - "sk": "EKE7WQsZEKzsMRdEZh7FQC7AKzNdpioERMjfxks5Urfy4vScFzFP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrnM7WaDNExBBJY7JQxzoJRErsWMMFRqBKi8MvpP4Nc5zvN7UvKw", - "sk": "EKEcnn7835tN5sCW8sHG4HqpXD6ZRMPSb66uK2W6DgCJPm9AQyao", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qngJdLv3dK2eCm11UHBty2RcFEPZHdqs8NCUGUsAzj3WFh2hGBtn", - "sk": "EKEuEJKixj3DAdsagxjQzmiUTQKNYDPxHuJBopqQKcpxmvsQsaXa", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnpkY4CoPbDnsdYP5WX8rYvQeTCgsgSjU3pwvHSR2ctPzif3ERix", - "sk": "EKEy7c13HhgEfnTYQiUDAD7X9TYpnErg1NZahnqrQ7MWgzyqkQvp", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn7xW9NYfJEGjNEcC4AQY8M2gQHmmZxUGADdAKMiGMuDuzqtMYn2", - "sk": "EKEWGCXnx24kmMR6ZFxQcuWeD7ekWbAxN2SvXFNJeYeASPTXd4ng", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpgyjLWmk7CriEA8GutbQECRhHWCg2pX8zi1dfuvHoEHPYBgKQ86", - "sk": "EKEXQB4SZYrvVq4aXfefNo5Avri6C5KS3GeVH5VXCKounCnWU9KM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiVGqcBL4CTHB6rQKwe3pXtVeSR7dZLvfBByjocxuegwVJBxRnfy", - "sk": "EKE8VB5eyP8fcYeJ6paADtPcEeMBuGqYYUr44xDZBtWftgqwbuMv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpSziZ9dur1FffJ64o19yu2iEz1XH2hfbwVYv5MQu6UzHaaDTy4P", - "sk": "EKET42TErDDajbxuX4oanZRWdXzhJW84sUAKyBKgLYfcp7hg1xVT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjjVxE4QRHD9zjkfRqxqy6bNfmYyuAWFnvska9ogbt6RomoGgQUK", - "sk": "EKF3zHssVoKb72P2k21T3zLCCzmEKBenLEpYrVtzs3wGt8XQkiPi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpw7qvXPLJt7gD9hYedT8ZZuNDfmxu9ep7kp3yjnWjrwsoW5Q9n1", - "sk": "EKFWSTq83sgBQfiBB4bWnfEoh7UigCVaRRt49ETcRHRTKNBbxcWx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjQ6PA187Jk3hXmLyFGreQH1Gn83JMzztKQHDNJUvNU1MTeABJA1", - "sk": "EKDoJSNzM1ZF5G4W7gcY8rFyik2qWpEdD1HFdECRbfHvmEY9rjhy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmwEZZKrAECyNPnxFa1G8GuR6ComerKkyWH8fWSc7nhzgEDeBvgA", - "sk": "EKE1Q9VoVLDj6WPn4wWHZKDPEcivExtEgi8P1k8mL8soynhaCpjN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiu6zJdpxpuvqRPzd8abM8u7f3WJ5SuVzQypHJ7jstGP93hoouFZ", - "sk": "EKEpboxfVaU71Z7gLcNWCxED2zY5c7eYKuL9e8BrDnro5EWYMfoN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrYf31JspZ79dojAeHWZsmXK7Q8c8BjqvZ9eiMvy9XhGu6QHeBvZ", - "sk": "EKFbps4cm3bsbtKVsUYt7ihhmApb7aPNFx8DJLrLJsyt3y56QLt4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk4zQVQQCXgAtzeyLkKTzCn4Yi3ePcNead868mJZ3UgAS9KmLKX5", - "sk": "EKDwEzLmfF4FTmyjkUEEv9uFZGemH1HntwXnMAxmiwngb2q1TQ5e", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrXybHHveHzMttSd2RGWHpz3fMRktHFaRnZgd7rewiqHyzSWmWLw", - "sk": "EKECgPC8mHZ9u7hVL7JjWKed2SpCLiVhUa8HAjurEWNKwgjTzVVY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr56dSjBmp6JpuYAdTnUY3gbRuzjuQiFkEnBM5WbyHD7W2pxuBwy", - "sk": "EKEKPudNMTmxhStBZ4JpZ7hvDfhAxMGoatFrH6VVTpsir2dmYxA8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiaUDjv6eeRrwVCy68WVb6W2cYe1Bev8vjcoKzr3QNkXFoxFutf5", - "sk": "EKEJ467CaN7s6jsQCVYSAzBdwDgNwmDM1f8vCP9xtzWyszAENwDR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjcdmLxMu2jecRktFo9spzPnGFRzAiUD6mGzs5X7RLhvR6PddqLu", - "sk": "EKFZiBkewmvosogqpoxQJ8exHdXTVMk3vmXLK89gjhP3UJhwBFoi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrSubSQA3TrhyySXNRzgJZqtg1CcJ29vxopoNfwYieea3SNU1oeB", - "sk": "EKE2x1sSebSQq6fcfMzf3xmscsXjBkecg4ks9YoyzfycVCUVN7Hw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkCuxLN4KEvs87DmmZbeMGp4mii3kv57zxJDwy5AEjQpZ7r9R51q", - "sk": "EKEQCxbj8heJTxJFey21tiYmQywPSHvdsxaABxbRGBGBt7MdvmUg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkwBahMMCHMna9QvkCVZZq1vgGzyv98V5ZyVBwhia3ZHLXamNYvd", - "sk": "EKEDFesEotyF4D9fbAeYuGSzGPyJGzhmqkg4rC5xx1PG2m22K31o", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmRoToQQnL5pjAAAEAuw95MtKAiTzuAB5WtkHLcXJGHRFosz7DTf", - "sk": "EKEVDaU7VFDHEDpg7DC4z9x91xwdsynTXRaHYH2koSPfH5b97FSg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp4Uc4Km1Fqtq7Pq6fLMizg5z3FY4fLRiyuReippbWLRwm15zM81", - "sk": "EKEkGddnGo47RnJ5ETbq8xMAQ2xGQysXxC7W8nmq6wkT7FSF2YU9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr84TZ53wa2njpbvvTFguEpWeceFUwpEwx6386Y417W6kGzHjHhr", - "sk": "EKFDKqG4ssZPLuRYBZi4bTTqzpRFuYQnNjDRRoMQLDuQ4sNGCCDr", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoDmPcovukEcFwAuRr5KV57eLcX2xw9CTsSZfYdTJJSAzQdgAbBo", - "sk": "EKF5pQ2WH96df6jVxigYDLVyg67AgRFejZuMM32jUx2AGsC5pm1v", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj3bokdjVHKkJUgKxvTkiVPg93F6zDCvPhmrkkx4SymGk1jjxzEh", - "sk": "EKDkuntEhXgAMRf4ScDPfXMSU42KKbfapGoPQMckjZtxPLdDtiTr", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmjJADnPfm4mdaSCAELm1xGqjGsw3PTtkYimtDprqKKTyoHcXsrX", - "sk": "EKEh3Vju4phNRiRuVxB6CTMxu5MYMqR2CD1usz95Fhozw7JMuZqt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmLED248DA7QC8eRneXT89GQjbQTXTNChUHeS2AWwnEWDphbLdkJ", - "sk": "EKDpFeuS2zjQnPEWuVdDHTu6njXrjHmBpqFnWu7EZ3JZYcMgjqpT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrsjfMZnuBPksWhB9XVcuEi3sFBegS8ByCZ9u6vLTmCE16G7rGaE", - "sk": "EKFEeHbkEmuSiXq2yp6qzJGkZxZ452zoBiNy1CdXfgn8SNaNRJd9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoeeicSu9XkYfgyRVoqP4yFLCbLozcd48bTW8vW9J3NEnVXwa8K2", - "sk": "EKExTpHsV2BNSLhJjEbS6o5ciaVeZ6QDiuXLRBqA4qtSe99gReVu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoM5pm1U8wyjkMVXaw3wA5CyYJTZZvCcjPUAXkFktHhWrJf1s64s", - "sk": "EKF4YSdhPAqEvqgNAQedyeQaHgxQ6Ju7fFe1Mwxq5o94Sqi5f5aj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqGNimwE1ydLWohx9eo4neGmS7j2hi9zgRve9fBP9oC5CECwzDH7", - "sk": "EKFajEV959w2R9bjgsUmnjZvHN4TKmm43vV7QD5sS4izxHmAqur4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qko9GQ1Q3rvV2bo2XCCiDnfX61RL5mSbUaCeY1SG92Vdxx88UnFv", - "sk": "EKFFahoHrwVX4EeCyjEDRP55LKERntcXwtymGNnLpfV2XegAVt4X", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoKA362C2Y1AkYG5bFtZT6t9b3QAPBr166xiBvp6aj8m6gmLwUec", - "sk": "EKE976KhFaRCkjnSpumdyby8TLpYF8WiEVf6aNS724VQveM6yjLW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpUhW6KrTsdy53dgBEJjixbv7EnsqLUKD3xK3VKPBeZGLrxxEz7G", - "sk": "EKExHBf2qm9TVBr8LB7BnAA3iaL5BuuXcvwfbp6Je7okSZAYwqHS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmm84QwAVYDF3nJGJMq4ocBjRJnqefWsxzmvjkb7ie1qvJVhzx4k", - "sk": "EKFMKtHb1Pr92VM9EjJAa3cCHo4ycKPvcqHRotPdbepo7XxCu7EC", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjFnNNvP5FXszNbY21mUbZhCSr8sRtu6uyz17HkUZaFLc3Ed8ddd", - "sk": "EKEQ38V9mVzS2pZsZzCG1GTMxCyRBjbLqvgDwLuk4XNt2KupzURH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqW7sQU4oh7AC7tYp5CXg5p2vCNMb1FYHG6TX2ZDPd63YRKoAAET", - "sk": "EKFVHu1Ly5UhuP7nZPCYLTLAtSVo74dNrm7aJyA2aH21Xxu7uDfP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm12cp4VGAyRz2anxX9iURnxqjTks7zvKHMh1aYKZZNeiahCfSvE", - "sk": "EKEqM13hNeyap8xpmio6CpUUvRMNn52QeqETvtGjyCn55tQPzqD6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiwXqD15bSGgEYUiLK7375t161uZZ851pa3GWEL93Yaena4YdAes", - "sk": "EKErms1TeG7TEALM49WqmtaU12jsJ31yeiStkkpJiBbqQL3Lcqmw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjJ9cNSyuw6kzSB3c9zzmw4G2sn4m1arhMmLZJTXZnfjo3SMVQcd", - "sk": "EKFVsjFbh3p2cbf42N3ffwPcZ6F3e6Azg3pbPtT4eTyv7wCthoqG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmpZ4qMjCbYg4pb2REF1uCmJoZaBWw5YgfV1bKdVDeT2x4an27fK", - "sk": "EKFDHM4Bze22TQEmUARBLeieYdKNtVYHRqzoqJH8Lne8qWETcton", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpFjxh9vFPmigzmBSrGepDjBz87UQH2bzFXNEZu64YCQzEaxmQWH", - "sk": "EKFCGUMxKzFsCkKYJc9ybmYEYYrqUYfg3ZwB9rPLovJj3cuDYMSx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqSkqGen15GhGCsumgV5BRGZ7KQbUvC2rva6eg9KdRTvTP7PssmN", - "sk": "EKEVfM2pBzKRgtznwddHo35KicUTo2BpcDXxqXqgfFN5EMbhMLLJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoea2LSkQ7uDhDLh1jVuquuMKcZsLZLSsjPFxTSG63UmeYxEsz1e", - "sk": "EKDkoaUVtBrvuutmHG5gBop93qPNeM4Yzd4yAFbxDjg5jqVYcfYw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoGjoJNJEwVmrrFqWgRtKwD9PNtLzzP931KsDQzwtqkaGiGiuahn", - "sk": "EKE97vUkq3yD54KrEj2JFDBDXWCpZb5DFfq21oJjAjsNPJRFpVsm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpuBHPRrMjbR8j5XMx4V6yin6ZtYxVnHxScWUf72HMwfTLTgBq2u", - "sk": "EKFAdzqavqbJ662WuYPSvAHC1AkBuqob2LntMuKq7qzcnDmj7rSi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjxAchHUse3dDUJyHfXZyvttBrc6Kk8VFzwijF6MmGTKLhjG22ch", - "sk": "EKEiqAPX8H9UKcxdnPeNvdrk21pkjVkqikDctJazc5MTxF8NdRpP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnYhQmWW6tZzRvjyoAvWPynf8AhG98J1objX8kwz5P9J5UJwdFmq", - "sk": "EKDo662yoHSqzdCJ4aBnJFYqvMTUmb511u4iqh9CboRV2zDYC763", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkDUXDazzX1CE4W7iicn775WqpnGNguaSfk1pAGZDosbLR9TSaaT", - "sk": "EKE3A5ccEiNfvimWyy7vuNgFp6u2ACtDsm24Gfsv4sDFkTsfBpiJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpPgSFNjsPwLeJaVzvDC72X85Z9rghdgUoHS7d8FndpRBMZmZVpW", - "sk": "EKDiW8vdWPUStRicKTzYA6ET2Uey77UFC2C9f7vC4WRyw4SBRBAF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqnoc6QBsZnJ5rRH3gnkHEPccJCV4H76vYz6iu2BXbwfFjWyEtuF", - "sk": "EKF82BRwEYFZWaaYLqsg8bjsbxjpN9r9vT182ACBmc2i9sGRpcp8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq4ZJd9idwMk4g3twaqM8C7yymJ96LwBE6CrJg3joLL9XtCTQbTm", - "sk": "EKEDDGERcb5xMNWyv2NRMVwC9FPMZk4dHwznGuuRpxVdygihBhj4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qomQKD9qQcrZveoNgcFdQ9NNAQddjjre7ceL6hiUR5vzRdw1dqce", - "sk": "EKFHiZ47WdVbsohTCMxnrN1qpG2nipd66i85UFHdFG4S6tVTbrWY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr8fWhBG5TzsAasGNpQnhj53iMWv6SFAaDq8ZnY2AWxUdrGr8njF", - "sk": "EKEpjwFXxaJhTXZQYoSDfqsqoghyPTsFEWe9JTJaVo7hMoyw81bv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjMMMS4Q3Fqm45ZrakE6mQd7UiMZhP3NotH73PFpnSRVuam4MzFm", - "sk": "EKEx5gL2hRJNQpjoYQiXTeTacnVhf1i6r73mv8hs8UF19W4msgqC", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrvjWsHqzfLUzC8RbUkvAJwo4nDXyjo6Tm63Vc1od1J39SMQ7Bnm", - "sk": "EKDxrQ7YUbN8zaSpZSJ2XpQsgDYoqLskQPt43M94B7smDiHT3SnG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiif89vAdsMQ1BYCZQn6kqvxww2Ht2qQBPuSCX9pvN6jqpuxTuFh", - "sk": "EKDwEkMiXWckUDDTdzJN5FGZLJ1miKBL3Gf9fxUtJvv7wTLemmja", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmiVWy5XYyukYJPpwUZidQJvWiKhV97GY9uF8fRcMZKVKJ9ksJ1h", - "sk": "EKDxmYiQHvreTpWddgQJpjAsoNQ6ASAK52LsNxG11LmHLxoxL8Xm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjNEmegw47aSnahj1rNzUzjuSiwZ9R9H7ar8ZtG3M9iNLuumL1Yn", - "sk": "EKFYvQ6E4Kudiz5ePaHoLNrV8VNxRu31ELZGviM6Q4QHEDftkLGV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrs54XSVtSrbVzZCb5MQWSpx2UBKex6wQ9JNvUcK5BTB8584ssiV", - "sk": "EKEE6d1m8KMGDBchXx4xu3LGYuzRYgEGXT97n8YAbmdD8ribGxDM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqDkQVzLi5jH3kqyaufQSApRrNuzdEkFYnR38WwB5w3grsXwvusM", - "sk": "EKEHC64L7xdxNsxgDBXzJtWUxtqAXpANPK7fmLuM5871RW22xNgt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmjJgazd43u2aZtFkpb39V5P9jF678NbUmnUs7TVU84hfbJkRApW", - "sk": "EKFVQ8LX98cA2isyDMT3zrk1ApeKLowLPanoH1CXFMiJKiFuhHSi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpLMmd9dg8jGVJXhfgkhRthqPqSqJk19tWrwoepm5zc1brdxYB8X", - "sk": "EKF4GyhBqNNwQLVP24gDYXWiWgV7Q7iigGMrsYsusT9dnXwmtofc", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpnka788gwFdBdHaNK7YC9k2iQPXUpsKsemAsCi97WMKjVQ1KKoG", - "sk": "EKEYP8SBhtZNPrQnjkaqbKaGHQL83X6PQSuqqwFeRGzni7PuZJDf", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqK9Vyh6xC4xsFSdtL4C9iQyWzFESw7BrDxWhscWrw4LdAxssxkz", - "sk": "EKEbBftqKVp3uTKSKfcYiWMjYhgEeYCSkeFQzJma5FR2czybyrDU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp7tP7r6MC3MJBJ12BWkvb3qwD9td66S5nXK7sw3ErkJie422DSU", - "sk": "EKEnVD7s9tbLmNoyfQweAMBgaobpWz42CppTtrFrj8eEth4ne5JH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjZngCBEjWSJtXiAWmT7MMcNLYxthMKuFr9twRUsBYdYvudyNzgq", - "sk": "EKFKEspHbXUswmtunXAdgbaDMNKtoNeC6vpsqLdo7svwyPdDfgRi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp6rYNtjnhNUHgypuaKUNi2gKQVkVJhQEGcTmnwQMCubqQrFFkAs", - "sk": "EKEuWEeuNTtCakCKkJEExZSovK8G3kjE54KDt1Qa31uQd8obr1EH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmJpWZg5BWMsyu8ydgCo28hixyu5JtvG7jQy6Lrmg8xe2dLWo6mn", - "sk": "EKEm5qGU2SSiouRERo48Hr7fbmfrFGi3v7EzfYwcBT1JsrFiirbt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkgsGxkBpT7jsRrkEQqJYQgCyiKihviCtFg3zkxbfAbjGudXxgDu", - "sk": "EKEfaiMtWSd6hC2oSdKZ8qHJYTgaDCSMWsu6safP11FcLuo5AkSd", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoFqT2vbBJVFr4eJsavHDmURpLGAwwfnhMLHszdiQqgE9nW9n4G2", - "sk": "EKEMMUcspKJyV2grtCHu3bHkYcqt5SHFdG3EGRi6JseWLRjRAJu4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qotiVEJ21g5yjRMrU4iLpsP6hebZG1a9m6TuDV3yx88q97z7auu6", - "sk": "EKF8R3uC9qNW7RwMMQEcz3qYcu8BChvXqBHMhUASk66BhbFJ2Dm9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoSd2NaFHdjyjLjx1Tb8S6DDhgncwDTzQqGKb1UiKocKhegYgELV", - "sk": "EKDiRPpNX1K393UX9nrGGEy18QtuawdGVS5nLMf5yzP8cBTxrMy8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnn2kmHudDr7dw3bRxx8XCNgD4znDygnqZQ3eynGX41diSboHJCw", - "sk": "EKEA9Xpt3C4Rz8UNtbbnBa4LR2nk9X7VCud4BzG3VW3SZpR3BJMS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrpaRxRgFRRPJZNQBENrkBw67PKJ4suh7x7GzNBMzKsrdhEmHqWY", - "sk": "EKEiR9K57Tpp8EDtV9nqbcoJPKz2rGh8kGSUuYdwTBagKTBTS4x7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmbwQ1rbi671tB1XtU9fuXwjWLqsG9WoVZwp3oN5APsVk1hTbqzB", - "sk": "EKEa27aG68gLrxGXSyEQCAxaPDwFYPR3ixXQDgi9zakgctyb7G6e", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoVGL8eXDJ6ZvMNqKt9UAVqkU229ttGAxXoPyWKDHz52uxwQqXPe", - "sk": "EKFb2k7yxnG7UU41Pcy4rgWqmXDRBRS5pDEH6NS3LFdhuT5cRpjx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp75KyT1QG7SuwjTRkvTwponVdB1GnjS8GSzhe4vXYDDJpRgVRAg", - "sk": "EKDpggKK8nZ3KtM3sDeSuWRBjkS5x68Re2XVEAk2qP27owuQDPUu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkSgcBUzwen6yxoSXdsbE3Sho57Zes3qkNxhivMfHmvfP6TfiMcz", - "sk": "EKEG2GPXQoFUHwe5LPVbPM6UhUyKx1BFUqANo3duXMW5VanA4Dbp", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmVhd4HcfoLkvXe9ZA9Yema7aVAz6Ce9rGTcQTPHNyitTaGpDEpS", - "sk": "EKFXHoBDvNbGV5R49kCosZpuSnxj13x8hvfoTLrKHi4K573CG9FC", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnembqAWu1zRbCrAyPmDTYAs41hbuMKQfahuhi5kxerQZAi4ouxM", - "sk": "EKEff6zbYAsWGryjhiPdsS6HJwkxCAaavEJ9aR7oJ97xYdAhQAkE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkuhti8XcMtPtASgSCdgQupidLZbiRsN1L2quPvBwDP1THeQbuau", - "sk": "EKDwifjEMyZZ2Gc4n4mAZf8vMopaDR3SoP663RwLCvwRcXAigQ9K", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpzjgHew1fCvXCL7oBf2Xi8wGoNnYEGiHdhQqcAHACZBXBvuSYZE", - "sk": "EKEHz5ZFGeSMY1Fgko1t65H3gc25KL4wrMrfaKxLVyh1TupqPgwo", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrCCeP8sWn1PU9ekzV3gbcxXYjPgYsFfSj2cMBVvVS711VMk8NJ9", - "sk": "EKEpp7WSfxH7qz7Cm5jgnaJPuPTSD7jQJaABynztuPGiaLa8uiqc", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjKHBCE8JKDHdAJEtxeQqCguCoRebEEwSgQcx414cq7zK2LmV8vt", - "sk": "EKDnxfBxjc8Y7VPE7YEM4fPAVmt9hfWA39sXVUsTAahporz1NbrS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm2oAcmS483zB61yteTv82o7sEbBFYrzG5QbWzCd3FtVAxgAPyJN", - "sk": "EKFbQ5uod2yoM2yJwpGh5EZ2ejFsKyTCfc3ReTKm3atmcBfG6hyz", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoGJZBcLR9Lu6oAR7HGvtK72vTXHG4xrWEoPoATjd6f3A5qEiioG", - "sk": "EKFUjrLfyaXstF3dJjrpgpW3GHtkcB96hkbg1vb1nmZahNGXFLiG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmH4fi2JE4kEFJrAoKFnUdW4ttdY3wBUqUFWFFURfmM6z64Suz5X", - "sk": "EKEHjThGmK9DcLvSbt2a85aAYgmhzPaEBWJZJSziAZXqkBBhuV2C", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkLqAaQmebQRgdothBjVfXNHZj2j76sQT1ffB74nBgtEiMKPMp9q", - "sk": "EKF1qrb4nbASRaSMxSTfjZ8HmzBcFicokqPmu3H562FuZwopiaCY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmBrPiukbHj4VnXdgMzjj2zpoQZeSBxZA6JDYMeeShApRAKaorto", - "sk": "EKFddjSTinWyXwNjvNZT9giRbQKfaniBJP8hRCCCXuKsp7p8zjyM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoLDNWChaicMRftx4LZ2XiBmopz69QL979xKJxCqoT5EFrXVgt8S", - "sk": "EKErGz881LGWygtKzX3zJzi5TcHXfJxBbKe4qgKJFtpJzNxLgSQX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo1cuU8Cna2Y27yGMrxVkf6bHoAuvNd53Tp5k5RDKR1B98qMFpVL", - "sk": "EKDr9D4FngW6rxPkqixucHG6rZGFcD4CJAwG33UnpJ9KTgHQtfWk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkMK3LK4on1sXvjn5oHJ6Hqgg9EgJrkC6tv7w4cop8ePq7g2SdC9", - "sk": "EKESw4777Y2vkKucXM7Z68DNGfanv72EbzgAPHCW8ocyqHwY9vSS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmENwmAGc2VnJ2jy3mtHCePX7Vn8P9nvWLys3oPrj6HLC3tsB3n9", - "sk": "EKEU5eN65vNrVUwLvFh1fREzxvu51uLYdmeGAKGr4AWd7KZ6N6uE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrFQg6ar93MSiK5wzRzcRR5HRxEkt8kDDbgo7VWtSVHwJ871zN7k", - "sk": "EKFQ4xvEkcffnD9DsfasBo6zgc1STWowy3Y8fDJKJeRUjkhDANAh", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoRiYR1enttaosKiqqTKUGCk2qE3ujcJjLRtXsDp2kojksapUjFZ", - "sk": "EKFHvbxVjhB9g1iHgwmnmioPrvk68XcwFoPuBWJizSCZdc6zjY1C", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnaBnXy5B4kmkhYwFUXWEaBBPTRxXoVWRAt3dsgE2aHNywQdfHYq", - "sk": "EKFP78yypmNoey43zqHHF87AHmEjqyFxTAE5aZgeAc7pGf68ibeB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrxehhkqoBsRuyo9HKG3LDzfTCFo3sWLm6yC9oQGvRJXVjFPTkiQ", - "sk": "EKE6pAdPSVkzdBWnUhNpA3mHPfGa1ct9YuXxduzYZohy4Cpmieky", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk9F8pnGvqmQ8S9io4k7jmqw4nEKkMUnNUieTzM39Ls9xRXR5jgM", - "sk": "EKExWtEDDV4Tnqn3MiB4UgTE3EqBPTqy9kVZtmaw89VUkdcUqfxP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpywZaQDxsXNLxrUzzUkdEyP6TrqiPt18vUJDwuW6YuppU7SqUv6", - "sk": "EKFJww7hc9u7L6RqSjTdSsLXCMHa3U57KntUu7B4AD4CoyVinZ7Y", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpNybWD6q9YeFR1W4hS6TK8FjPMPSVTsnd9HXQbfVbYyKr9JxpqG", - "sk": "EKDixgr6pK5MUd7TrcFJuUJeoFdwEPVtxZmrriFsGAsEmmXBM9xZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqEUdc21pNvpVEjQAGv5DJYNtS5wysav5wcE1aKwcG27HMkFDVRk", - "sk": "EKFQ1UbFT2S3WCGLZCrTUS3EPCYSPekLhKdBoVWfpY43ZCV9nm5q", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnW5mASBr8CMkvxeEgvM3HHSUH85fpcEjHD7AR6Ja2BQZ9YgqXDM", - "sk": "EKELfKaqoPPekfoVpwZgjZUWzbVdRYhhY42duW81bUWif4MBMyri", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm1xFzc23KPAiwsrqZYPtBtLGRJL1kGnDz8rqm8Sb6ikC266PbsN", - "sk": "EKF2iVJ8uXgZs3jsa7FqNXB93JNFCUtNepczFYgk3n4px4Y6E5D1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoG8QBu6MQgSetdZatHvHCY5V61uTwy2hRssMvDYDUUDZ7X4Y67Z", - "sk": "EKECMLzpfJzw17kvfoMV7WkQ1bkeXDaAS81CV6vykgGsW73qXYgP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk7bbdXhQpUKjNmP4NJDdAaS1m46SPRx4afnioSG68Z5Z35SLWXb", - "sk": "EKDvFyKJ9JLvgs8UaUeiLmeAZZ3HMV5pubHzJwY349E4V2nFn29V", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqpfdFdqCG7eKoncE1vW5CwWwUZoDYovw1k2BC93HZki3oVMf7W8", - "sk": "EKFBNnjVJ4d418qyqygMYY926uCoDkbEkjnw7ZkE4YWC9iyt3c7w", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnkHQRHecEMbkp1EnJhcC9keJpzUtWcZSvnpsrAMfSjeXzNBUm3u", - "sk": "EKEeEcY8fh7MVtEh4TU8LHJLi8E5DrHDdGcSnxvvqKXh1VpavKe4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnQpRXrQXUHovnB43rTHgzXRyZvueepdE1BN6kBYnPhnHfwcVSeR", - "sk": "EKFWTkiQoaGgfGe8gPySyi6J8kC7qSPrJ9Lqg4qzk6pEwvZj9Lux", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoeHZ4cX5zMJLwrno9SZgkztYvEiYjnUdZbEmJX2raftAosof47n", - "sk": "EKES4a4jVXmNH8VWQQo1aSFW5rR2vArKupZnpgKiZTmG5PNFGyts", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk1U7zntebT27dWfrfE7Ew3zF6uCXVcGUXcyyuRK9TyQGWr9S7Cj", - "sk": "EKF4xxvJPqRVR5baUYE9VTAnRYCwuD5jqxmv1fbSu6yZeHb9prdF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo8XZg4jvhM3xGjFcG3au131XmkyvP6Ba6SYayR7paheBifwxjEj", - "sk": "EKEe4K1x6kAYAGo3pH7esbrYMo2it1aLW4BC254EU2p8CnwXMwAH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qs2e66rejAxiJyaEHKXNECbe2vKotmb7EuryVfhtroGWC9VNhBzt", - "sk": "EKEXnkWgzxJmjbfGHhNkSWLnr4CSqjSatm7HAvn5yUYk7C8W4QYb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoNmPGXWWuUduQ2qxQ8K6jDYVf8Po2ERVy5CJTpKfjupEaFWFJWS", - "sk": "EKFW6z1htp7rVsNb1Hx4qdzRaC48XzHXQBCJ2wtJmKTgSq8RjYSW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmfGUoNbxmumzH3SiDYwrxjY62BvgnRNF1zUTnzsnBmG7u5S5nxz", - "sk": "EKEoJwK4XBAmtSMyC9hN8w3XpXajAr4hiZ6tF4tvFHTyYXYaoKxi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjaF6zHN3HXsfpj6AatcKnUFA3Ukym77a7WkbBV75fvrczVG8mR2", - "sk": "EKF3Z2sShjLPYHpc14hAqCwmzZEwZQASXy8J5jM5dvDzgRKLHULd", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnc2nNijdLWpSAchKA5hgJfrE7SynV723RUPTbVAoNXgwq3USJzE", - "sk": "EKFVruirYE6FqVSogQfHE9jpSBLqLSeDR3RD7QpghGuhcMTS33jU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqr2BPy6FoEqq23knSoFYJWPBcBuKekPUu3rEJgtw7nF2DgG3g83", - "sk": "EKFY4E5EnwMaQWUe39784LJA5XBEP35TjEV8HxW8TbFkv7Tgnb2k", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjavrS4wygEm9n2d5kQ5wGsRv1Zjxz8gL37hvgma4yHP3znPgvGQ", - "sk": "EKEiafRapip4FyPiPAdHZ9HzC39VAKLRcSbu38nJxPLReaEDPY3H", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjxQQGLNuhsuXR7ppbgym4DwG1YhbPXW3LC4boR2nNPEWYJQm1F3", - "sk": "EKE4dLVAkwgxUJjjVhDHVzFfMU9aCBXKS7bBBZX4EtYq3EhdUzwR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq9y8CR3PU51h4AE8n84Wer9kYDWZt4xboNg3Xjr9BzhkSdFRmZd", - "sk": "EKFP2qoZqgPPbYwbQzpaK96UqP9B2gc9HvRiJwycAqSW4j5S31ik", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn6p9B3VNxt5KbXfFHuLCaUuhCnjtj2nabPyJ4gsk9gc4ruKyvfJ", - "sk": "EKEJouzWYoYgFNhBWnsCghvdKcNV4JUVX2B3Gz9tiw6v6yqsMDLy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkDRk3k3HLyQrbC8dKaKUiZWeJyuE49QqTx26kbfX7PPPRzw3odb", - "sk": "EKEwsGt9T6zmtnGyuGL9vqqwhSaAj6VwFtDWnTojYSncAfDwJskH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpBbjqFZCtJ2fmrJSfq9EHX1PNZsBXdV8phT9s1KenYDAUbMHGrE", - "sk": "EKFZ2yCn7dSFEDhbikWR1gxYzUub4c3GubCf4L54vHKNayUHYG9a", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnkqDDPsxmoYjnMZvuPFRyAXgb6YjJFJPyfUydtLX5M7FKQGwXcF", - "sk": "EKEC1TacinssQxmLKnTBtF7fVrrKE1LtXJo4PwLBhgZv7nkYHKUe", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn93a4RMv37pekQ6mxGeaT8vhMHC9A95vYRLLQmJkWf9KqYwMP5F", - "sk": "EKEZEqh6fBWNBzUiY5NVmtBEAs2aJ92atnDHkNC8p1rYhZmdWJWi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkKzeFBakEMX1MuBdfzHj3BRc71uLsizP85KEA7jQxmcv6WYe5Uj", - "sk": "EKDn6ueWc7puwdKqKKBnSqf9rVcnDnBXKFPj11KbXXNqyAHJgP5f", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiXPa1AgoPMMsKphGqA6cQcmrKjqXmNpb7U5nzHKkLQL7yELB4vD", - "sk": "EKE8hAcrbF9R7oido3mgZms3NbHez8fMryDBjopkchTZ8no23WKW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkn1bZq3ZGvUHvcPCsi1ggrLUDJN8HEcwCZrEjMF7ZxBN1VfdXWF", - "sk": "EKFNGuNmS4MnPYfXrV6CnXAxz3vyinHpAyWvFVr5teyB7yVNb3Wf", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpveSjMF7TcvREgCDRoBF6aBo81igpherAvaxJQoZfC2ovAqBwyC", - "sk": "EKFSPduyGA5egnB5a7eERHyp94S7XbKQu9DaRXHjaWk9aLteRUt8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkLk3YknSAj5KwUqJ591jsk2Kzbk9iUnkuPps2q3tXZ2su6uKUie", - "sk": "EKEtc5JygQMJ9HzG96V3VEVMkWzT8LBByCcC7NBfRWNZ3KzbMcUt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiXiKgmpPDzVSAyMX39tPLEPQL72izvj56domsBE1J7iVtF5J3WH", - "sk": "EKEK5SFMrdpcN6GwVwc5at5pueKHyZipoNtq5ydD5XfWJs5MvonH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo4bN3XHV3tEJAUBATZXRnczF3ds7jAUfexJRwCgDoRjoaLFWpvj", - "sk": "EKEhFp9gRZcFWnA6gt7XzVYiaSs7Pq1cL7c8TK8wyDjECGdMQ7T2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj7LXGgEbfBiLEzhbuXu9QgmaYRCzpJWSnYyGUF7BPhYvSP3Tn7H", - "sk": "EKEipiZ53rj9CzWaKgg44p8y2V3JBtt9ZQgCTnDC527hoVzv514h", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqXgUcpxeQk9GCYSsPZeieafek6VBKaAaqrP3paftricPxKuipVB", - "sk": "EKFD6KE5ukzrEP7VrFs3MgD47r891P1QxMt621UT3RS5L6EACoDs", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnDhsqN2WXCE5YPkWADTbDV78hwSzB5AkzAUTeVBHrKxTC2foV67", - "sk": "EKE7r9Btz2proAsHTwuj8UULTgRBcn3NyZrSZRGSENboEkd2cVb7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qozn9qiSJjGcGZdKfdVNUmrNv73kjd5SSYhfL212fKicmiLMdgGE", - "sk": "EKDjk2gMDpRQJQ3BnFen91vLMi8aNy3zRnK4qhYQBBNyUGvApgQU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmbW5MES5FU52SKFh5ArPpgMsTr2EXwnDCSBfPaAvmrmuCQZQfjE", - "sk": "EKFAWqN6ttaisMBKf4p8ByS8H3Sp3yV8X8bWC6mW13N9YUCbbrZN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjTrr2MRp1b5ww4TPhSEWkMoqQJPrStskKysiXjZdqu3MzQRuQd7", - "sk": "EKFBFeV35Expi8czEULpAtsLmkHcaQbhT2wcbcCArkJd7HLAgLxF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrvPne4Uz6jnKwYF6gTYQ2S2M3HHFGLeHk6AGkeg34Wv9TjGuzgm", - "sk": "EKDyWKsXbUW5hy7JdYKgoRcBVvKCxHXqF5Gr9tF3C8pLA9kNiK21", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qno3Kz2novVmDuUGSwvDuX9CwQvoLwsh47yp63GRb3SEHnibGok1", - "sk": "EKFL5V3JzLSzPsqsbfoPHv8oggLn8USxzpytWh36SWChPWrUoKLF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnD3Y9whqDrA543T4dxT1CuLgySXJ4waqcJtqefmtpDWwRPmHPCp", - "sk": "EKEWXfvgsXhpX3Hh1vgHTD7g2r77E58WXdgRcCT7wHWkQKwVUgjF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqT4LNE1or8BxZCFRnTFnKUjutY7pigYjPG9W97jE29v1Kw9BBWd", - "sk": "EKFMtRB4FcDB7Gtf8ss39AQ1UpmxYGKC2DDP9pE3WLRfMYVs547S", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpRhSLqxASaZUAfr4gnzP5SfGUf2jNWRmJAb3R4nw3yxSuhuF7FV", - "sk": "EKE8cUR33fBFDAEYyrpjDhWjmR4bPkcbCUmghvypdBGX93rCL98M", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk7YTHwqaTyEHk6CG7pvJsH8fossxst2wdsnPP3fdeWraRo8hF3K", - "sk": "EKEgUUQQ8PeSmFdXXZWGFKPW9DdY9SFYcWHYBsvq1rf4STX1SnHW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qirWDeXVqvB6dMn4kureQ6B23KtAC6xabb2rJbGnBT3teTr1EXcs", - "sk": "EKEtec424rkHvTq8Y6ttKM8YRpkM37bGX4UKyYecRtPbpKYca4Ck", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoBnS9DjWKhxNATvCo6uoqanAs9dwt5drUmbdjqMZTHFQAWPy8Cu", - "sk": "EKErE2up2KsWiN9QCdvXexXBvWUCBooio9GGoHrSkZT3J1YkC7Lp", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjPd5KgkocXYeT5GfM6FdpFv2AdmhKhjx2MdBJQmYxu83wghh2uG", - "sk": "EKEsShTXhAW4STxjujH1tDghVVq1aALmy99AvjrztYSno8WdjYRL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpHx58aV7rHn61Z8nCfbyJQNAffdj8CwT7r74odK5iRKM1FGt9YV", - "sk": "EKDjYNm52PRu2KQqjmB3dEreo7urA5RXiNkQ6ZXG5chytYMrZTQ4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoxVRzeGrXnD5p198RHYwUv2G7PpVehouZj5JJcSD2jrLJJVzGWz", - "sk": "EKEmsM9TkUEbUu1jYmY3irxFh8HqztFqMx6DNMnp9gbPxUoAybpg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrLH8CA5KzwT3cPN75rHaW6WSoSi4cLYhfWxhdnjVfSqLeYM45ew", - "sk": "EKES9oXSEh6umJmqQLCcxMdFrUqgWn8q6Y5wJwhuGtf6yJFQs2Hz", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkFCGsYMiT3cCtZvA8jhjzdGy3zBppV9DRErJwbxpNuH7nMkGhQA", - "sk": "EKEaBtkm5p74LDPvzSBeLvg3aLFwXbwFv8fKCrdEfB6ukruiP9Ev", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr79YqxXETBkzrxMX9MFsUKkUARJYZcN1QUE4G6YEjWmBc7Jie5U", - "sk": "EKEafPGF5krUxK8VhmFnS9DBtFrpGdJRNxpcwUdjFVoPPRQXiUow", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm8rQNTEFAvwHdFLPAZtxZ6iyCKb1t3aMt3SktuSR6zGUcWuSu7D", - "sk": "EKE5yh1beQ4eo38oNDxLpQuxsTQ83ZD27y7MCjvDz9eH6wgpP2cV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjUpnHB3Fe63ZpptkEcHH6uzov6F8wb55xTNA2ztge86GUsGhsMs", - "sk": "EKE7mMVbm3Q9cERG8MyF1ZBZEPaPm2oMDLDb3vhS8xYjf57gTD4t", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmoF4teibcYnFxbbLyZR4kjQsyog8TRwBZ28Kj9paw5piq8rYiDX", - "sk": "EKDoWTshUv3wqbaZf617r7vvPcVdZXQEWB7tpRKTpmw4VQ2W5wyN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiaHvQeSTRuovMNnQq79huysvxrMxepoyNAHTEhEMzVgbaZodLsn", - "sk": "EKES6Qh1822k9TyqjQTNgWEu8zfqTfWiqT6NRa7nS1Lh2zqhgFVm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qorX3NXZRBJuFeRZV5Pz8kR9CDRx1VJpCLTNBDBWzzEqB1AyRqWn", - "sk": "EKDnx9ivJdfNMvXZGapB9ekA6LVRn14RGtA5bQPcdkW2vZqHLUAc", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkLTxCqQ8UgzW7SwcaZnwH748ToLavLTWyoAFHZg9P2sNC3NfmrA", - "sk": "EKEmG6czgnkjd9oEAfSuJx35JuJqiHhrjd62mL4ifeg5FB3Mede9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpL4Rgpi2Bx8QPg6aJnHbvWUMjBKdhxEFX1fRMgcj9AeSPQXNRxR", - "sk": "EKEfVySD1j2zE9tB9t8ckPwjGNCBgqZZxm9pehpQvn45UBxfctNw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpwAGs3Gy8vDWga4sCWwis5Yiv9s6puSvwZ4J6528hccPHyU3nEY", - "sk": "EKE7ER5zHo5LJjgedxJgUhCNBP9u1nxW5CtDstEXVGwqYoDc2fJo", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk1E65hSG1LXqnwVHz5aKp7u1kW1YG9fjP8KMR2YHQQ5y8jGBfYX", - "sk": "EKDskVCpsn29drVq2YUNQWofpTwMsRCmGfEbKipuE1iiiVAACx1w", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj9DX5NaSYr9gyaPbssaG5kYerqkdNic5hCpMngj7Ro8ik6pvadx", - "sk": "EKDuFQwBvQoXfdG6uNLhn5UUFDUxBangQQHD2V8USrEqVNkDsJqD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk7HyCBv2g1JgW459AjWjQr71s3QDkbhggEkzs1FvBV5cCkUjLPm", - "sk": "EKEqghCRUNqnXexMzQVX18zeinq9eYsoaeZXNYCzGbyFEZH9cMn5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjQnk8BhDWv71SGQDQEZPXZLWePx8BsjguqtRCHzTdjoA3X6JBoN", - "sk": "EKEpR32hs5Q6nJNQg5qH5AbyDCMb4PJJ3TX9eR1Q4kfhiqg1SsKp", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrUquZLavjVkF26VLhWJSWRb2Z1ZAatGZzSaQp6ToT7YWjT41ntS", - "sk": "EKF5BvVjXBvMWCQy6YtnE72tkxyn6ZQNn1rG9FTccmxu8pM2qmTq", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjBP4s8e1T7TvuMQ5MxDiVwgvd3Cxo41Wx6mEj6iAv6tJ5dyX9rM", - "sk": "EKFU5kUFzzGDpfrHHavu9hbaEZ3o879NyW3mhetJcMi24AL8deVP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkAenR6pceWB8TGTZ5XxLMa1DTmnndwyxnhxPr4Y5dT4ZtRPLmqA", - "sk": "EKEoXY2iT3GFwnzJQW3HHCCA9gBZSpq3GPomxW4m6SP5H6aFJsWJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrLMzH5spdPHuft4ZFTQU56eP6ECXrWrMRhitxvXLcp8DW34MfB5", - "sk": "EKDkeZZ3P7QvNsEgLuPRBapXetaL6Pp2VseREARFAvnx8nt8fnkJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnQVAK4Q9EwdFP9NM1qaGFA52Zr5JvEGv22NFJ2Efc6Re5x3CJLd", - "sk": "EKEtMfTZ2XnyxCqRkAGYbLKFuJDiHQjTK8KGoYmHuKuh2Kegzrto", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnvoGHSvGwRP5heUWxutQaSeeLqbvrUGQyj1DCz8qVofUKNQfuFq", - "sk": "EKFatsDTSCWJriT283TPtsKxxiB8NGoFgn5cUVq78c2LX7bJwucm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmDiq4516UsVeyL1ui9PunKFccWW8a79wQUeeLVGhYMiYqYAsHPx", - "sk": "EKF2zzBJ1qkaEgk4vTrPn9y8WVh89Eus7kLxuKXQkCwmqn4zdHLm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkRpFrvMJ4dSdfGQGEdV6tExsqGbKRc5oXorpsNnZ9diS92mzNT3", - "sk": "EKFWzRqqAT8WXAf6sfbQXdTVJgcdudmCuTnnJ7zihmq9vKhSEV5p", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqcBCxmd2mpnV8hsXjNZ1fucAxBgALo38hems1tejYY7myp5cmZJ", - "sk": "EKFGirQAzskGXNtEzycrF2U6rrWarsarVDWnv7UKbT5QfQSGRABy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqN6mGdPi6jrPKUphcyarJwHnkfXmmLo41EmxpvsYML4DSvykSbd", - "sk": "EKEiECPUhMHSUXkKX6WyPG5pLcSea1AudXn3FjZdBDGot22R2Pik", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjVDXY8DWwHV3GaaqVTnzpURaMH92CjfRmvMFtGhj5mmpjWvS9Fs", - "sk": "EKEkQYMA5RLJ7q49LbzZrNkbTDDmjemptoQ5zgNjeCHC7nCvj6rk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkMHfUpVziAU8tuUkvJaLkRn9dBgfXYXxLbpaRgrPbEqGtoaNo8a", - "sk": "EKDnozmTHRDgtVbn1vcu2eMa5Fgk6YxfvgzAAHrFMrfNt7JFTtUv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjDVDH7DuaLh5MGkU34npD24TKXRN3yWrFsAnHxAuEWnx9JZZypc", - "sk": "EKES7EozktfsScHSR9u7WFxbBdFmVX2fMzz9XorrS2XxJhjvSLfa", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrafbM2evHuA5NA7SfWdHEdzUXmgHPEJsQbm7LuMCDtWqJg6JkfN", - "sk": "EKEzsXZfxm6DRFpDBYpWbtYMdzC9NBHhMtPPCef4Xc5YTBekTkLy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmcqDazC54wbNJU7y5SrEbu1Aym5L9xNNERsQrvfjwpqbBsSwFEa", - "sk": "EKEKaCNm5yrqc2BfhRriQgxTHn5siCatcwog5Q154Q71denVhECi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkcvsSDEZ169LhqeeySe3ykzddpHBZQ8b1zFDv7rr2ESu4RK9AfV", - "sk": "EKFB2C92aws6tBGimSzhc64zpmbzPzMffx4iWU12yC4n8vtzscPe", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkubv1FP1wRYV9JhzyfNiqZdmazmJiZfVPRyqF4vJqBXxLDwjmuK", - "sk": "EKExYmAg3U49BCyHjamD2rK5LxHyzAhbsTFdoDxFJBgjntH4ERrC", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoaJvmJwbQMehL7hEN8bD7eouW8d2AUcwV47DGfdDAP5vZWXzp1f", - "sk": "EKEDUkXWwUcp1njaqgE3k6DjqVoY2khp7V9uMLVEyczBi8jKEjWJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnrJFGBE778AW1GD9B2NxhrrACp3DMQL8ti7mQ4mYvjcFMq6sPJ8", - "sk": "EKFPCWK2A9L2gwWUfSM3pDp7nJBdUMfcwnn8gRjD2bsHQMqaqK3b", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoz6M6JcmX2PgEMFsR8eMkvXaUAGEtAWGJTTjuv9wNjccuy8cvfF", - "sk": "EKFdtdeWbmU3Z4xev6WbFa8By4cbKuHTy2P2rbvemx3g7KtRv1Vw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnqMYeiASTkZAkgajC86ZrmiLHV6MRZP5DUMFWBs15CxXHetqvmR", - "sk": "EKDhkeT1U6MVSKZxRKn9tLStiZbfH8Facb1VL8gKHcBvqMygtL4v", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnWGBxiLAbsr8VzG34tvZ2cBfAnxLtE9kcRYK2XW8Gxputj3N9r2", - "sk": "EKEfvRUWAxQA5UkZmPrSVppR9MPSuWmkSvoxDn9yNoJPr9p8E32d", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkW8Wvrn2Q55kW6AKyA6Ph82Ys5d7pREfKuvRPovMux1btbn1LLc", - "sk": "EKE1p1e3nr6MvaDmSPjnhBcnFVVgFixnLvVmnm46kSWpMsKNWZWZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnLZhrYW4zeGLJ3avsyxcpRQqramaeRtYHEnP1pqiL3DsyDj7Mzz", - "sk": "EKF5A2SiUnpLx992HUREJLYMqEuooZiWcyDrrfCEB8sCNZEPrrMo", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmSfQ2XAUXQLUf4VLMpoZ7nw28StvXLf1vjSGJR1M8AqKjuAcUBC", - "sk": "EKFMiabZ4MCLysSjKA2Qc58EnrmiGMJ1qA7hus9av4zxqvBeJvgN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkMnqAdinaLSMcNxZ8YFYiuEaUhik5yKvS9FiFrEc2EiUJ9NpxsG", - "sk": "EKFDW6AyLTd1HK52efUTNjxPxvhYgakiFk3eR4ZHU8NYhnkc9zK5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo5EUHa6S2awh6RmEtdcDeTUed2bNR6WzBghsFmEKcGnU8bEjPt2", - "sk": "EKEtmw6G75eyxAH22dPagQ8w82jEDMvUdMNzKWHK1d9KwJJ3XwEF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qph9cokD1Y7JxH2cxSLeJdEQiRejjVgd1W4CTPaFrBNf8dWXYN3m", - "sk": "EKEnjR4xTshoDDm6CGAfL5yCtHARYLNjhNKkVus9j79xGq5fQDMc", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoV7wgDMZE3TQQ2n4Muyt1HovS8CU17AZpjviAmA1YLhqMvq7DaN", - "sk": "EKFPoMKmR8kmdCfXoX1rYhbu5oK5QKMFNv4MB965XXB7n8THyQRh", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnebVNvA4sFUzW4To9W6R7bFa2f2Up5s5P9LrNEqFSQnGaA52gNt", - "sk": "EKFAPujzwJU5jF8mVQ3GaPZ1jfFTSg1c893VNobvPbtMJpnyzw9a", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpFouq193rJoR2BPCrjeXocn5rpEk7XVfw7RXmc62CkHAKT3ffGE", - "sk": "EKFXteADzy8CsvNHyugDtowAcLkjQMxAe19vR1bjstjdQfhaxYxW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoFPrTYoUXFzNHAgTqkFRZoBMmofEmT3qMFf8TeLLZ2ksEuLLt4A", - "sk": "EKFYHVUAo6Y24VtbkYWX4b8rjMo3jtgnu7oHP7oiHMMqsGNN5T2Y", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnckMmJMBdD481fMvc1b8aAFSRbX6XJ6cKCzSYbMLGCRRWVGayTr", - "sk": "EKFbkiMWm6S6ToWu5EWbZyRp6Az5DbmsXkg7dzNLEvSGWL2mrGUA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnGVzCwtsqiqb1gDrZqohxLGyksBVV4D13Cy7e3Vpipmf1Vz1R7x", - "sk": "EKFUxfepj5DcCKjWytz1Jg35Rd19teUdju84GFTEP4Lvm51a8jTL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrGgTx9SzsidsVdGwExXxwpkw2aUX5xp945p6VHeF5Lx4Hpx2kYk", - "sk": "EKFBzyW9NY8PWcrfMF14uSG7NQWMLZ8Vbcjr6fYUny7hLqqEK3N9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrf2aVbv4DyfiB7C2WhPkHWL3GxztWd3Y2a13qayyGSTDC7M1zqR", - "sk": "EKFGksWZrewhZRux8u7cnEB1qWXfcsfrYtBwinYgFGhJV9FBeDNA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrndmDoSMeRr4nyLi4JoRgKoJgXtToo3rRfoWTiUpDpb8nvxc8C5", - "sk": "EKFH6LpwRddhHgnjzZfXN1mY4FkKSo1EJ1McyvkVQHWrwHyUvga6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmBU4HY8CZnprz5wD84LczvATAq1XKZsMQiiaU4faonkYKVZzH4f", - "sk": "EKEPaTK7Hf2eHPZmyoGAXZWAW7huKWDJ71v8fZ58BoPL3fnmRpn1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qimZ75mWyxv4zNKceKan8GpvUG5ZBmCJZGfe2v9dxgfahayGZNHA", - "sk": "EKF6qrb2tRGNF6beHQeb418Y12bSaToUBUkcCvz4ZHH2MgKq4YJ2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpZSXeyJwGhaTpSxwygW2D9axi5Eu5uUYcFdDXxMGGsui7gw4GGx", - "sk": "EKE1SntUjfRZCFDsA6y1jr8s5pUrxLPACP5z2ui7EEoSfKTLU7Lu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrHGbYS9JJvGiq4tTDgeVFezhSpggetAAx5hkNA2tDyhN4mhnQh4", - "sk": "EKEWKGGB9LdURrr7yB4PwPdi3faR73DakHS2J2iRxAc8QSCkRFCj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj75iwQkxXiN5e7WaaLkYaGSqYj13sKWkb54vQyMe55FjBVoSauQ", - "sk": "EKDmiYb2sqjBUnCPeP4BJ23sQafWXCf12pT7HdBRLgY3WvEGpopH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnjpHNvKLjTDjvcQb7QznbTUtq7wMn1SG9jnxDFiBfCQceQNPf2o", - "sk": "EKDtr4EeWLC5AibFWv3NeUV74aHEgPZvzvtemxhq2AFjLQWSdtm9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qinZjYgWWqw6FqdR435t7NkEgGJKi4AV5XgmievEDceLAaFGyq5W", - "sk": "EKFLchzaRZZ2npYDvrQfmz1s9RA77c1Df2ffcWDqqdfXx4q5xUzQ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrGf3NsULrYMVbuBHiePxM1x2rrowgXDPwHxqrEaCXSA4VGdCsgY", - "sk": "EKE9rVDveasYYyGZJYLg3Ez21JbDQp7Ai7qkWPJ5o6Lt6Q2vZday", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqE221SQkHCwxqeTy1mpW41mBmwTaR5s15sMRTQhRaEXn1yADW5Z", - "sk": "EKFaPbSUganFf8q4rNuBnuzLR6bKnEY5WaFqFKse9orEQe7d7kAm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qph5tt2zXLoigbgrdykQiFEkAbaNgM26B7XKhJFxyYQwsxa9FPei", - "sk": "EKDvdnXEjXrNfpUY2T39RfPakhkEg9ng7zipczvL881b11haaJFs", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjKpE3kU1EfqMtvUrLHe7gQpyed59C31omrgQijGHYVJf29UNmFr", - "sk": "EKF4G1sk7GDgYnHZBESSTWXyBdh5RyogFQwrHt2WzAqcA13boSpA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq9JM5xSsTM2mZdnV8WbieRyb9vWt98DTx3uU3PNVMmbHJeAbN3H", - "sk": "EKEBGUPQACnaxSNwdKsJH7mNAQ9tP73rVE9EHsyzQ1D75oqssvCZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpihahYZouLNsQJCzYMzvurMKvnWVwdMAFEjbaxKyp5tuirKgFnH", - "sk": "EKF9m8Y7uX9Y1zCfL8sPvHJAg9Rkxb8Jpc5CRrZ1pPVPbjBeJSqL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmsQDPUKy2WmK23FFxWiDGPXdqHbC6FVQ2JDGaNMse5uGu92VTB6", - "sk": "EKEHpusLhQfA9RtPfDovVKnwvNbTE3By6m2s2kuaXL4nFsNYM4gt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjY6MqKBdqfiwA4WJFAMCyXftnTQ1K6giqmiQcng8LL5hvd3Xv8u", - "sk": "EKFU5E5UZmsHwr3uKJfKbK36KAzqXvP1Aonj2VJmStJPShKD6CbX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiYxJC373N3cAVQ4kUEXkRXjar1wj8AUaciiKeTMkRNfCw5q8Dqn", - "sk": "EKDon7HzmUxAcDa9juRByMvZnATC2xgDmDby5s8WhD9kmPGVFUdy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjpmLHHCCuLQ22jZ9kuAFirBsMdRDxBXsCHhSdjT2KUkswLHf4Fm", - "sk": "EKDrv4KFMq7g6vDnkj2Ew4PhqhPp13npYSni3HbGmmtGfkTdx9gE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoDfm2aXj2A4uWg7VKSvveAPrzFy8iV7FrUgdge54RjysoCXZ57t", - "sk": "EKFB5ScEJ5RoDVA8K2AXMrNfLASHnj1o5QMLK7oFqKe6RfB81jce", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoijQJh9MhLj4PhzjpGx76p4WGRPaya5vGJqhBLBeQ58XPopdQLy", - "sk": "EKFLpuFJ6rqoQyGypD5vuHSMXjSwRndC2fK7Lyz4kJGp9h3xCgP3", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrBXu3uHC7dGwJmTqwEm5F2jZ3d2qFwe8i7SPKABJzR6QGCNn4X9", - "sk": "EKDjgg756zM5z3fZyCfRYYuswQGZTzfJUmjmiu1uqhARJAyrKU5N", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpTn2PQ3uzrczdB2pyBtZxAWRCuzmMhgCzJdZX4mLd1m7WVTTEo8", - "sk": "EKEVcYmeozBUAUj39QrcsGtmvprVhmdkS9FzNRqa33ATsQsTw13Y", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj9QAnsVux6Tg1Z7uPxmYLEQdRqETp9ySM4xySb7hqYmD4Y6juh8", - "sk": "EKEYQ2zepekue3prp8ZLJGcyNikirvh4b9g963wAv4BQppM5N9cV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qivf7FS9SxyT9ogVJEVBTYBAqYn8Px4PPHYUH2NMr8KC1J5XLyJt", - "sk": "EKERUZmgsy4mRuKpQPwtBx5wfP6cykwpVxmJGVJc9TtpVcG6FDYL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqz6sHZmMVYycmDLpKTRCNxrxwoNkDeKJ81XhrDJkMWT56fWY1dK", - "sk": "EKFdezXPhxRiCpsTS3iEpQa4zGfrTR7Gir4YCHfX7yDWSdhe87ds", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq7Uq2YspLAxK3zajF7BquqnuDgBsfQe4ZLtjUWxrZMnJUTtG5Gj", - "sk": "EKDjq3ZgD8soYrq4niRT7MnaEw7SK9KEBJv2Ci79JUquzALfw5FQ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrAsgeznCYmP6awDgtJV1wTpkjdgTKw3k6nLMMnChhFoJ2WaEe7o", - "sk": "EKELpHWQvP1GumaraAvZV3ny8ULxJJCono2qqoDEMW5Psk8XcPU2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrY9andssTiTwJPNP8PDtwkmvrarm1kvJRKzUDKQWfXoNJRMmxzu", - "sk": "EKFJYsoQUQDmm5H2C5R96YcGoBMCW85K2eiAJ4opiou9XLa6maKD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoieVGvjyewFce6ZQkVvewVVA5jxVKKA4k3KT3LvxaLTdE2QsEbW", - "sk": "EKF9eQ9quV6oxGzcna3frNBb6LP8JptZ7uYdscWPPLU34G6GvZKP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qofVJPwtGAUHjXjkPJWitNoPN12cfDik1qEx4bpFBJmJGX8pGkn3", - "sk": "EKEScZKBXSsRFQKz22RxNY7V56SFgsFNpun1sQJ698VNBAa8zhvM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp2buf9sPisPVBBG5NBPQdW2WB2F7FaHbiLh8H43xEBV1rtLhTS2", - "sk": "EKEzBYs3MPoLsaVeakQi97ZZV62ipQinBH8BuCeFLYTg3zfoZhSB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo7HWvgqd3PEbsd37EDP9QAUe97WZic1BSVLSEBf1Xe34txcT3Zk", - "sk": "EKEs52wpYsHmAsco6HHfUHQFRoGTjerwMb3TcFWskWm71oqPmUNo", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qosuAu7iDnE4A7bfyHzX3UCPiX3pQQLFEU1CcJmq847qLCeErFTT", - "sk": "EKFKDYWZHmyuLRGKy2LsRK5xR2qCsrmtc2CY6WLJgtABZn7TKTEW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnBRT4GzPseRGdFQ2n4by26rNwMoStcqdVzYEtBwE994qwa151FW", - "sk": "EKFZute6L8CTEP53YtNcxkCSwWogi7QCDWnuDSiRnbvExSy6QpvJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj4vMzsTs3CS9c8QouhFPCL1Dww5VKaGLCQPqBufwvTeJWdFxoGU", - "sk": "EKEesqDbybMbxAcGkNyQ9ju5rDemqCJKeTg1JoL7mB5Wuoc9G4z1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiq9TQ273sMJVrdQxf3wULtA85YwoHdzaNWpyYQiGNZRmfnW4di1", - "sk": "EKEXdQJrVsgiGAjHP1G9o8Hq5kDzGZCjb37VFAYvs19Nv3u8fRJ5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqttd3EKmar7eWJBB2mKSSQHirTXVwVVtnbwQxQB5WwqUssjMWRr", - "sk": "EKEE62gNuQxv1fpQTGQCf65iB2v3JcQpyAV62sm7b4SbvtRME362", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpUxdLWVDX7Rn4argbf7kCkrHDD96vsKSxK18M9hnzQHhRyUJc9e", - "sk": "EKFWSxdZADBTtDzcnSqZ2V19DmR8u9KAkBDoE5Dnckky3Sjre5gj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqYnyMLXwCNZKCHyjmJCHsH6tvyyVo4p1Ai3h73aLbKLTegHTMcq", - "sk": "EKFRXSNPyPh42aiS3amLyRyLDZuRY22njE9A4rZuP1Y72yQFSiUk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjSuB2FNE5kroLGxRiUR6kHVVZJrCAVbVTmg7i2Dut7cbREMq9qV", - "sk": "EKEvdxhwoLJ3YYTxTMR1MEgR5F49J6SEbcgNL8bRDR4nmtLRJE9Y", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoCw7vsfwrrqzBiES6APM3JBoUumRz3ySC6ivSGQeNQmEH9CRULS", - "sk": "EKF1qEkVdEQjdg3rTh25xuYbheDYbg5x9iQFsmB43yTA812RDe2F", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qniLEf9CUSWeYMC8VJNvqgTdbejqzCfZLxra4zgESKgsYXiBm5oH", - "sk": "EKFYCzGwfXrDTp6aQsNUyzJPfbFrmPRNb3Sx9GAfew9q8aZVHKUd", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn7eK976DQmjEX9VtgaPa5fdR2MdLur3oaycjAiak5JXNqpRVLMV", - "sk": "EKESi7fEEFJtvrm7EJq7WfvYGn91AwWc8JrdoNmyCBzqj8q8RYb1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoDKe5u7KoJqJVFSK3H5nvmV9dhcHpmyVuR4Ywdnh9Vrb5oKyHTS", - "sk": "EKFatnm7Yev65G719KtbUTQCc1fuN4LUodubQsZgp5arHDqbVQB1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrEJiAtkuo5mkKqbps9Mr3nVWMmojAqijgKvMymLZcbEqcgkphhq", - "sk": "EKDu5KQF3VjdqmgvrT2BdvWdn12LJoypgcWMRoxcpnfYRXKgucUg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoiYLgqr7jZkyjBbCaJD77J8vLPioioRofvxSqomL9wtH6LQFJ9A", - "sk": "EKFDeFiMtAbVwhAS5ecV3xmB7k4L3k523aBfYE5mKxYNnf6HfHgq", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkmqA6GXAz7ZEgsuzqxJu6Zw6LbCnZ2oZw3Kz9STBriiTskDysHu", - "sk": "EKFC275GoxXT8f8mHLiDa69ccEChr6F2hjsEiFm6tK2QXRkhDmP7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qprEGq9iZKWoYQ1reNiYQsk4aMGkF3aTzVRUdqLCHJkQv66UgGYT", - "sk": "EKE7opF1bUf3zWNfLeZaVYMMEnQ7wvRNqQ5QpVNbVjNHNh6f4eiH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqeN3TEtxoyRYvxE2aYPUMXc4i63SoWpcwoievCvnwNvR91REYww", - "sk": "EKEwTE84pcgjYDKdwiCwLkeYnduSVYJt3mTae5qtXNA16onSKKrC", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmRKcdXqHe1SxukHQtWUHyMX3NMGCkvHnHao3VsdoBMNRDkQq6na", - "sk": "EKEqXSy6iQPh6A4pMVnB17P2xejWFiWgvjr42VL3TQUynDkWMuGo", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiZRve89BEXNdvkSAvrEqQzvKE1kkpYNmDBLiUaNq841mDsPL6Xm", - "sk": "EKE46KdkkULcKRNSJ1Mn1msPEa25XGt48qTHM42w6ZKQGavdBLkn", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqyJGqxM7g48NDyz5jnU3CyGXpjCiDV2WJGo5EsitmsTEafpBWaC", - "sk": "EKDwQ7zLDBcK4jr5igyZidL7pbRqtHq4WGwGvP9WLEyyYp5EP7Kw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq9Nv8TAV7kFEbUKugm8cntRK5tzUTKhEsFX9jnTKQr8VpmdoZgS", - "sk": "EKFNsprpGXgP2WRyLjjMT7fKfSdjkC3oobrUYD2MQRWJmzi4GbJy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qje1FqagGS9GXG3X1fhNGJHhucHnvAoH3Tvhr3KyYw4T1oTSzraz", - "sk": "EKFALNR9rLLZQZKorb4Q3xjhLNJkKYCL2vV2tCwEFcJ3JEWE2JPp", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpT347NsFRgeyigFh9eSuzmRjvQkf6Hrn9HEAbRGSSYD7VQ4RD8u", - "sk": "EKEXtXQc3LMKXrTajSVAa7DFa3Tyvut8zQBkpCLVZzDmQoAqiJq7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqPB4wUmi1ZQgq7hzZyaUoofZ83hGjLLefvdQqaHw3s59uLYxpWs", - "sk": "EKF4XMbNEfnPs3DBKrt4aqonkok5LqqfNe9uFzvuRG7eeL7LZ5ih", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkHtAJ8Ht7hW8sVhNDVjsacySSj6Pq8upkaunX7hKHuQoYAvCVMn", - "sk": "EKFQH5xzES6r3ANtCTkSABwnsNWmKEzY954JVXK7u8wFHXEKkrz1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnEn87vPF9DznL8Bt5asJGL8JxaJPMRmHAQXTGbcSVvNAUWUS1LJ", - "sk": "EKEdFkGh8VHK8iqMpPy44a4Cdr8kvdjHpoi8xkKw3Nw8figpzg8P", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmx3NeXHXPQMb6ZyMswSYMJeJ5ucvEoVw6Z2vvDVXwPwQMdjuKCY", - "sk": "EKFEfx9KQEdtG7X4TpNg7tx6zD22fGZ3zN2CoRTKQPyJPmyBEptT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qntCVv9dhqRKQG15dowFJWD4ZjZiuAPLLWypPSYbWgufiUF6sSCL", - "sk": "EKFcemrEdC6M5JVP66RAeDXb94cCDETttCjudGeHDxUdDgQcVdxn", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnvzxbwSTQFNHzo4iQRsmET2A6XXPZQjeNaAjoZnC4xqoKARMk1p", - "sk": "EKEN8R5hjbC87ZkAt5TowjGwh8bt6xguDb3HuVepuasqGazLcNr4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnR6oM2wF89EDmjML2jBSLDheRhPBa9MDRDxmzjKL2dLgsx82Keq", - "sk": "EKE6fWt2Y9Vin8cmpLHT1R2fZ2rJpJpt2L4jjYeMzg3yrq19Hwzg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqwRipTHt9GBbkGPrSDbNC5fsfSqgiKyzLfQM9iYNDPLCjioRC8S", - "sk": "EKEXDguJ3vaKcoCpWq5bVnBh6zS2sYbsv5JtqsCV8XrToosq495T", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpAKXPM82hVCTxBRkhTNorVeenUtcxqtBJntDKpWUq82G4CwFCP4", - "sk": "EKF4gM7UHQyxo82LQQjSufdLxiwguo9iFcKnD56NEo9rSgssoHZR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qicy6Tf3UN8hpkAZV9ymS8LEdYs8tfcMWgKzzu39SA1dXjpkxUUT", - "sk": "EKEKfz3zGPf5uWM7VeGJSs5VrL65CmoLbMCAzvPWXr3eoHrMbxxw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkUmgx1sLZjptwKmVMpYAdLCP7QcjmPPNCbpLLcFuMgphXZA6cEU", - "sk": "EKFKFuTvbYZJpjRSzLboXmnGgou5qiaNoRFmB6uw2QVdo6xmnWJ9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qomyaRbinua346wnCJwuU36fBGKVmr4SFPCSFUxT8Drh14he584D", - "sk": "EKFHsQDVkNUstNpQKxoSDsAfG3UJs9n42HWuarpMzToXKayiKBCL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmkGSk4mz13irM9SpmoGdcXqecD4c9iriJVaQWbvruzMDZZ35mMK", - "sk": "EKDoxpgtZnPse2vYqeU9HXXT3XsTzKDUpJhgqHfn6p3TgY3wtH5M", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjqvWCnccXpLCHWoEMw1QoF6a5mDxEzFm35bRPajk7LLz8AEkquA", - "sk": "EKDheaLJdR3kxiYG4TiEeK2gKBxpx7au4KS3Me9tUrnB4GHk4d7c", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpCs9iw3hNzQ9zosN4eLsMjm5ASRvbNNro2pFCmRCxfyowWifGdp", - "sk": "EKFaDY4Wg37o72GzX3HbyxbnquA4ZKGc5HAa4VUsB2khyjcZ5NdX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiy8KpXoN9vimFkeBLwkTBdKEKk9pq9WSQABtyvZZ99WLVh9K9fC", - "sk": "EKEa8tsV43Tia6VGdLypZxR2Hkikq8tYczNS1UZGWqDNKe9frVbe", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qng2wRU22EbNsWewzue1gU6CXRqeDKrczCn8RKv1CkpTn4VDvkFk", - "sk": "EKDpgQV9NibaBopZxMiDqARmZCKHmgvov5aChHoGx64xVsbkp1CN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkaRaBgoHfwF5uLxcxVUQPxACCJfpQPNJrHtrtdB4pgRV7KeXSy2", - "sk": "EKDyBuo3Cn2jC77jham74fteHnmYP4uB2BfNbVfzWFgs1sVwHDsX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrnCkDAGsq8X8G5fedyCXfBAiiAr8mUHwzcQs7U9KrwjBWM5vkxT", - "sk": "EKF2Dp2EsN2G5WBPadzkxpVdKvmHBJkGyWiNMP1gXgz4Hxootu2v", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqyZuU5pR7wce355ReFG1spyoSeCUkqi9SUCm4u3twHCRCXWY7x6", - "sk": "EKFBEztUzriYqtYmxgsd2nfKBkWj17jFUvfUKup65JEibNARUZRJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqkS73TioFPXbtGc9UfN5VnveL7HyJqcBEF3DP29qnmgPZVXCyGf", - "sk": "EKETnk9weTMmXAProqKSHtUdiVmdfyj4GMmW1KhoeZpPZJMfbE8h", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm4cJBMAsA5MBUR7zoJgq3ZYAbnqtCknfYpCuFEdgYBtJF1L6kbz", - "sk": "EKF8JtrvmwnULRkWDrzrEmYa7fPSN1dj2YRbPqF2xkttejLfeV2m", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmvJeLBgB4xXjDDxE3bCcCaZdoSFdzeRhbkvQeGQD8CNd7U4a7BW", - "sk": "EKEx9R6UhXFDaDytmkssWfLeBcZ59JMxC9k2NdDRschfuQz4FfLQ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qne7yjLTqd3GwyscYExpyD984zxHQpKqVRqtnuRLJAsu7nQ8oYit", - "sk": "EKErfwst4xN666468Qg4oFeya2HB6hLLDk8ks5bmDx4ni5gFFJqz", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qooVCBTcYRaQBXZjkfHvtZEvqLFg4qtLoMLrMSbhvKkD1Fd3qCv7", - "sk": "EKFSTZ6uwD2Mtetii6o43dLJexK2qrvrX6HQsD9rnrzfXohGLCUb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qs22YfFTqWSeqtpcap1kzq1DUuxMV1fREswF7iJ8Z2koHJaJWUjg", - "sk": "EKEtqBckjWC1BAVN4WFUec44rJtvvQL73cy8FEb3n4gkqoDDzLT5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo6dUaQdo2wNarV8f8GrrrwT8dqRGJ7TTvemP8KuLzBm4jJGFmLr", - "sk": "EKEmLzZwXyLNjso5vt1mpDHAoFq67Wxq3Aa4TNk6ZApt5vQx67EF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqVNCDxtRG8tEngP5Ejy6SXhmaGNZQKVYt9EwhQKXVE5cBnPuGGi", - "sk": "EKE9F15qzsScuymhnfaCBYzmSrhv6Yrc4N476jiAgdvrLoPjTMMi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr6e36p5j6Zu1F2FJb1QxHdQHHcXaB5U5hWQsWW8NEEKf6Y9KwrH", - "sk": "EKEiWyLUP6UjZJH2ZUtcsWyspDQd8dqkr6b54G84QqGmJjL2Yuz2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj3zksNjSDshxqJrLQoRZx8cDFv2ZGCdKaE6y1QUWaxcb1JNPZoS", - "sk": "EKEdxNQGBq3hDmWFz6yWzFwt8cb9vuW6ZiHsV9ovASMjakX3Yvp5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqipBo4ifA3x9NUYspxW95cXdrhm5RRbyy8SFCrwNsHzp6CJK46p", - "sk": "EKDmdbR5p1jC3gvsN2wNCiXtHXq3BCQwnyKc9Abcjorvia8B7end", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmefkixtc9Rc6njkaVmfLQ8itjoPYeeVMUebsKtgyfsFgFqMRZkr", - "sk": "EKFUjqXMojgWw3uD6YnrfZZACKXi8L4sGD6Tjh11TywfPx1rJGP2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrRfAs3voDUVbt2x6vXqBF33p4JDqEYfS7mCck8i9cNv7YNXNACV", - "sk": "EKEPK2vmadaKSh8g8w3m6mYMmymBSiXSwJGrH4Pc65RsLMF96jxu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpXNv8kr5eBtSm42R1bm5xDu9iWKdm3htxzLGC2YJ73FJwbJ6KVE", - "sk": "EKESZRbBxmhAP783GTp19BVXuyjTHKhPTYTF9xeJCSisvK94vJzm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr6RwRu8upegX9VtgiKqZMouU9LYpqaBvT6TdpqTSrAZUNpWz7eq", - "sk": "EKFcf9Upgjw7g8yjvodfjSFY6wMJSgeLmCytqZxU2a6n7N4VpvU5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnokcnwfd5EpXFMgu41DqpfCx2Jnw9XWw2oEUVHJhjKiLJ7JeNWp", - "sk": "EKFFZHKMjwvj2gSy3MAUEaD8fdu6ck2YdmVfHtJGGg8o8EcCTS8e", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrB7pz7kXqPvpDiGScfUSHFpNhJwyuoaaXLfRhZERAkAGCsQwrTh", - "sk": "EKDoBjpMmR5tRUz1mgkpcgJwKMvj94p681Z9sZC6CDcHWXBPP79A", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpB6wBDMVXuxsjvXHz1oMJc3NVuycnyu2mnPuLKSZfg1Hxyk5o5t", - "sk": "EKEu22Euv8PenV1XxSPNECe9TjSbBWvQLwXEiZuwLEbqR2a1t9Lm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpEqemehBSmtTDfBqXZXpHXjpBmA5NGXYCrbKJTA6T5ajD554bJe", - "sk": "EKFUAhqcoVhpHNGekLQ3DyLRGUTzj2PhpW7ZsBX5Q9RP2zmsqxUU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp3BfDTHNCPr8UpDf1Ya8jVYGD75Ls8wrn3p39x1eYb8USs86c1H", - "sk": "EKEwqFRschjvaDjFeeN92nYboex2rnvjBR4ph7K5YHiPFpd9es5E", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoWYrBXE5B9MDQhRKmzkHu4UVJp8Ad7A3nSV2hThEF4tDmQL8WUm", - "sk": "EKDniw2VMjQUjY4n48iaFK6VpEeAVQH7vRG9v11XUYd4rn43CYXX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmvNePNTHsGdBbERSg8bdYDHKCxWN1HJkYy9uP5Ujcj6S7RbDz9V", - "sk": "EKFYxTLKFN3f8J6nfSWPMCZ23XmiH3E9XUNGF5vnHGifswfKw49L", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm3NwmbBozjjEPyatdsEzW32WuMrqtwZzujfygQqdyPrDjdPDiQ5", - "sk": "EKF4fbaiqnrp5RRmz7tDQwRmTFDw86jKCgjwrcPXVXiJi6ACX1my", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnwDYjTRoHczGA1bfVbFSA5fJaux4wtFWrrPGGgLGvmktxzENtmM", - "sk": "EKF1iijXQS87pQLG79XZtzFmA6Cxo1AZFUrXeWUhE6UrDj1Njvbv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq9usWvZzf3ZncxGMsmfpjFvhw6jWw5ZWf6dUYi87W4DqKDozEEC", - "sk": "EKFYAoPETnM6Z1jjAFg1bTGpFbjZ6aoXejoMDjcL9ymu9SMFE83S", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkY5UsGZyryJso22d9cDVSmeBApxFWc3UV9Kpv8eKgUf5FP2ehTo", - "sk": "EKFcKXZa2Rj8Qdhq99bBJxBEsY1sVdusfuVMXPTdvYbUWB1Za7WT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrPZLzUa8ZLh4T7V1SzrjSX9KfaZJJQr1DRcfkxZCRhCbVCbkMfU", - "sk": "EKFUAv2WG92GD7Pb9N2ZRMko3v11VFcaHSwzpRVJrNPYC3N6XdpX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkQFLr6WSF7TEek5LZyGZMVRqEKAug5Nns8jNLKY6spKNy3cZKMW", - "sk": "EKEBMNU6XLQCCZrAGwvxExgXtFjA4KLie4PihKVxprzHX5xarTgZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqDs8VmKb2Qxhus9ZAuyTj2xX2tSEA2mGeHWojP15Zbi758HSCR5", - "sk": "EKEFnGC4RaP7XNdu1DPQGpF7vvK3ME8oyNNFW8ef9Z9B57y5AhtN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmoZ28kr178sxb8N2NhY5kE2ApWFBE1AA1qM2Hqqma6T74nN8LbC", - "sk": "EKFReAjP1ayVfM9vcBdjtapCJWFmez8KeNypFGZ7J7QwUDUrgZDD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm1XEwoSBzzHkKrrsvMXCtEfnzUtwnwgzVfixkftvMzXxBRxnsV9", - "sk": "EKDkqEhyoi8FmNG6EjaQBU2yeyBEDf8J9MsTY2Q2pgJ2TQMSbuSJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjWSMcgKyCQRSLiZ3ERuCE5tgL7TiWHDbgQF8rte9pUgkd8PXwCq", - "sk": "EKDkooUVSFpzKthDYxVJJ16BvaqtwwQK34CBBMoCGfqdmnu5RTLh", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmXpaZ86HA7LgdqkvoWphghr2bfeyWXvtUk41PoEq38W7vquVrN7", - "sk": "EKFJUNg1KDb4sG7xWdtvKxqeATBx2n51S3gyaMHC8xLZ7bLXbiTk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjvUJG21zWYAaE6zBf9ftk3uo1vQfTp77SYJ1QWQW4zyrwsx74mx", - "sk": "EKEi7X2DJfCytvQ62TdsQiW3AeGiG9mumDithMTYMBTB3kgLkrvv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qioXFHzxtZEw6W7Vcqtsu6N9JKQb6r2FrAy4gcu5buX6swaNLrrn", - "sk": "EKF6D9cJaeG1tQFYF2fowpiX3VkuuNJ4cDJg2yG76hmSZL3We653", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjaHZTKxgWuR5zdPip2TfHhSWWaqFT29499ZUvDBhCaUHm3DTRDN", - "sk": "EKFETCouCZYQy2iE9D8haE5cKBc4mZf9CfJtCEdEytg1xVZoCMr4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqdVD9zM6G6NiP2EYMbYhz6DPLxARMy5DLSvUy3qzG1iRCuw5mR6", - "sk": "EKE3tWAso1j4xn2GszTqhdzUd3sPwN9ypetujbWtgNAHKwxDmy3E", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qipoPewQMTX2YZKo7MB2bodtK4V8RUyiUXuSabRoPU65zCHVLiry", - "sk": "EKF52P28Q2GPqixiDTNCi78RyLwU7LwFRyYArLoez8RnvbCYP3mj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq8ds1ThCeEjp49LtET325HdrMEBa1mH38ho8M7nxvU85DeUsUjf", - "sk": "EKDuCm8PUqETrsPDDAEqGt5wQKAmKkiADgM49dohpiu7GTXPodVC", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmxwmzdRZvZQPXiBdNRD1HnZWdPot7xMGPQDSg9LoRHfDmz12rgX", - "sk": "EKFCZmoWdR3zmeuNFExMQ6DXcxCkLV2eE47i7b5pVGYmS7SJDHPS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmwpDpVAXzhEehTUecqZgMfWH5r3V5g3gYzGGRxbB7Uf96y18ybM", - "sk": "EKEzWDxc11vjxZ2LLFi7xPceJox6G5X5F8kWMw9V5cZ2e5W77eXX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqYTh2FMywDLkadfuQijTdr6HGyARxH7CTgzjAGZtpGGbvRBHH9B", - "sk": "EKEHZ6ggu5e8LPWtQzX9qB28FmmWRiekz9gvMDcgg7z5Lx58VA6C", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjcQ39ZqSpTJsJEkbVoosuny1QJeAkN72Lg99ZSwrF997UDDCD7h", - "sk": "EKFZ36wQX3zKLTAHDbGRUD4E8BtWAtTb5TkNn4mgMKMe53179ijA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qowDerJB8zgBAWuyhP2NCXWGR81BtXZG49L9wjZwJ7PeG7hfU8kj", - "sk": "EKEdWGna9Ye7pR4bhzZDkwcJvwAhoocQVLAqFpx8jqsLiiwgymqn", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkciop8ziSv8iyw4NxJcfL7aoNyMeEePC6qhaee9Bas1jQd88zYK", - "sk": "EKExEpFhhxSxxFzjVmigR9rayCS7ggrQjmExDrWyawoMY9oxtFfZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn2rDXdHivELRUWbMqfvKfqBoFX5bKmJRRciVt87wn9sPsDDLbiN", - "sk": "EKEHojSJgTgVeCaYwdZ3PvErKgk4Rdt51c2BZ6Swt6kTEpN9mWTP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmmRkpdAZ1vVz9UsKqq27mhjWfoTUt1TvajG8gvwRt67wwJKxw5Z", - "sk": "EKFCzMjKDZPpmLu6Pdt5pM966uw3PH2yWZJcsi8EGuurzQfciz8h", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo5FDis1sT7zQHLabCQjZ3NVLY31gu3eL6C4PNXFhNW5p4eVoxwi", - "sk": "EKETVkC4SeCLgBwLsW4H4RjzsEbzh8p7eEgohKnzAii9Ufz8FC1F", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqUffSLc74NHvMsetv6RKFETvQgXdB7CasorAPEQoQNaLVzo422S", - "sk": "EKF9bzgNBd1wrWGA4dCN6urRRBP4gKn2xn8TpjCTFAyZDMZDCT7y", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoQ6iQm3EVwa3guoCbmXfH617VuoiZLUAfVAMGTT3ekLR3miAaM9", - "sk": "EKFFyZzFeYLSCCuNzMPbWS7jw5CFFRm6FnzQwFDXNzdUJTqMAAJu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjysNNpQtPPPqeVSqmpUxFoFXfob1GmbqBguuSGiS4cvJM24r7kg", - "sk": "EKDugta3H1yizMvPrV1EwRJC3nX9E11dh6evNMJpUye8euku7Pse", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qimNqdiftrUBEhfhtRinB7FB3EyjvGm1c9ftysSR3NY8etM397df", - "sk": "EKEZZnKBCjfu9qfWYo6iUWJsPm274r9wB8yBiNoAzyVo2zDK7f67", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjdPdYUefYiTCYUa3ybiyAbsKTzhDqam1MoZTtDS1Hm8R8F919FQ", - "sk": "EKFVgG6vrKHrofqjEXEeqghAEGtymJrc2roFZSrVqs57QkWCrPD5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr1vAkk2YuKn8n4CQWBR4gonz3Fi9FvXcPcjDzyZF9c4D9u3RPFq", - "sk": "EKEXBzMtN59vXofx9advfG3oAy4h9dvLYM8w6nTp9y3VPHewnM31", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qs2bfr4aC38qxwvRfzJx9Z7RCo8eSnrNyfkSZR5XjW7i6qKFZm1H", - "sk": "EKEDZCKKjZLzNiakrTtMDxekcDhCJnPp34h1Jx2iSmXKuK64DATk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn78insXerj1AtrueoFx3RFkpqVeksvSN1FHsi9cmPXLkydejqWC", - "sk": "EKE98AwvfAPQHtZTKpi1Dj6mbAcwAUWb2kHZjrC1UCBhTXvZwrwS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo6t4ob4NuXeNK36R5TcUk4rBcQNkPqRxFC2GCz1jnTN74YqVHYp", - "sk": "EKFBjZtA9c4HdCY4hz53jXSP6pH8opRQcQ3zKsL8FmPWk7Nc5LDi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr4nVkGCTDJexTDTsThVeUdP1gLEks88jtFjw4J768JGPRyf4biU", - "sk": "EKFZq2X8eYKYxwKKPNxVW3Z7iG3Be2zB3qMsU1dUb7Tc6YwNUJ6q", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qidqYG92SZmWEjRLrUD74uAc8vH3VLuTTtH5DSwCL4HfbKBnWXLi", - "sk": "EKDwvar4XPFka3ybZrvRiKpQVqRb8HvkFtZPnziVpeUL3j7MV9r6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrbZZmgKkMXYsR544b9MCHgoUNoN3M9pVwkWAKCijPku8hQJHScu", - "sk": "EKFRuddR4xnShXyikM6Z3eFE6mt4mKV9HeoaeGsrr1eBxL2U5KBx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk4QKF8BfTpo89KhbvecJqR7Wjs9GwoD4w7TmpzgF8Dd9ofGr1Bw", - "sk": "EKEFc9YsGCdTXgtiiT6cw8QDNH8ifbHmSSDtyPEfLpWnaHsZiRzM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkvpWHVUJwfgpW7qQ3LNzNs6o5wn9P3id9h1cBnm9NFe7UYW7MJV", - "sk": "EKDw92sPXtpFxmcGpBdBeE39CiyHas6Zuw8nwdwVWGb9jqyBUDAR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk5RRw4fh7zrKhRUcRC3FLB3d5DaLP8yBLvKG9YpNjQebKvaAvVo", - "sk": "EKDtq9XFPFZ4SGsbG5QYEp96tR8jSCrY91aCgd8SrgFYoF4QTtCj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpSvhhjkyzRCB8oCYjvosSjNUMMgCQvHg5nM8SioSwkh7FP6dHg9", - "sk": "EKFKfFXrfUhrhLaAqChpd5BB4jJ9NqURpX5KoVBuG2iDNG9ZBEKm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmrrXSVRRbYtppQ5M2ES4bm8WP6FNzji686mFE5DvfDmVUi16wMV", - "sk": "EKEbLXrP5vXrcgWUFnYv9AdAx7nnAjHvxubNC8vq6cn5yiL2ubpJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp5bqenoWgJvSt7mUtHXHcgo2t4wi1YkbWSzVq5G1wbUJWVt8v1V", - "sk": "EKEKdop4swgN79nA7SrKymQMEkR3khVfJ3gmeuA47kszbuhXHmGg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmYpo4gc5Mw17xHjnTJrVvHgbMGG8LFvtRGTN6VquKsakKMABjnM", - "sk": "EKDvYYmfFD5JtTgNgBUE62pRjp8m9qNZNjLeMYxcKHxzhzz1gT4w", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoafMCfAbsUi2vW3vSDU3ppLzfrmwJKgnst5QKx9MXoqwAXzu4Md", - "sk": "EKEnysWJVyXzVBD838rtqMdpHg1QBDiVg3YB4Eom2CYe6yepcoo4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoUy3Ur7UAotvdsopTKDycj29ik6HqbrbEd5QG9cARSRNYoHBRXu", - "sk": "EKE1HRXRN8mTpCnw53G3RK298XBGHEc4GCjLVvxgkwQ8grCr87gz", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoyuSsdGptwP9vg39PkEcRu8Nor1z4fFFtBiLEzWm3m1CGoXdEWa", - "sk": "EKEySXYbLpWyf4uZyreQE3LGi7nX9H2dZpDuQThtYPnkwbwE3GZJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qihgYYhZznQbXuX14H5oVuRgTCzo3SQzH6tFAvh5rm2jKNWW5bct", - "sk": "EKDofgcifDw3LuSAs3hucDS1gJq3Ap397CVqqQLEaqnpsomun9dB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnidBdrU7FT8ddJgUwwZd5wjkd6bMe6QAVm4PttZzd35vyrisRek", - "sk": "EKEaxQuuDbbNqJgvpZVvXU19CntUQ6vyxAMf1MwabTyprYVodmqM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmjnR9z8Sp72k3FtqQ4HWXarMehADanWcDDc5BTkaYm3sLNFccPZ", - "sk": "EKEvBBdoZB9GEs6W6FL1Sw14n6WDdESLg1R4eBBcu8UutQ8kUgk8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qruiKPahnKjXkF6ZGkxBeeGh2BaZ5US2nyLmEhfWzhY8SiiRWLcN", - "sk": "EKDia1hvct4QGTpyvEvvBiNjgDgXHo7yxv4d5YpMANofvoy8831L", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrUnN7Kn7AVLwpREukTJ7Xvi6AbS1ZyoJ6Pwoiv3pEGGbckPyiVz", - "sk": "EKERXqTo2vush5JhUxYhZP8wZKeF72Hck1HZGVee1gDvzo4XTx6Y", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqeQuSZEnbo3snfLaXNUm3yJv2sR7aonAnQazAda3iVTmadCY1db", - "sk": "EKFHTvMZQKTApyLnKaamhXomSMgd99PTUzJCK5mvjSoYTyL4tevF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qimSL1n9WJ49t9JhMrbJUMus72LdFoUnCPByrwb2kyqJQRhjgYAw", - "sk": "EKF7CKhNHukgz5gY18soC8ZUvFGya1PdgFsyLe53vRbvcgAUVftP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqqubc1naKKeuYnPqgRgAQkHpZQcpMgZTRLsVgoPRJf9v3vL886C", - "sk": "EKFKvZSRZPnL3cQtTCTtAkKfaQFdg9EeAyWHELBZntyma8VicwHk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnYswD6VsdymC4f48hWEATUKR6P3TCzC8vRAi3oZ2z2SPfBfiT4a", - "sk": "EKEA8v7jmFCmpD7kn9QnHmrtMMgXa6kdr4srSjtytGJcvR3ErZXJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrNDXLpg23iHExq2STniW9qxtMAAHDWTP62Wcc8SW8MpDeWse7gR", - "sk": "EKFNv6zNUAgz4GUSxMobeRsYUBstbsZ18zEfifZafenoDppU7LrS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnTCwiQVcXYxmtmQLoH51SBnZdZPMdNyAyhAqZXQfC9JqQpzPFw4", - "sk": "EKEHv9D1moEeYN6Tyf1STEeboMKAJVgQcVqvnkSQvCuSJCvpp2Zj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqUutto95wbcghiQoNJbv886U1HFueTwRWcRr7UveLeAM82uabta", - "sk": "EKEyFYEh5fTwqZkQ8MNsvwefrvZM9Qsx95xvaW16JjLhhbQLPCB1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq7MHvychjCkMBHkmrEkBQaSvMSVUAuZMRrFZo1KPW3Kio9Xi3pk", - "sk": "EKF2qTScjAGDZSGiWJ3hnzaLtXfv9AUHRCnuS73k9VL6MygYFH3u", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoybKvz3tYbT2UKnnmhjrw7ggEU47x2napDauasUCR5xnts36iRe", - "sk": "EKEe2UPrzxx7pggjgAAozzaQReakfAewtVt8tyJMbwuiHAgLfgi5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrfqmc9boay9p3tcNEbE6B6qsp8aFw4sVQVgUyci8fE4sVCSidKk", - "sk": "EKEKytNFMwNGY9sBPBkwUxHY3XqFNSjn36edmknNSZxXoXJFaHb5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmmbVjL1DFoXd92eEKyCFCPk6nkcuShQxcJFB3xDgC1a1yZv4YQc", - "sk": "EKF3kzCa3d45JKGBGEyQWs97rbzWSzSgEF5udHXuLsoHmGDckiUm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj15WW4Y6HDMpSGovLWC2seoSgoRdqLjx6J3bzaQ2cJvt6CBbt1m", - "sk": "EKF3ViwQytrB6t5o18XBvDkNiWdc1xGsZCJJqo4e7nVKX1vzkdf1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoHuRgQYGqLaNdsHus1rgEQudfLA3ftH2HWHSBq9U1yVyaHL7497", - "sk": "EKFdsyfyHqiY1ULYmfkkAB8SRvayMykSByH7y4FkmFBbBNqrXTUY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmFzqfFyg4V3osymv1N2VXbDWpnu6EwfAv88Fpfvf2fJR6M37h9v", - "sk": "EKFbntqBFyHokKgD6sfKqD12ZQAhwANmff8oZjFR7mUyNqYBEomN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp66RzFSLyaw1wSfhFr7ymnnzTfmpAMrsek3z8ZefV5dRbSFtDXL", - "sk": "EKEZfH1xnLMENinJdfNpGR4UrV8brAf5aouT5NHjYebUJ9ZCrMe3", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrKUdJMA3vfHUSqWHgvohJSJzQAWMDHE43r2h9AteiYnhWh1hzXS", - "sk": "EKFYFBivoaLyMMV79ur4VZJVV53XEp7Ksd8FLcmibqwL5AfkANKA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkjALKMEWNtdHYzaSw93hHS25KfidLpSMYYSx9vNKVSyFpGbp5Mz", - "sk": "EKDo3K49jWWZBaKG8ZdnsJBwBHR36cpQrbTuY1CsJLrx8qRRxuYs", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjuPtAPyetmd4zmLVuEnt3LUZCkFgipC9uTudvpEL6cgqrzx7U1C", - "sk": "EKEwDfKTsx3uZhg7Kx8hR2iQ4gd2ZPqFxKhJsuqQfTgJ2u6gZxQ1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkotr6U1htQR9htv12PwX8pYuPN4wvdypUrtdzjW8s2ZjjabsLK1", - "sk": "EKF8P6hHPaSLc3zFDu8CQwg19wn62MWL5ysnKH61k2MLfayoQfFu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnuB8aB1vWyWLBFhbFUQAQtkLdX9muFzDnLB5F3SSWbXLsKWfZcn", - "sk": "EKEShZ1hKfv7MsdVLUWixukMWWZd3FFd3zfiryGFX4wju6rBWdwr", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpC4ywJsP6r43MVhCWNRt4VmqeQNRN8iSJt5ywovyURRHPMS3GSt", - "sk": "EKEzAZh4qkch5RagcvNuL8MVVgJTbNv1aixYm7pmP9DeGftpDo9J", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrncBwKKd4WneBwjJcCXWsi2bKSdSvJ6WjnuGJga3gV1scpGxyPZ", - "sk": "EKEYxFV3HeXyVW1zR7oWYkWsaYeMaJmA3YXaS9J4C1dr3dXSHTFK", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkGgySjJrBGMeMBTgijD7vM6v6B9YDsEkdUoha8KyLYudjwg388H", - "sk": "EKEj3bVdJWztssVHS7jo5gEHTsGKgeFBxEnYz3sPuoDbddu2FYYa", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpyBw1ypszhG9TiiXPjFQXaAXZ3aYfNK2x8APP6fpJYEsPEsL6fn", - "sk": "EKF9mBpb19fCHgF9Gu8H35qM72pmD9P5auZGHBnJsVVdXT3fErNX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkD8tPrCDrvEB4uHgz1b15DZqNhDEsUPDE1myK2Lpx77seb2jfxW", - "sk": "EKELU2CXboDeCWpJ6TRbVD7GLC2NJX2hEi9tFbHPSYYpNNKGv71b", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo2TuG7gPtbiDFQvBapUS1u1vUiCvVHGmac1WG2JpLmyhLW7i9uX", - "sk": "EKDwmeXtkZw54dygf6asCqJZN1XqohkjBoxAme6WZDz4ngZosDiN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnCsW3a29PdpW9qEajAqKTHauhE1VWpHp9EJzQG85pdDXxkq2eAV", - "sk": "EKEXSJPdLTGVFK2648AdXYaBUDgdzM6tvafX5vzVGjZ8bXfve7Ev", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqBYcUWXfe2YhR5JKyJT2aPREWewgz4tqLGtXU4PSapLN9FRyuSM", - "sk": "EKE6LHkm745XqNeKNtzNqC1qYiqMTASj3U2URwtyHqePUbdbRJcy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrQfxzFh6DcHgNrVmga1JMFEen8ELbLnsj6aqiohqysZa5xhaW3b", - "sk": "EKEzwyH47DZRs7ToA862ESEY1LRHnVi2o8VKvYzuS3HRA8ooXw2q", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qowVVfPpZ3VL2h9WRbJ1ZokmBb7L5vbVZmRfMYSz3k9SBNA4Hb2E", - "sk": "EKEpGf4aka2NVi6j8AgeptHbdYRjeXVHbB59tnsPtZiA9KbvDCu5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpnW3nqihAPQAXjKG6DxH7ZtXVEF625tUxUDQbanZ1gwaporr8TM", - "sk": "EKE6L99oiDQBg9MuhZAMNqqUYw1b152yzx5HAokv5tNgoomf4Smw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qorhna8bjtiuo29sAuNdJffcfdk1eWE26wdt9BNqogdQ8KE9UtUr", - "sk": "EKDkXtCqUEaPmvHE92MvxR7y6kJ9xT2aLdFmTzjkGnqa5vTJ6KyM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qptef9Tg4dtvEGUDSCc8PUt9YTmo8SEyPASDmkQFBXb7Kwxi96yQ", - "sk": "EKEUaETjam4DqKcLDdTR3wCSRTGMAjizenzRGBv9JKo7uAK3mnsE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoJRBaVth7yvJ5TGBk5K9coiFrpGYohYr5Acx2L4jJRtxfXYJnSA", - "sk": "EKE8NJMRRRKNkkqcq6qF56hcfU6TQPHQhe2DU9UE7GDo8fgPeTp1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqF1nosawA3ybhNua98EQa7GDaxnL7vxMDJkZGZRiueR9XzYnmYD", - "sk": "EKFdBE1Giwf2vHYtE18vPZZDWt5n6t4FJVUHGtg6vwm7ET9zAAC6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qotY8xuqx7HtAQr7SkYF4fX5TAZpHU1S651ipQW9C3P3zoumtKrr", - "sk": "EKEiV2A2gM2ua5EjVCXJkoVBMRtWnJn6t4ZDuyMNTDh3sQX5EdqW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq5jvq19RadAoRsLjBa9kzoZBRj341maHmgdrCwWkV2M78zyZ6gE", - "sk": "EKF76wbegjhix8rZ6a8Ez2WbMnsNLedqxmnP3WrsQ1aLehDBkH8h", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmwkXaTdtmmagKWjVtUp18yqUBeN6sGb9PEmQodJG4JFArEtgMFT", - "sk": "EKErb6vJ4E866v7jFUt3rWB6zMQHWpDvzSR7rd6iTTk9Jrh9V6R3", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrtK29Gpbj5i5NTQDvzH34duNYwM7LNE854vyRuWhh2fF7xPHgJL", - "sk": "EKDtQ6Qhwwaf2pnX5VBDcsvzxMkyZgc4MAdwji3nv2xzkWMbyRb3", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqtQwoNcmPAx5mNNRp1nksvLw3hcyGs7SgRC34tQYPHEfxX8ghFa", - "sk": "EKFEbqJdRFD1vGn9tWyuFKWEfzA93gpybkHHNegp6r2yaQ5B8PnW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq2oMMYbHc3a8zdpU2Fi2N8J4MdYvDUTgsDJWiuFvHHXsEJzTiyy", - "sk": "EKFYe2cvrPYMJXGaaJgEEwXRVrF4Y7M1jN7MGycWc4DC9iVi3RGJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkbxGuotaVrGoWcek14PaAXEmzS4EapdBcp9AcGXL5bJyXSevUcT", - "sk": "EKFG5s9MqoNrYTCmcz1UD81aFJPCpsQw84DnkadcF6dCttbT6tRF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn1ySSf8DyQHyEZGJ53Ntw51hbsgUYU4XMnmhEu7Zj95J2JG2ij9", - "sk": "EKECHcN1EMZwabXEx3ZZBMqe5QK8wE5nyCxMyjBoRFn2c93dejkE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqhYuJtNMAWYX27qvVdYorCCMtg31RqiCnsBTnHUbiDnbCewcvGP", - "sk": "EKENujPDy3HeX4jiE2wCLN3TpKddByYUhQTsP5crce1hjsr8svdh", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjDS9yM5zJn9GrAGcvUVDB1DvMouGSHo8d568iaMUyGGcyU9xmh9", - "sk": "EKEdo12R3NshdyFuzANj7sNFPyKmEVNTffkmcA9X26x6GoSkv4RT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkkro5EjUvcGbwEjAessPc4BehTJ1BUZwVkbut4K29Wfx5hjkKq9", - "sk": "EKF33dinNCiptk27dbU8iy7PLt2i7RePMKfhtTrTax7wUMxjshgX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo7bA8pRYyu4S7zXniaZiLfUbo71SdAegdPY2DiJLuYncJZvm4hD", - "sk": "EKFHWw5LuFSwTva98eBKJDWrQuYMFcFBtX7swn8kBrdMWkcCQ8Re", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmqBRUB4FstZWFWe3uCnNixq2TARyV7oF8uBBFAfPqkbNL8fHBU3", - "sk": "EKFFx4uGwV6isPSAxsDgzTbsohTvCJf3fi6Td1C9ByQZuXQBvDWn", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn2qXHQ6Si6KhGfHQYKdAQg9K6HE7KoTcQf7tJH4MwgxsnwXNADc", - "sk": "EKEhEWu9WaDf5y19bBv8EeAhVpcW5CzenJeQGcRqn2usApKYQKyS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo9Tydmz4Ct61HSXv73M2PtpvZdScZm3MTDYHUQf1QFMqgqw1jS5", - "sk": "EKELh16F8jfRRBwq9fzw1GgCJ63CxeUH13BW6XhaaB9nPvo3rkmN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpUffXaxCrd8ngJndFZSPvANDM2pBEaSC6v6Po1PdnaNQWNqd6P4", - "sk": "EKEoNfNRcWJH1QJfXXjLxWheC8uj8ARA9PjNPQN8pwD26qFe3y8v", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmavAv3x98QvSWZVGevMiWkQBJgMumq4R18asoUCTKivXPWEDZRT", - "sk": "EKETbTSHEW2hpkxo1zaL6BNyWSTPwGKwY6PgSPwwHqv5xeUeNHii", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnrdj9RqxQQbX2LQWWPeEoLTsEDZ5VBMqZyMT7WT2APjqtcmKryR", - "sk": "EKECibEibemH54kcTGNdKRncvb9bmRNSHgzz8j6cdn3AYpPoC3Uu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmfhQ28MEpVgHfnHkvdckoPGQirJEAipkqa1iBfHpQFjDQjc31xN", - "sk": "EKEwb6avv6PsX85mgJ96qyky5ZKDmVSssbaeZPiZRLjMRkqfC9CT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnZ49BmaAv2CDYy3vnLVCXw7vvMJfrHJFsY7Jz3ptBHxDMrLirvV", - "sk": "EKEJjPyjmdfAmQHf71Jd8EFaLen5N1KZnJ8Mm3mXX6yS4WsHVAmm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqpYm8UZz5xLrrtf6y1HwBdP7qbsJT58uhVGpTPMLQbWQnMP3gVD", - "sk": "EKEjQuLobnsY7vRBpJmg2UtYUBqPCuS67VaXkVRtZsGia8CdbGCT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnPed6oUZCqnXLJkPJ7S6jpNyYrz5p85TEhgVVtkNwNP5bMvH5du", - "sk": "EKDhPpDQ1JimZdBLZjdMMLoXKSPJRUp37h6SoA4UmtQ6xeBRhRLR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnzxRJPHuavTBQmAUmontyv7q8kWDw9Pmv6EtsAicYpgXDY6Jh5v", - "sk": "EKDiAd48ji5aiTTpTJ5xJxx7LPNBDHNiSjZPZ5wKtWB9PwDWQ3A3", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmqKzw8khDeHRTqCymdkEosfJg8qfyxeGa596o48ELSAid16MS7h", - "sk": "EKDxBujNq6GGi7e7YZpVGrzui7KYxF4TgND9WTdTRMpowgsbV99H", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkmubnn2x6EUYofuiUXhTQVigTRtpAd3Qda293b5uWvkhxgrFVA2", - "sk": "EKFLwMDgein8nAN8BiyDbxnReJdtup1UrEQGZB1srWP5zHRjzcpc", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj7Qa7hi92gvMcHn6FGtDZyFGcpgeU5d8VgsdWtLBq5uFfjGsuh2", - "sk": "EKEXG17amKBMb7Lh6PodBVrZLCF947SBgK47K5KyNkDgJ8bosCzp", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjcsMXr74VBAp6wUkN9oArWGpVWR3hyf2rti3ke7XTudjArzBffr", - "sk": "EKEybXgL6E31uaeuwojETML7bYGNbQsqpEJLuN8yEdq7nDnTH59y", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrQjHGajxDcrFdVCoYDQ1DURd2EwC2c5WaUm8zWBt4eH2Vyux6Zn", - "sk": "EKDq97TmANtQFKXhSxRLTQNSCdkps6z9hS9jVh9JRa6e8zhiNJeU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkYygnovtTaatAGCwNaWqCua5pc9Haaa796FmFCycnfGwzesqVQi", - "sk": "EKEX1visc26H9JtRCvgAy5UkGNYjyT4icD4SrkfpdsUiaSEBZ1Ma", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo9ZMUWsgmGYBhqJsmpmQ6Ke9TKMgy5vvsyK8whTsWLuSiKZfUdz", - "sk": "EKF7z8RbnPqhs26f4BKu4AR2KHkd71VTnRcRvnpPAkDyHbaRmdek", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjxe16ULvk7V3FomS1bsx2CG74G8H186FeNApSs2tat9EAaD9aBH", - "sk": "EKDhbm7mSrxn42uR1pHUycM8NarjxXcCr4yQNkHVu1wphAfvY543", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmWtgrnNnh86XftysqYDmzrtXUV38Agt4Mzpse7jetevTkRT6bKc", - "sk": "EKEax7871PPRS9eNWVh8F7dTxWq9CjsmDdZ9c82de34Nvs3bdkd9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp3H6xNURzkBLsdCeHbjsLer7oPKmB1zC1ESt7JNNA3xe8bFRJz8", - "sk": "EKEjBUqT3cyMeyk1JqQQe4kty6KDvyBC7fwzULbZuBsACT9mpq2Z", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj2CBoyyTBwQzkXmPJBRHDct4pwnJrAraBWmLyysmu1BpYST4NLp", - "sk": "EKDzhmfqmnck2hgrrmQHvD4ZdqPxvsB2yh7gC6ZXCeduw6jFPTQZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoqT4iZXtumQd4TPS2qmhrKVua8XfMi2gRT79bzpVGSp4HGRj39x", - "sk": "EKECN4QMAJ5pgpiFUxucZULxKQfC5TZzJkYLyTB6FpyWogFGRdsq", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjkUQbi5ebU9quQ1FtLpAUrtmXwySJuGXDnNzgG3dNi5rsv9QEWD", - "sk": "EKFVC73PXnzqoaCpMCuemHZ3oa9gyFfB6igUD9bNeYb97Saqfqby", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn56VTC7JfND1Bzk1D2X7Mne1ZrUNVQ9tpyFt5nRoHRcqmEijwTv", - "sk": "EKFaRx8bAgqWCuSWH8A8pf4eHd51ht9aJPcmjkxQXkw5qPZ6AnGe", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qij11XtKWZSX8e12CSDLLZhPtkjCW7vfJZZ5eqtEajMiHbAe11ng", - "sk": "EKEsVw8msHR3MqpWZUwvtAG59EArvEJkYcBcbVmyh48Jc2USNBiA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpzMFoScZQqdvYQLDfF42ZE6Nq5qUNjY9YXzghpkraPFxSqvtTYt", - "sk": "EKF33ZmJWkahzNrQRQArqXfE63bPLW8QtcJ8NdxRaNWkxnoHzCfT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qokCh4n2JGtCGzEwCaR8ka7qCFtDepcvVW7QVG47YffwGV4sMAup", - "sk": "EKDngtRUMNX1b5D5Ex5xrcL3ADu4EuirEmRDBit5RaNCtXTruPm8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmMmZ2LqtsYAg4ZeRiDiaegBSfDZwezDkSNzGthGA6dDz9q9iNWM", - "sk": "EKFNUfPz7npdRbJTn2KuZJboH7HskYeS17WykLiAxsnivbTiT2eu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq6hdoWYr7KFCskg48xYtN83G2ucfUgC4ZGRP3gEtYrz3imwtnk9", - "sk": "EKF4ZW8VgUZBUgCVJ1dTShVHNbjaevHZandfqdcdnCmJMkR1kLcL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqv8cNwiN4yYat9Z8fSCNeSPZBRxsLUqJn8pHPAGAQ8FCVf9ei7w", - "sk": "EKE9QHU65Zekteu2Rct9x6CB9fKhcHCiVjmo6k31eh2DQ4naQmqP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjbqAfd6Up66Zjxww6AN5Nq3DcxfbBZoJrc7wWRbgtQVSWN3nWJE", - "sk": "EKDjhe6R2b6UrFRcofPcbW8zMjfyzBn7AzsodD9APtfiHdxBpdiN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpwqpj48VQfqLW2C1KHjJNeTrP9SHeUFPGxvVgBcGRarhVUKKa59", - "sk": "EKEuUnu4TcK1u6i5RurgeqdscB3iqB4yPEtmLATwjHLHr9omEawQ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpryZvAXeWBC8y8vpnMvahqwZKRfeXjya4b4AEpKsd9dcWiySRHB", - "sk": "EKFJiEXni35y5XpzNeBZRj6NMbWR7WA6FAGuVNZGXx4twJXonniX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiWjQiv42FmefzsPVoZ7sxLcKSMjzGTyVAwj8pH8pp8q9aTi4F7d", - "sk": "EKEn17GxSyVPKqZBdoVyJgkL69DZj5M8gHtYknH2463SmWRiJRjX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qozpZjztg8vLWHUzkoQoxLbBuvM6xJCozfhRiWE2SdRcQxN7tK4y", - "sk": "EKETVJbUrnayTs6X7Zx17hd4ZoZ3tvLdGmLYZempdS8P6VnG5BNE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnD41U4qPNihiLYovo1qyroHipnP8W46UP5EK7mib1aJGdmmpPFi", - "sk": "EKEqosaT7fUZmSht5q4QsUJUuawUnD1g4SbdLBMFyvDktVAx99j7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpfDC4TFBNCHJcDpJiHRRwsjzb7eFmvigrWnuj6XzgTBVekT2nzo", - "sk": "EKEt883ZKisqvVwcScHDWAs6a663uaZFajhk47nC9FezYyeCyrxx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjpZmX4rQeTCPUj2cTfti63FAqrpAT1mPykYqnqFR3rTmP68o1UY", - "sk": "EKEJwW6TaydqpDa36ooUFeKU5RcPmwCdFSxVY9tAkEwdMjoroXcs", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqrFh3sxe3GaVPULjMrmL1nAzpxC8c4XAdHwLnwFkXA7SXfGQxDp", - "sk": "EKEuK8SDbfSJV5B9Nqe6GN6PNgENz1FNyFqZp1shn3rB1bdWAmUB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qirqygkE9Mqi1c8PLSjqeRA8ujc9XSTFci4SVWbhRqAt41vXojnH", - "sk": "EKFBqkzg5QyfM3fHYgQCWVZebqtict5AbnhCPb5M7DGjtntVeCx8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrKV7z4ksYQ1FvH1nLq4LRT4prC5qqJ9Ne7HQcQcW1NCpEcVRH4U", - "sk": "EKEyh7ctNr1jACDorsBMga7WugdxKno5u8EZxsUXWq2KjToz81zS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjB9m7zJ1QQd4dJ3KXAyQ6SYZT4XUjiY23XpUAcbntmCwGEDo743", - "sk": "EKEWf8F3ES4HgParm5anMPryW2oQpWwXJ9JMCxNuutsNz7t1DVjU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmCrZnrmSqcwRUynrgqKY9EWoDBbgjT53SpqrnfQWysFV4QHmcaF", - "sk": "EKEquB6qze7RGzTpTLnLybMrJx48G58YMUVAeaNwsHCTAH8NTcUb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpNS8gGuWLi64AZNWdnB8vxuL4KT7gQudfvNQyzhCKCiCP5UuuCY", - "sk": "EKEbBJswCyYDvQXvnYYhptQdvUkuZv7Mhw4TeRNJrj2ZG8c8B5JH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjQvYEX78pct9QF3PsCRkjUhX3xJmVxsrHUz5gnQ9RiyxxT2UcUu", - "sk": "EKEqjL5afVgwRo7oYxpLbwM5ZaM17tmVSc2S9gaiUGRWRCwXbL4q", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqGJiLCALajeTTB5cZFYaFZz6XYzUnJNRCcSe5z4CA1Wutj98CE2", - "sk": "EKELjp5cEKfsFnNXDUWpxvynUNqEoZXT7xEpakHESUfW69o8wMCH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjjoN6GTkJD7Fg8Ccp5Y2DJuvh5nA9AwEJhoUYBhn62RQt5Jh9jh", - "sk": "EKFb9Paaw48z7tu3ETFHoqEJPyvUBpr98wpZZfMUxMxf2pUQzsVU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkF1HzKizGaRyQjzmewYkZnuHx6jUPQfGqaKr5289x9aJhTvKQA7", - "sk": "EKF7URkkdAUBzuGEnwP38euueLfrv1mUe5bqtszYAzVVtffJaw8x", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp835odkYDaBSRoqBe1eZFjqgjCgy7yD6kr153SA8f9xdLNPwk2e", - "sk": "EKDzpgMWtyciY2PTfQtN691NV1hzm8CwuGjFKy1ADDmmhvju2um2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qikPXVydazfsLgXWDQQEVrtuVMqigmtfv3JpBGcxfzSmEQECEGHT", - "sk": "EKEbLK3wAvXn5j76jGyYemnRTccmVR7sWC3EfhduNgBTSYEkbG2e", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk3BBNPyBnDTQAvG2mV3UZAj9krPfGxu6uXBmG3xVseeKag2354J", - "sk": "EKFMm9sFKMLCcr53LWub4NcZmb5y9MhqcZx33asdG4vyysrpHFbv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrzjhtqh66fY4kN62xNp7bLApJA9JQhRq4G8zS52p6EfUn2xczxt", - "sk": "EKEnpRgK6NX6z19GEvZNW6MBWeR8YLnQQv2dQTr66Tz9fBhQhw7G", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpEK7gN2qyYt5AfdeidaqHAdW5gS1zeARUPirr8ZD9bpsHT96Uq1", - "sk": "EKF6MmcJWZALTZ2weDmcZsSRgiP65ZaHiBb6GWMgX46GbM3pPWKm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qifQagtbreoBRGxAz8Uth1nFfF2WJ1NZEXJU9A6VvcnErNgHjZbG", - "sk": "EKEiEJF8JzfyCXdjtNrWv6pFiAhtt7FSUiQVM9HxCEBLBFQHmJjy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrs6VrmJoxBdYeRJCkT5sPgmPAQpdYryB7vZza8v1vicccPrLxa8", - "sk": "EKDx4saZ7c8BPxpoVNj18MGzpZF2yLMRtqzZZ17Lk9EHjnemtGnT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjyUr1TvqTV2okp8U5GTgZxCt2GNuE5zFR8HQ3o21vHydKonuice", - "sk": "EKE2P4F3XNNAfCQQAs4QSUY8Jy3UrmyW5urpR6AJZ4kWH7yenAxS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp4nWWQwvuc5926nJuf2JUyAF3UxpRTzFMeTuBCT8TQLWFG9j32o", - "sk": "EKE9wdLvedxDBMTXmyMm4EEu8YXgnpFLYMb3uf9J3cjZUSU22zDM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkADXZ5DA7Seea5GqrYuvspTyTPvrrT5yPcTBLCy4aBCYAnZHw54", - "sk": "EKEKk4J32cVxY6HYRECiKDfRPz4jQiDqmwbP77scsxrEn1vEd66v", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqmHiB6pFzrh6GRwDLeGnUN2XzyMSDzyd2zpLMgSXgEqYURAuLwS", - "sk": "EKEhiTtUcGwxK2j5y2pmNqsGvTyoQWbVJu7eqkgRew1DHvQ3kFwS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjrQ7GNpxXWQsBzPywRXFWH1W6rVpK98h6znegcB5wZMmSB3PBW4", - "sk": "EKEmbpuquQtmCN2ucXofi6yQWs9HjgvCDeyAH9Fx6VGEDShbAHwj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qousgubnpWx374qP54fGqwHbDdPzUjdf5C9TaAXiQvMPRw6PWrBh", - "sk": "EKDryiB7UyDRFA57Wwb4LgtY6Mu3v44FscfZU26eb4LaQVTB3HZ6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpZjPszmZC7e7K5FtqFsvwBvXyXZpYj78bZx1m6UYyVGDMVygWxP", - "sk": "EKFFdXYUHJ6pFDhhjA8q8V2WrYtxPcbuV4hqocZPFANj7DWrtPEU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrYhoJRyTtQ7RdU3KutCBQHs69BgYnMBjSY3E72QTNH6CkneM84B", - "sk": "EKETmivq24WqRy6ntkoDD9asks5RMUahvNNdcmSJuSyevvNfije5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoS52W1RV4LdQwUPmMrWD72yDE9wf295y8oRx2zQGVp8mXA1LiHy", - "sk": "EKDwFhoqx2ia4tp5hi1vnQcKnw8kujXuSHZvzMD9xkoowgpWhBN8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkpEVsbTnNYpfqGGmgNt8djwb1XrKP2Db1xNrjRhU3WW2oADmZrB", - "sk": "EKFPXPU4kdBW3wBmZRwWdMeG5EesJhQocPQpMmDgcbHy71YaoCYQ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpcQJSy7kRB3NFfi3cvew2hVQGRBMayU3PRWNHTbtcULLQ6kCgR1", - "sk": "EKFLYF9AyvhUT2aV7hMcfEPFSUiqueF6mptpYsCuWDbKzbda6ReR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnUkB8PVQKEWYQyNfVg2zMYqRHP7uq7tS4Y9PxD9eyqkZXX4fzA6", - "sk": "EKEnb5vZD2VrJQKuuzW8aotRfNPLgd4xVQ4RH9Q8VEdqkShnReqn", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjZzNpL7Bjgg57XNebEnGNWCNTfxthdEsiBrYfFhDQ8BsbwMbvtV", - "sk": "EKF8ZjjCLAGb8RtJAoyLUg1qixdxPfng9g3PSeTzhyrv7z474Tjj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrSPqbuYSCX2iMHSuFbzJfRZvR5gDybDRQcaohVCP6g7RPijqi94", - "sk": "EKEWNTqDGJjnk8hwmeRphgFHLQeL9diuEpTbQKn9jvyPCXx1QiLu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjqJ4mxiF3RBVRMBePf4ycSMejPJRFZSiEMnnFRqVLFPW7vbL5tZ", - "sk": "EKDtHFiND1advByHnSh8Vv5ytr4Zkc9ojqsdigues5zRmZepQebY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkkLAV37V191dCRkKQHL5rZREYKUJsgs1BmstECq8zeVyW4hE8mC", - "sk": "EKFLdDtdz7YFuWmgtgim9BfRugB2RLnSKMYYDXbBiippRc7aDJDe", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrBEzcn1rCKz1TP8a6feq4AfRf7PP6hK2pC5q7fdGQjpBPv7qeJ5", - "sk": "EKECRLJxtz4jUQoZDZZPUsqEKuooGPSc7wyiBPa54PsFTtsduGjV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnmYKH34Hfmvon14zd2NKZzJGRghaVbiAb3f8oAYT3nuYQd1TLMu", - "sk": "EKEN56AQqekewx5be5iSMDQZxeyfWzRF1AN99fNX74Fy5rFTWbcN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiU53rkMtgmS3U53RV6HDDRbWCAf8Wbpdf9zyva7ycfrD3RFb47h", - "sk": "EKFPVXuMgLYSJCtgqSz3QKQMq2EFoVRDUZo1NG4edupUSZbdNCke", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkkuAA14z3g7YWbX8upHdDc4WM6GQpkBB2LhDUTiELAXX45vBm1Y", - "sk": "EKF1F9mxczashR7sztoJYawVYzB9TytKXq6QYpfmfehEMgCvBWRm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpkNLfRbrwPgRxFgavvUfAxNg9obpdaFLc3Dxbk5KHoMXa2hMmAp", - "sk": "EKEnoD76wzcJhSVhEgzoY5vJXU4BKdpdL9Ap3yQHiPwMMAEiwsH1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmEHkX4c884qwBHfu3w4WKq6T9WXZ4ubiNEvNkMZVJTuig5u8g7F", - "sk": "EKFbpKGkNgVggDDpMG95jZZsCWmKhdyPxxFJ2Z3uuM69gkJn6nRJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqoPYhg2ydhL3FTjRBPWPVREt11qmo4a2u3sG1RGa5N7dsQZHx9b", - "sk": "EKF9vx48ztdvatB5WkmpeJjtgmVnbXfekj1TjM4DierqqELbuv9f", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp1hWL2vpSipisL8cQsAWfVJ7gDXmNUnaoM5FjRULCoSk9H5PRLj", - "sk": "EKEjsmvobiFDmoGUfSXafQpLh5MJeXfHaLfz8GYLGmVFnr7JmZdR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrsc4W4FUxPnvwtjPWmvi2snAseKd2kzDULcnhF89JZDz4zqwaFu", - "sk": "EKEgcWToLbR3grvgvYWbbHhVNb7CEWbWB2XVhAriSx4nmie6pA7e", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqYPiDvzjaBs7AwMTNj9vqF6Q273iVxec3afkLzDZNJjVXsDeKWb", - "sk": "EKE5ikWdwvv6XBZrR4m27mLSsApZdSLhJGo3e7Km688CzkZnpovA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrNzZR9LdTDYu6AKHK4ksS28LFYeQ6CnkWiAWmK4xK1r825hXC87", - "sk": "EKDm6jdwSKXnwwUXByyFFuPLGGbCrqn1JMpZeA4yRvWpUDTPjLcv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjXBQFZAy1KuVHdHKowm1JX6dMCYYRceesqKmPbuDgWcb4xuAMiQ", - "sk": "EKF3kET7xjGkZKoEbniSWLJW9jqRkmdKGdSWB831hcUL5oppv9Zy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmRdU6VSCQU2onDP8Suh99ygKVm4VswtzPj7XeArrYxUffaiVnsi", - "sk": "EKF41EqidQ7ucFem4o4SZ2XkQp5ygwWe6tVQpx5K1r8U1r1RZX43", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrunc6EK6wyzFdrcpEeiqA4Djtp7ersfVk2YfALiZBcJJLezvuXP", - "sk": "EKFXScWHHxg96a7Yaj2yDUSpLRKEKA4UQ5zT4YV6pyXEoXnVq1rJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkw1F7B1qSyJ4Z2w71oxVKR3hhuqEdQBgfwkcfeKyDXoHFgTaNY8", - "sk": "EKFHnSyh64YapbwD97tAh2SEFUjfQx9EBNNpiW2tzitKWthSzJ5e", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmCRgdG8b5DKoiaBnDYnTaLx4hApcpg2iDUB1r3fA6tF61MmHmom", - "sk": "EKEGFvPXZEJ3L2cF4g9B4UGev4HkVYgS4SNp1wwQY4MXiVCo4tng", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmEjHipTh5H2Q9AhRJ3DqgCGUwzyZjZTqnK1WmTcbsnVENi6kmHb", - "sk": "EKDtJBKUWamYJr73YQVYyQtENcp3r3oBy4ujGCue8DJf6EzvqBsA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqkgzHa3gQYuW6p55KBtQTWx85yKD1vmUd9cXyP68Ui8YMrtJ4KX", - "sk": "EKFVff5KUFMnrv37xxGg36DfXpQoERBJnDkm73qvcg9kfJ56zAfX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpjhW77XRTKRcba2Kknh72s3pJS3F2PdbR5ZGvdnDLBwKXexAigX", - "sk": "EKFQtY7tKqDyMB1TvFKY246KrzAND79naRcCK6SvrnTjN9wLQEiL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qibTV1BSqpvSPDrw6z9eo1We2kjwrP3bHYtmeMu27RZdkuZaD39B", - "sk": "EKEFjz6mqsKzDj2is3w6WZHHkJW4yJSGVVkBekPqkU71Ruaiebwr", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqhARBtSKVQ7siscFVq4o9JmKh8YFFLhoCZq4HSRSHMacaJUsNzc", - "sk": "EKFV7wEeP8HT8xL6BKHxjEkxa2zCM4GwqHqMHfcBKgzxAhUFAdUJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmqQcs28e249jrYuzMJFiJp82BdRES5ELpbxaXswW5TfnnahDpdf", - "sk": "EKEKbdNjxDWPbf3DB2Q9scjuiubUiQvqhE8SL9CSwvRJi7nzj6Pz", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp3Mh4upnUZGZY6LVoTjDieW2TMizfQLoDMTmTZ8iQnUu75x2hNk", - "sk": "EKFGWZZh88Da1pr4ZgDfkxMTA8SvUH3xxnzsf9BPvqAQL7GAqYwH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjyGC2XScgGkf4VbxC9StpefyAyPzaNmZ3XcCikz3r2jp9g6PWfK", - "sk": "EKFacsg7tYK79iVJ2xs9nL8bttqMtzaUo94KXCm2GSmB7PHKzXYk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoyE2iUsDZJmRVmqw4hCns6nExmJF1pj3VxnzAaMdTvk5LeKeves", - "sk": "EKF57xsT3CPp8zcsWutBsGUknxbGiKhYHeVbvRHPnVdXcke7BWaS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnaxFShSLMr7FcXmsev1arsHxs6PErrz3DQJ167thSnBVqA8CMAq", - "sk": "EKFBhYscEs1MiGuGPjNtQXWtvUXvDbrHe8wftcup5Qapr5zDqdS4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qirS2J5KLtE7io98R2zdLpziR3GCC4paqeC1pYEPia17fKmceeu3", - "sk": "EKEXv7Zki15HcMsF674gTcE94yCkUD94Fszf3jsNrC6TWfUTQRvx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qobE3QqBScKwzFVxsh5Drc5Pq7usk5enF264cCguVGx6kMoKyXqe", - "sk": "EKErz4krHbCvgkKrzKJgDqt6yi4FZ4XTEEPEtEwdoB4eVa1NyYmu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqazHEAsacjNht6AzirWqPSkmYaVCQYAzHDuNWh8C7oKvF7Q3Smo", - "sk": "EKF24zknB5Tc6yGPLxRPY4iLL6cxVAiu3J4F8zWH2jpChEiQKh8k", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnFpSD9YYsctG25jvDZR4VXo3fkMacNhYL8TfjxP9WfW8sMCrpqq", - "sk": "EKF3fAJfSFXJnteENU1QSMQv2ELxdv1c9mJgrjYHeFNzztdt8J8J", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmGuAjpzuMgpAD2fp8wJ1d4NFGThbv95oi3KDsNdLtbdb985qj7j", - "sk": "EKEHKp81GVFusbQX7MzqSCu2BiCJpsqxGwMi3Vi9ppamUhdUJScm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrfmZLtDWeubG8efBuUBp4xSacj8vTLw5dWSpRegW6JzrAdpub7B", - "sk": "EKE1C2XSVFso3tykAHAFMh9YmaZbXjRkHFwVGVF83cQAJ3jNGS1k", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm8qiuvdrzPFPt574FdgqrhXNnwoPc6PqWxYKoMXqm9ycvALch4v", - "sk": "EKE1T72y45icBbtxtYvoTtpoVZPVn1e195wDK6eMupGsSwbZYkce", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpnS1ukiYfhnLaCjuVnps2FJhNnkW8Zsb27DaEMSmpRXRhgkaWL4", - "sk": "EKE62qyVEaXvNnWSUathNW1TinKaj6hYVZwjKCjkR6DJccbUiMfZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qieADqxfEBno5QmMqz4ejUW2d8iCLcxpmFZhCVtwptHo4AtQ4Ngd", - "sk": "EKEYeBBqHd7v6Z8tzkhtsp8xFD7mqQMhX6EPScgkeNgQEs2SbfG4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo3S2nrKG7hdufY4uVtN9WtRmarbkLGTNvVKcgNtVV9GJEPagTkh", - "sk": "EKEWbJWTTy6iYSZTQy43iPRcRdvkdLH2dB7fQQR8j3EawoFS1Hz8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjXJwwoQZLZpfwHbMa7ZHNZYzYrQ2eGNE2vk9tXU8NqVhtbBtVyb", - "sk": "EKEfm3y3mCQo9LfC1c57idedeNpNWNfghD2M9ZfYMZYyz8RR42NH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qobPxyi5KGDdmmbn3qGQ55zmZvndscPkYLKRHK1nacYYjNF6sTGq", - "sk": "EKEJKnQxVauZrP2zA8cEQpqYuVjbXaQB7RGxqyY8trdj1LzchLKL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo1J1FZeUrGHyZyYrWXMU9yTHy4w4sr76FNXZom13mxdSf8RZtSV", - "sk": "EKFCs2hDrTD34sYy6ykcbuLdkv7iSusccrfyhehwPPu2jW83DB3k", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkfXKWTtEksquywuU1PBhKJJHd27PyMWuijfccrGF2VYpaKV5KZt", - "sk": "EKEJy23Gaudq86KyrQygtAcFd6e6mMHzWTWc1FXP41W9uB78Myk5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn3uyx4Wgaeck8SQLpra3MtGKwqmjK3AmKpaYonC7a7jNGE1uZh3", - "sk": "EKEFXPa9yZJPqND3znaDtfm3N2z9rxDkmMU7UiBTWx16pEAb9B7E", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqNb6EG2ko8vkwFDKuQZUihPHsUhH73SYdEPsKynRzqWY2hFqr9o", - "sk": "EKDySavzqfVeCkoWrwU2Znpur9WBkBzEPMkuRKTp7rxTYRP6W9Ff", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpexYfEZk9Qxp7LXouyNvNpPMSbWo2svo1YUEC62jQiutnZFqe2H", - "sk": "EKFGHwQP5woWkuJeGxatzsU13eboDPSTA37uaBHQ3QroTxD9n6xP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnVAe3iRkPuMmcUJkxQiyimLURiRyuxavRqLrQWNqNj4URtL9dfa", - "sk": "EKF3tLvzrA3H4D6hzzr84kTWSkKp2L7cSeMriaSzXgdmm4J7zRMd", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm8aBUnHyw5aFow3vYfx5f394U2uZ8D4NCp8uabNgLqrfSBLWt5p", - "sk": "EKDxqiFh835KkL76RXPSYpRNiA17q455B7Unp5sqNpPrGYHhid4T", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpBKgsnVxV6dCvP1QWw6o7uABopQSDfUtwV53QjaxfyWPR27cFYT", - "sk": "EKEFtGeWtBkzeuuTfF4PS5dLBMAVhxhrVduL9ghtmPVrQNQbFykp", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn8Gei44PWB2iw3KEuwxTniwFxRJ5ioNEjvqjKhr6FGm1JYP7kCe", - "sk": "EKDoEB2B8KREbtDAD77QAjQYBTNeMH6Caji7DurU468NLLoYykFx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpjjNeCG2D3YSLidskKuzsEHTweMnT3Wz3bCzBsSVF4vEg15N9bh", - "sk": "EKF4ZRfPUt5TrHmLE2UFwVxV8P3BEyoS2JP18DLDUJXBgnfxgAzh", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrdt5sUWyiQqCK9feyyL4phWfZ5jUJjrGhC3MjAsTwMrkj3NVnhn", - "sk": "EKEQGVPG5QEvutXiMDCHh5mqJ1TDd75mWigbx7aP1rV4mi8sGhfw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qors6fU9DgrTfKE5zzGNVQRYA2vDW4KuR7Z9NhUspz95iPyGQfLw", - "sk": "EKF2vcn6kpU3rd7GCeYdNEXfNddAwrhwHbuPRje1PAzgaF9TVovp", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrCmbYXAJPCmFwX5pcqgWVoRZQtpedd2QeB9dRfs5AKxMTR6Bx6Y", - "sk": "EKEJtv6xj8WWGkV6enN5XSG687sy1fDVqAJ71qttkH79uJi4qMWA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrKTNfTXZpVb95Zq9mdCFwVtn277DNEuzyjLniwMzh5WDvtZ8fAZ", - "sk": "EKE3ME4XHTgNJypdN5mqYyqg3N7J4PLMEvmFC8CXvq8G4fPDQFGs", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmP3y3NG3FgX8uiQVwFxWStNkW6jRFsoXMaNSzCAHg31DAgcBhHe", - "sk": "EKFZJoKAw72bXXyycc59wB4Tbdsh3xjhC4EFvtFRWHvPaaTP2gn4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiVS5oA1NojwSBKuYBGN64cfy7MdBCQsaeLZyaqeNi4ZZb8PpkSK", - "sk": "EKEQspD1eW824NLf9HG1qtGWGyKyqVALdRew4LbNbzGeHLcmXjLw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiikRRt9VT9msPg2d8YYw4HTLptytgeqFYq8UjBvyCJ1ZgLKectq", - "sk": "EKEg7iXUuYa1WXSxqW83jWojNxDUnn25DnZLgXB3nUsmQhXoSgNu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnFWNrEBCCiM25oQ9nthBaNpKwmCSeQQN8qfSbbAu2aSsbWNV8fS", - "sk": "EKEibaZZXL7PCzZ51v69pdzrSCucw6CJruZT1gpCjKRtuG1xp7so", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmuTwtgMzsKWKZvqtFmSyneJ3Hsr7PVGwzBeumRUJtEKk1RUSjeq", - "sk": "EKEy28kKRtYp91hA3Wm8Sy7Zd8bWJVgPbJAG5EnwNqsg8CEMtR9w", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qidZ8XLQ8grx2SvLp4hY9GGoaqWmgCiqMAh8jenzPScA7FnVPaNY", - "sk": "EKFWc7m9DjhbKeFx2eNXGFrtvvGRn62qHBkaxe8wMTEYeRmvd3B5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkFxxBm3XwEPEqsgjFMbMEqSsafk2AjZoHsPU19fHUftwnQNk7DX", - "sk": "EKDscYcjzunvwu3PqhvF2TfL5oYripL2HJC24h1MoRcFUPWFyp6j", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq6DSXXzJwVQ76WFGN7DgtkW9de51tjPyymLJ5j4usqeRMvfrNG8", - "sk": "EKEe8c9ycZndxzBaALz7nfvTQsNiNoZupCLWyFGtJr4wRzYYKqXv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnHmhmPKFQfcmEdxQWhYdYk3RWZVShSWdeJghjigA1ZWRz3T6AgG", - "sk": "EKDpCBttvA2pKoJ28of28wB45yss9FnwYqo6GKe3L8hfWW2SoLYY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkxcrAneVG76Mx8QjZn3wVdA7speuva4QDX4ppF2jiTzUKccCuo5", - "sk": "EKDku9JP1CWSKhZFLgBPJMRRTxB85rn6YZETKdSUoYVptKZmdqex", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqwiJifh649CZvcHXEpEWZNswWWuSjiTL2F2Psyv4RkYrKcZoQvS", - "sk": "EKDxZsVicZrmJJQnR2pcXTt9bRvC4KzjKzRLgwhX8LVx7iC8nf9X", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qog9KcnmEWXAqKPeKgBzdwWspWAp2ZdDgsm5eNBvFgbfPSc3DyV7", - "sk": "EKECwwPpvnkzNWWBT1PBJWeJES6v34MFfyaVMednT7MGohpo2nuU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj7bPq7QU86pRLAi5ai8qv5iiP3D2fsy5aXKLsF1h5woiGZYHsqn", - "sk": "EKEGzhPdkUYqpxUnBFE9fkNDFKSTiCdGsYDrSnvagyaCk1Pyia7R", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrQWpfRinEC3abWBedj57C7Bb7CsW79hAkT2mjxhbx69zEveDRFV", - "sk": "EKFGAYHcdhgmDb9YwteCzmf8HRbf9jCDidXdfbzcEBiMnnVJuhfT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmXRT8QCtMqzATA24tkpj3PnsKNLP24pKmZPfQiZxYBHNhv7wcSE", - "sk": "EKDsZ48Ro9uYLi4GtSEivZkDMJyZAfhSktximHKNNHKkW3pyiTcM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnYrecpKTc19gtXaB4fbGsLVV3XMtS9RhWQ3QnPecXvmiShZgmzV", - "sk": "EKFNVcekfBSRTRbjHmGNGXsEKpB34DksgcjvJcB5oXQMY9RbJbVg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnV5rkBY2jTnbx8d7uDCQMa9wX1DRxqRN3shdvoEzkxRV94TnqWC", - "sk": "EKEbxEDLo3AdEonw8xhgLJhg9rrN7ENbFaB5eFw9HwLEHepjRnFM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrz2wTxktEA8SQMKr2EzYVmK8ZZkw9fvtm7TMUGRK1XTNJeZvjAn", - "sk": "EKER2gYUYBASsdPPXZ6QPgKGnb7pp9QJLjFibyDzFuBp9ahbXeXB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrqmA5K4r6ufNjKd3yU3pQecgwj6HxMHai1qa2zmQK4Qd5vDCEA8", - "sk": "EKETCK5nUQnyxwxncGhsH76pLtv1PGWK6pVAHmMhQB74KCc15dVb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qotmcaFw6etxDQVBK6ngnpUr5TUqwV15vvG43SByoyHovVyD3eLF", - "sk": "EKFSaxcgMjM7hUv6ptmP25XEzGcoZ2fUzm6eXWP3drz7jyCPRf3U", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnob3WCh9Bii4JfBzVrMRWyz2Q2Tun7QN7DYoQRDtJzokU6AJKUX", - "sk": "EKDx3JzoBpUChvfdrDVjqYazpvKZCy1udPxHwNyWfy5ybTpPFwiG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrtHGwe64k7yGE1S75aPKR3skjJYAy8RPffzyZm6LVam7jbTxpRM", - "sk": "EKEw1ESy1MZCDtbc2PgcYoiN6CHL6e7MfJD9t1KWicsa8krsMAM9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqbjpDfo9g4aTmzWWdAU4zou94pMG1f7axB5NpC2PwqRMP4bieY9", - "sk": "EKEhPTtEQndzmvnT5iY9jmqazRmARmf5emxu9hsXAwhqfn92umn6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm7abmfh63RaP8HC3vYGvbaVPS41MEbKoxDLM3tdrgpPuYo1Ccba", - "sk": "EKFdSdN8ErpwXHFPhHgLEwicy75SR4wmzjQmAHrgKYQx17QrCfvh", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj1p4Vuawzbn2zuqLAoruzxupWmF29tXAkLMxAYc6h6CR77e2MFj", - "sk": "EKFBRg3kj1tjPvXAxnpU6JmB8Q1qS2RVWSoXxzRoHNd4KFdWZ9bK", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqu8x8tYqFANEH3iHDygAWBjycSTuLJK9xcrMn5MFaR8fs8bkgiu", - "sk": "EKEEqzDEA2woBcK9JYpMt1g8J8YMx5EH5TGJd2SChqdiwhYMvgae", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoedUW1TzsXfaveEp1zuJ4aabZ2d3w1BKC3TgyJj9hAanJggqnVQ", - "sk": "EKDhpBgLyMA2LvXgTEgQVfMSYpu59hfp7qrkn329XPUG4CoZh6fr", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmDEsFudYcevXtqQvGLPjz7EDSRsCacoQWuZqTgCawLV7pBY5tih", - "sk": "EKE4STgjCRhsPFazfXhvYTssknXoGcCckPyi1d3VFvu2hbtSWupK", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq6NJgvFteipaAqgcWqojLgHDSC133RLg8mnn9KJ6KnnSXj3V65w", - "sk": "EKEPPRMAiDvLbs4FSYd2AXTLRngMNHDjcbkmjf6e81wfigqBZTab", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqnBGPf6EfMFyEW14ppXPjFwwRxmR6ZJJFmEK4sjx9mgjiFnSY6U", - "sk": "EKF4AiV6hNRdoW7XR568HVCmsZcBz8EFYceZmPQREDgekSMFJ2ZN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk4qXWs4f3EeyXK53yuXsxLne1YKZGjtAyLjSiwgDMHRGXZda747", - "sk": "EKFDrymfs9DVzYHwNXqksPvtw8Zvr3fY75Be5cmsmsqj29KFndDw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpye34L8Uexo21Zyjz7ivirJVGKggzcZLPD3F1yWZaqPNG3UQSfa", - "sk": "EKEBKFJsjqV71R2jUgpX8947hi6WygEZLXFfL2ug8hQjVCrn3SV1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjs6g3J5WGBjGf2AeTizzQKsLajK1hoQyFQ4CWVhmEb4YhVCNHP2", - "sk": "EKEC1jFpsqUbNQQ3UeSqdyGREeaxCwSNam283VaVuqFkwVEV6Fyv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoqAh6d6grDpoFBEftG5fcTWhHbwrNNaTAnJgcae5oVUKe5R7JBe", - "sk": "EKEYLaPLoR82e34AxD7rtrF49GHRN6q56gkemjpjwYwDPePZe4q6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnZEJTvFvVnBcAgGEvG9TiSxRGCMfdvP6oJaMTL5P51wQmyHynqv", - "sk": "EKFaiXmoFAz6VVozqMWtMAB3gsMbvan6ApNLB7jNQSkzQeytn7LG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkgFMUJrRuM2oQAmjhLRBmk5EwMNst3fYQVzDbYzCvhZJXN4h1mu", - "sk": "EKF5AmY9wWisgK2JhiDq2wUqLqLbtAJCNUmLf25ViX7ZSPhsWQaw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqiimVtXMpGxiPVVQTDDrSfxusuk4PuWPvtNY52sCWRuNwmYY6Xt", - "sk": "EKEAHDYk978hGoRMER4yTUqunCFViuwzPfk7HCqEZRxFkcSEF43V", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnxeS9wR2q3opq4K4f2LggpbKrRbG1HqKk4dhkqqzd4e9yt5Apz1", - "sk": "EKEGtgcRq2G42zwPyhaVz2Fpn76xNoHiJcNCddFmhGwXxbLC4z69", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmqPXWvHvdrgmQg4iTutQBYbKuzZGzcUCwuibGtXcbgs1drx3x4v", - "sk": "EKDqfou68pD5GSTdLsf7pS15p48UrSMLuur2a1cBTbhZKBPLhrCE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qprWJZLFP3CB6gszPXUqGqv4sgHZDsXPmv6B6ja8aJCzwpDP7pjA", - "sk": "EKELvbXMTY3nJ4WAa6gjJHfB6S9EGtr3HcSgSt4sRNBVeNnTiPSC", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrGNdCxFPMiSw241t9r6UVV51iGcxX2hoPXAA5mjqh8UbGSeEoGP", - "sk": "EKEMWm6AV474RjeQ9ZBJ5APLzaJPS57qUYkDdJik5U9rGqadCELg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk5pDXAgzVhY1oYBEDWXG2YBPNWMGt22zREkqhY4VSF3oYM8zaoU", - "sk": "EKEVmiMjQaq8iYdixWmmtFX7YXGMdmFGBQYdT43jveFT6JNroNis", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrCF6B8GiW9TyJ7RUZ1W9FepaJdtQ5oTknz6siSHeLmNmD4kYCMC", - "sk": "EKEcc9LndBzx8uyMBuAyHhjcZmZqnPDgQXa3f9kY3FTALwmZMBU7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqxrEpxt71jNmz99mxXQCHHqWtWmYJyQyoGPXcjXoFxzDpUqfpEi", - "sk": "EKEckcTh4h9NWjxgj6fT5GWDCd9KRDyvKpjcZCf4cEZBQFgXB4z1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qocG3QJ8rYrWH5sfsLzvM6MXKR8eKH9XrHLPNQteb3LuqzUR2Kh3", - "sk": "EKE2T3gpEBMcu9vfw4xRMzpEFvJF2WHhk7KqbokVakWHwPjDf7Bu", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkARSUhqdnT5Uc9aDGPrpTcZ4nFQUCsQP1ZHHukncP1WmHVD3X7C", - "sk": "EKE1Ldm9QNQMVDwGSUF2HXW2f2bEGBmaLeLVRKexapW1HRzDPTZS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoSMzUvd1qZALUSXzyFMC3myfZL1vwt3GNrykC3eJvjXauirY8Uu", - "sk": "EKFBD4YC5gva23XrUmK6NyKaAb2woA1S3c4rvhGyz3fJRBE1ZxR8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qihXq4P7LaHCB5kvPY9cV7TeMtbDWqAsuKfepDcCPqaLVBfc3wwZ", - "sk": "EKETkbqEvHaaQLJM1DGEQVXa4JXAkwTMoGZD59brnw2cmbimv6zU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrbqk7jmYzNK2q6DPHtgBoQTFTtMeLwyD5QVTrnzyRyDZ45kWoga", - "sk": "EKFCfAT6xVJmpV1MbUrzumF9kqbREQ2bCS5qcJCU3pE9UWD2okYG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj8NUesffVLy53eiRZrAEhV2ZfsTQeUrKvZvsc3MG1MXZSq8hJC1", - "sk": "EKEqFM28MnsayoNnDV9FyEuhtLxnMHCBJddG6y6vtScpkhFeTChj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjpYQhA6Nsg2xo1FWSmy6yXkfL3S1oNxZ21awcFCKiRH6n9fWqPJ", - "sk": "EKF6Za8RjGyhLmWSHCqw5R5kEVK7ktTU9mVgWwZNEvFHjrJdjucz", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkUpt1tZeFmyPmNkksPhdqCnmnPGudNF4J9A8NTfLRfmG9Z8kTv3", - "sk": "EKEoGNQZ9jb85Kj1sZ8K1c5zEJvQ2XpbjVbjRhPLFdo6L6QA1MUL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoqqW1pViUXKt89teHc1rokQ6LFpYDb6MfW3roNTEtHX3shDYy1M", - "sk": "EKDx2a3xS1gaDX6eV892MCixrjvJPwfMGSNDVXc44Ggfi6P5zTNU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qigtcYNcxKbLCJKLUuXiMsvPzcBLUsfXcZwdeJMCBGM2GuZcqo8Y", - "sk": "EKEmKjs4SaGvqy7ub6ojeV2KrJ3EXnEgbyZttJfJayYyxRwrzDkD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qopEn7apwyxrYWG7KE52qZiVknxABmLhHDd9Aw2Y5dppbgocUXPf", - "sk": "EKEUwZqhyTetogBu5BrHLLuRmRZagXBpRXDjUE67Xp8CWCeFqgm9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qipgQZiF3XX23twb4a2zGjmDKoUhPr74xUgjpRerCmoYwpfvNqxh", - "sk": "EKFKd6UR25RK8MY7KfaQvoAUhAzY2GSnEe7Ngrg8v4pGTihfHekF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj673Zo85zDvQbpA414T8UoNt6u2jejhF4JM8ELTHDKVw57ubuYc", - "sk": "EKEodRSCQvo5TR6badaz6vBMXbGpwwrra15K2ChLHxVkfj2C5amM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkAF1Vv1GVnYmGv5Cv8xXxX3wfst4ouVSpGGda4muPoE4ot1FUTr", - "sk": "EKEQXKFaNoaKit26Z9N7pNB4YrFsXkkonuHnQPCmRvwgogg63bsR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnb4UQnbGzWpkbMLni32V5U2TXQ5n2zD8SmXXQBuq7HYKNifXtex", - "sk": "EKF7kHzYDxUjYUkksYcLbA7RdyuhhM3NLSWBiMoNMNRiAxsJFVYo", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnMgvg3ik3iJcGX5ghPdpDTabJGubz4MvxUPfKAyokNZ7BBhS1XA", - "sk": "EKFSVzm22mWGriyY7jJs9DwZrpjJWBDedp5BbzChgxhFbnPzknWs", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn51GbBAE63uT7WpNMpNdgrXoJRTXryQiV9bA2vSMxuwNMZD5VcG", - "sk": "EKFFtiUBcTiumGzaUdTcqEPNmAQ2aHSS55u7Dkr4KwsNcXDqVzz1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrwfGQKAq6K9bGfYsivdN3NNmbDqD8b5WiMaTeJjXvwo9rMwhXbr", - "sk": "EKE2edj9frPvLN4hTMZj2sxyiqd82P4rJLwykNhvXNBUcFGwJQ5D", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk4ZyEJx12urhvgYwTqswWAw6KhiJfYxPhrnG5eWFCj4a9Thu5hz", - "sk": "EKDtBRxHtC8NX7iSrd2boGE6vqySKudX3YtfsXVXt7xgzygyXubw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qovyf8bGiEHZJVCbYWdki2MyuQmCbyawdWLXBkhznA3XHiAP6Dow", - "sk": "EKFM4g2mJYEU8K9L6937SgyT2cp3JN5vWsJjfoj56bEAGdUSkhm6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrBNbJnwr7BR2vkdw43CjzctaLEvG66oNRH9zB72ABcQRFBzYKCT", - "sk": "EKELQnsxLyJeAeQPwModErWMkiYsaGecD9ac7GhRUdzeACqFG4em", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq2i8MaZMZsPFXaquBQbJTzPoKWm7hDrnkEVUaapp7bi4cGP8FhQ", - "sk": "EKE8mzQjutUS3oC8nvWc6umCTi5iTXjizuMKEKQksFFpuditoHJr", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqTfjRkVHzaLETkKVbpgdUbubo9AgC42DnvDxRYYheqbjpwsR7Kz", - "sk": "EKF9B67EuikBUQAr83warPbinpdqCCHWxYekjXPiCeGz6QWNqzVS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmTJhPetkdA2mN2B9SYRHEUzTnH9g7RbEXqcPhyCprLgr4Nd73Rn", - "sk": "EKEeqJTg5vMXN1iYmjanoKkf6KSCYdcn9MnNK6yUBwNGxkPXAD8e", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkXnv39yB7NqhFFZUjL8CrrFe3UT5urxJdcc3mPU3csLKJYZurDq", - "sk": "EKDhMJ9QkdwHSrHFvGmiuqK3hsy2Q2eJDfxZ8ifUPrXrLncfm1yn", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrggeAtGa6hQ19Ntf2yDRhAXvfnrcm357F4BefXFTRFGBrjk7fQF", - "sk": "EKF8BQKy1GyCUAHEd4ajQee3CguD1LR19uhuR9hn2AZtjthRRXDf", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrtYwFcPEBQgMp2BNV3KrwXV5dWPoSdbfKg94GFpAFXubFwgnz1D", - "sk": "EKEyS7Z5FKD8pX7u5HdYjcWnpTBGstbN76SqiN7SCtSEJMvPk5zY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qohFLZRsF5wJneepP4XWBZjAuLcH3A9N8RNQJdUNf24ESpd1CVaQ", - "sk": "EKEA3Tzjit5s5x1fefYzuR4M2FDp2ZscXL8pjdMq6uo6GgUCR7ma", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj2jAz5uY9DsUphsmmsBkycPLkuphWwc1vQzFnTCwencebPeVDSQ", - "sk": "EKFG99zD9GkdLy2wHYzKqSVU2FQNMSqXPsHKZ1r9e2pPahJXWW6S", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmLa1ZekDafWYQKgYtJHq6eeWmkQUN6rhLXn5KfAv1mN5DSCYBm1", - "sk": "EKEscXZNiQjCXPgXZjf6Dyirfddfa3YVwN2yTPUSEgW9yWSf56rZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qivkJmR95t1JjQAxmazCncro8frB9Ev6awZrCseBXFeHLZAcPdtv", - "sk": "EKF2x6FLMx7bzdsdev1yUJcFTMbJo43bBWHgV5Ns4Xk21ytde3wv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp6iQB9rAPkfTYFDtMiGXevdDBU6zhcR3m8Qx4MiLXYSWh1GR7Gj", - "sk": "EKDsByd97hNtB9qCQVH9sBBkKvnmDTFU4ossEhsUzWWMebwRr23P", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrVfnti87ebFCChhdn6HxeWZaYY6yeESciozqZHqYnVo8APHjw59", - "sk": "EKDmWULNxbuvivpbA541GHzaFspRBmToVK5AkTsc3KenvxVu6brA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmgoLP9rJsTcz6SXa5HxbYzP6HPGipa9ChU3nQ8GfVNNDRx1eFCw", - "sk": "EKFNXxpnEzbZEte1GokoTFTEcnoqfCkDFE22CTpK96PFqKQ6t2ho", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkcZxRguVnsgAuZxsy7hd1ZhhyNnCpcYvVdotZ73gNWB3qh3R1PQ", - "sk": "EKFD7VtU7h8BBbfuG4zry3mqwozyyqYxZshwWebdWLaYLVp3Jms4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrVyeGEz73yX3ajvn2cP3MzcmNKGiszoyY3V9EzNbD7wQwUth3Mt", - "sk": "EKFc4YiLZCNXu47yRe69T96MssbdHRmqxdLLNLpwd2EwDa9xoNGP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkMrgPAZvmsoUD2u5wiSJ7CgXRT6VqAZDS3qjRqHssfvoqNXpeWf", - "sk": "EKENzw65mBJpUiWG1DX7to7zywgBHBS9dSpFmJ7198c3K1gbfC2b", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqMiKXzmGbbSySNEmLac7tQFUHGzZVb1i6cDWBcVAAyAM1SAtXd4", - "sk": "EKFQN7rXdT4mCmNXjPBsxdzQeSvXpU6SARXvPSzTrq2yVM1cQtPg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qndWj3wRWp7fh9c1L53MfZhohbkDpRNTLqS1H4oyb6xZ1Gzh9HbY", - "sk": "EKE3npUU7BeNdj9RMkxXZNs5ri5C4oPzphkMHWCQ6Lzu6YgxuSbg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqSpZNCHgHKdcj5uszuL17w3zAHLYgynXr81ZeeM3tCFZZDoKuWq", - "sk": "EKF2FYq3fD8gQJSUhJKPdjceNvqCWXkgJxBxZd5DxJkqNs7vosjZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqkYCLaFDmn5ptdPVqQRAY4kdkyxRmAqeh3nn9vJzbF5gGjsSgDZ", - "sk": "EKDpoov2DNs2aBLmm2yZNwLKHDvG42EdwPGaeCTrhm1kaFHc5f1g", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoqbKyQ3MQoJaVBqeBNEffQk3iFkNXei72xfbrc2HDGSKczBfdK9", - "sk": "EKEiRRtop7NtGs629MJRUZFpZG8xN1A7uSxBDGpCEFthpZgWipvz", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpzbpCk4BSrpxaxmwszG1qyv9qUxQELBAzxSVJu6LQ2UgCFdaZte", - "sk": "EKEdpp9eL8hnyHex4L6i4VhJraSVDobXpY7wtbNNgCudjprtAdrN", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjTAa9Td4jm6G5md4Fhnad2EN6VjTxDSob4M9U2w5fZh6tG1zW5P", - "sk": "EKFT4ioSpCyCygypNXJijuh4j8BQJEvTbSBbmY9TP4LZT1x2WR3t", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpWhV3Jua4TUcQVapJojHe9igxjmTGJY65fsT1Ha3vgmNE13v7Ry", - "sk": "EKDw7Vdof9HEYuW4Y1Te7hG3Dxh4CcuWgaeowC5c8KoSXSnx5dJv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo41ghyiiV14QXExMsyLDNH7Zmo9Bp28kETcG8xxxykMMgCCGZZp", - "sk": "EKDobx1xvLJguwoQEm9yaNr1A4WwbXMBfEowjv9XiYQAAVs5QUry", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrtKs1Jm4Bg2pJDvRY6BUhcWzWyAVAA3CyYEyX2yAd9huvDXt8hN", - "sk": "EKDoCs4nCnKzHpAtCUi97mNitzBQdXcr5x1cEqznLpsHhKTSdJKW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnHgCkerheahM8W6oE61dH225mWAmT2tjjE7fPkSYUeroJBNMBN5", - "sk": "EKE1qnq1pAMWRZMBsjd242PQo1qR7bdioim66iQEYcFaDC1HSdhg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq3uqq7fWmEBeQdJPuDr8siEDAZjNtg2b7grwQM2U4ooJgcWksec", - "sk": "EKE9iw6Pz8TZyhZE5Xq2f82oxujDSbDR6yS25hmrZne3g5typbuv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkwYJhokAZ79TstWW296B9dbr9EPUFTFcojcAYk6u22FUmYfYKM1", - "sk": "EKEzqrFtcrYGJA3bNqGwFkF23Em3pEtrDepZmKx3gQCBnemAEa7a", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrxwM7r4JKqyBSXnbYsgA15QnXSqt3WYwvzV2uvqb6qLKAjhidSy", - "sk": "EKE9PDGB4MLtJ8Zhgo22PUYxdTXuTLpBWBS8H8Hu9VTQjjw4Gyqv", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmchiTmYoezJWFche9J6kJ5SmjoT6St2ZYeBL52VY1bE3jmjKhSj", - "sk": "EKDvQPii54W94W9b8ZFEpdXZ2e8wZDfUPj3kBgf4drXH3wpRD77u", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoNf3VcPxQEbDmaxm5vBD18CydRohjACFVwQRcMJcCUyVonxRULR", - "sk": "EKFXmzmHFXGgboW5gF83h4sQ7Npx8B1pCMg4aYPYynZ9S14AAUQX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrNYUDZmPQQNSWPg9jHcqjbzLrx4joNQQ2UzfLZNyizKiEZWkER3", - "sk": "EKEmYKCvm17X7ynt8TRPGkdRzqwVLCi77bbbYUf8Uf2mJShbp8Hx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqt6wmeo8WPcA9KNFzqmCCng36a475F32ZbdBDN2ETADXGTV2aNe", - "sk": "EKEKQ4Rd3N2QCZqYxZWpAMuKw32xcDvnTtfAMZkqyCVKXeYLJ7Sb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqc2h6YmixD5zpTdktcrnr5wt8MU6QJiqkLSErozzB9U1vuVijKF", - "sk": "EKDouvU69PZi9WyMJJVECKCzrorWwgSFQ8TJqgVeynmF57tiTc36", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qitZMSPn2ENDALTDCbcLiESL9vwcUw3zEGosscvdaFUbjgWZEJ9K", - "sk": "EKEyEpTCo32hLVxvrPjtfNet3gJ2GFXme5LnQNi6QvsgtFRqgie5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkBYQ6yhtKrxqFftmc9vBZNSjSkMFzvLCA2bJammXTbjjC6A2Zyq", - "sk": "EKEuibSV8QoveTAbWxqxrznMqUBYrCiT2qrYSmGxkgWApzHZKhin", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjHpY59komWsFgsQabxPpAyCE2Los1sGwxFtLUB5jqEJYtDM3aJb", - "sk": "EKEmVLAcYXjZ2jWCjhoaz6XFKJaSxMMdChpu5qXmRcHdg7HxgXZo", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpMa2XFTPKCPBnWrpeL8xYx9i8JrfY2aAXnp3etg6yJTFz2WnJs6", - "sk": "EKEfqnqWNYmvK6kEsjpgyDFD4Gh8jrqwKvLVRJ6qkMsEimfATg9D", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrFPRZAMtVatCy55hmNr6QGHPrMZ71zjJBBY8w9ZEyUjNg1uLSW8", - "sk": "EKEAzRjG1XSUWFNothNV43N6KaXqfUCSErt99cStoc1biBN7NPAD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrmPp4iSM8T9R9Boy931WCsmmPK557DeMG2jsNTkexueCjBbSBJw", - "sk": "EKFXYKifRGeH9hScEgdzLHgmnaZzCj4HJzbN62CT4pPhwvtyuVjt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qit6TrCDz3AjadvEy6HMRQWN1FSNy2AGJETeUXoZV2NMwPjmVoNX", - "sk": "EKEZswX6f49riX5am8p8bQCq5RDAe6KPKsGXHHUpPaD38KcAU7pW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk1bmnxNf3RLmL8BNLaF376n8UPeYk6CzVmxnfXZNoSzygUfmGEy", - "sk": "EKEaXddGmyWJHbYFBSYzqKFojbEcdcENFD6wcGFQDaGDcuX47s7b", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoqWjZvxMQS64YTTpFb2DEeRVa7xAfvJ82T8vNPsq4unYmmnWser", - "sk": "EKFcmJgV494Qq1pSGzGcVDMh3rdpK7BvHSvvuGHFhMGfz3ZRoR4P", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qokGWccm8RHbeYMfcFTjpWjfdpYGPXpfx4fXVBGfRAMeFzA6hQe7", - "sk": "EKFCW4hRCryM8aCZgReT5Pn9JpD2w83uQmeqaiomasMxKSQyuarQ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkvDT8Zn7wrL42KEhaECzNuia2T5S1ACgiNX2hhF9bvDLu3SD4a5", - "sk": "EKDxpCyJsRnCjo2EjkZ2W46bnVHPRx3V47YDpqrKHspPKYBLBX4o", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqhdM8KhZruowPrYYEsowToKQanxJFh9ZfFjegBYgosjcuLNz8HP", - "sk": "EKEa1Ma6eq6sV4p6WYkSXpBGVUtBcDyAkcSQRpJdiPf3p3YqUsYS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqcaeVp966CZdva2XZe6cthMdTaYEqzsYMPKq2AmigPQVWH5dZk2", - "sk": "EKEmncv6FPk9RMVGrnMLMxZxWz3MNgQUiMgVquYqhq76VgkKLcPg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qivHiVTwa9MMftsKFfMoYVXRGTStTm8QiPMZoYDVv91seehCPHen", - "sk": "EKFUzJq26nLnjVejkZ8qUedzUjZ6nafsgjPSRqTsTqHY5qfVPDYf", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkTzSpfLgQdxcG476AGkCX52G2kpAh5SGhGHtnMzwMmDnyZpLoRy", - "sk": "EKF2WuU71d5vnvoSbGU4nseY4XZvMtN8A2xSxno3D9BCxkZhgpFQ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qicpus78fMjeMtKvABigK3EQHXrZbQowXRWZBC9fH57pmGgk4VR9", - "sk": "EKDiBNx2hXhYqE4rKE8vHmjo14xXfAZH4CdFaypvvMBsnHXZhUJT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrCwXxCr3o8SiZQtwGuaatmJ18mM1p8Nj8SCQagn7zq5FabAegWp", - "sk": "EKEKmK6uzc4vHeyZEy1GfqYboenueZDTRSuENwu5tJhHmhsaRue1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqu5UQHXuFyJqyv2Ww3FncPSaG53TR7FsfvyFQjQDxdUNPLKheAe", - "sk": "EKFcfwj1F9cyD9yqZJjSp6wkcuYvr7uzPUEGLHyzoCVBbpx4DY48", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqvHJYAUzPAuGsnqPLRE9XFZWfGM5tacx5SA61CFMLw7NHTTGpkt", - "sk": "EKF5Nh12PeJLftGbAoT65bfNhHWZvvDTZhaMF6ufD4NEhMtVfKkr", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrWJvC83RT8zEzbhWUHh6691qSC1S4kENzvjfs2bSTSPtceNTfuY", - "sk": "EKEdHeDvU6wPPqSNzZ5RMVs4sNx4pod1FKyZoPqN8vdbkXxME4B3", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjpEnhA2Rx8wC1YzzrkMRgB62hSjRdH9aDyoKhh7tbH4D2GvQkXo", - "sk": "EKFFeMJEWzbLcFgysG34y1DVwVFRRPYkKQwjDbkD9H4uNhmJwYjF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqGEHKi26HMRxv5q1wabfvBkyzWaR2W7i4Gd2zmxYdZypfVexF7h", - "sk": "EKEi3WNVY6yogD2y3rw1738qdAxUndA7oS6kQjmUnmp8TfWqSAzm", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qohmUJN14ffuuJMy8hDeyDoV5Hs4a3bzqMzQGt44WT2HSafC3o3k", - "sk": "EKDqNv6THK47T3AuMGaRT1ee6Bsvac2ZdtttqMHnXfJdXFtxyjqU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpWkn2kGU6R9c2o4JWNCka61x7V88giRWLQd3LhwQzYf65WLmiEr", - "sk": "EKEbisBcSE3osDV2tjmJFHLmvKVLbMKCWoDV7kecDXEprKoSJ7h2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr4ZM4wK6XveoGhfZsbbLSRyPg84EAARg6yCRp6bXuaSNFaXnaRN", - "sk": "EKDmgF82H8mZCeqYJ7zs9FQeUFwWCWPtNVWq1ktno1g41yuZ6T7S", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpZKmAhnoQ1GRkL8wJ6A3DYJCu8jxk21wzFg1f19Y6Duzsg1V3gp", - "sk": "EKEihXSJa2qaDZecuiZ2yf3CCAP8rhHsi6hmNTrwqh1WQcqLQnfQ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq8gsvYanFCiBHDfB3JeoKQYHwvsFd4HwHVkDEXewHbUHL6kPcoZ", - "sk": "EKFEWmdh7vAv2qEY96ef4jeQJUCDULW1a5neYuykfPzA2Ho9TjWD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoZG6vX1gnHs3qkMzpM1pGuwW1XUDJLrks41brhhKbnqMrXdZFyq", - "sk": "EKERRFa7tEWa55paarEVXGU336tWgWTZymg2up2toiFanGfbftVJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjvqvkAyDWw2UVPFX3HRiWy7KkCpGSbPbyRkmRdq82UjfpTKoKEA", - "sk": "EKDoha8fzdMMJrnuJTGXSkrrwhBJ1YEzN1gH1ZbqF7UWJ7h7GswL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qromn2W2pxh3BDLPPvDwymtveNkaEnJdvexjhnkZ84yFofpTP4iq", - "sk": "EKEwuAQV49hjnVHwpEDmsqk4D7gRXNBapCSZPPW99qYGDRTZP9A4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkojMS5kr6XxhNimAjsayaFPrAdVKW6CmWJKEbjzwtExXCrtLJKF", - "sk": "EKEw4PHKLeeq64opBB8zMaGEyQrE2STGmYmf7h8Fv9TcngWWdxwG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qotATyYvgWieD2JRU2f4VhnA6Ucsyvp8UT6YV4aZqSZZLkSAtt2Z", - "sk": "EKEidTFnnWWd3DZmMSE3c4UwpCA5aQp9wWaGqzUJpQ7z5PyjU8MU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn2fycPwxZJNZUdG2h11Muf4JEZmarctiyQnJy9dzBQj9kwzyoU5", - "sk": "EKE8G7M3cXZUd1okHCDeb16aq2nV7HfWgmciYRrwJh3T22Jj5pZn", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qma4d98K1sPHqrav3mj5JGefKyChHGFgbkDeEYuVefQ7WxK7wqGF", - "sk": "EKFYuQwEoJTXhjwzofEXAgMh11SEjgmJ4sHm1wAADs7A9J2hQ7sj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpP6xBpg8q7pr7vW7PtMivA4Hu1RrfEhjniZBipnnwMWXwyAbKuE", - "sk": "EKEZf14yZ55WJektShiHeYaRD48AiBMzmMNnspdQZWo2fnQYSY12", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmCReMp5orNEVgHcrtK85QVjJYVJq3j6PnW2Mc8F2Mq18n3B6RNJ", - "sk": "EKFLFE4yh1mCD23mf94JuKVuPp4GYWdMjG7Y1Ch7RDTcNWPFVj7A", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnMUzVY9zyAXooScTYdbAAVuWzC8V7QntwVrgcRxM2FRNAFUHdKc", - "sk": "EKEuW2fiyMMHs62yKuKnSR4nxmV24G1M22mFeE6VZv1C9t99mUJ8", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjY3zrCW1HZDF7VdQ7tSLJZsQ2c6T9oNP6VeWroQ1fPDGyBZvAoT", - "sk": "EKDio94gRefV9581fZciaCRhzkcMBsBLpFKLHA1RArq2MU4jMbqZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpnp9WzC6uonwn9cnK2TKXwg6758bCSLnirnRVCAMGFai5tsNNPH", - "sk": "EKDz4b9GZPUChF1oknyGU3ZWBUNK1vGNhxhvBHADSZ6TuQZQesu2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnyLvechwAkYk37ZbpePCM3kZ8W8wyxaFYcZQUtBmZ6Sz54ZjBDr", - "sk": "EKFJREKsvnXAYch3k6gLcd2Fx9fnVkehNjYBuarRRPHyo7ya3EUL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qroMZb93Ez7amT3dAeYsSmXzM58WbnvVRJP2uGU8CKQiB5Pg4jKh", - "sk": "EKFDahBx6tKyaCDCJJu4Mdr38gHQerV2Y1jNHraDGK4K56eZr1fb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpcEkU1aXgcxAfHJtxTL1Q9VxwYBUrYgmbJ6GBKPH19cVK9TSX2x", - "sk": "EKEhjv4AgrMDp1BFiRwx4b4DhAVAc13Mi77zUfSGvzFjzFLK7bXK", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoZsvxV96WCJAKWgsMGFfN73pBKuDKD8KU1Wz72JWvPnHLi1ffkX", - "sk": "EKEKZaVvbSqhW9XyVm7w1hyWeqRDfXPSkEoNDAm7VdEExdAT4RjE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qopCC4NfZiUcUEvkzFfs3JcgdHE9hrgTLnqyxfD5mxtVD2H8sip8", - "sk": "EKEpT1BJKcZp1EQ4erLWadP9vWtmgQ6q4Yyd5gFmbbj84zUPsMUa", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjFg5f47Mkhyj1FUQMU6xJM1Pm3c5KE89AdqqpBH646sSGXoaACS", - "sk": "EKF3R6mmsiUHiFbnW7NHciJuUVRKD1uLoVLio7PHQvmLsiWFPH61", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrJM7uak28YMLf7mroXXc9fnCXfKktWbVsG9hprDPfvnvCexMRow", - "sk": "EKDjHYEzGDjanr9ttQEcnYvNeAEsPwssWRyoqBekqKkd9A5b494t", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj2mvUa3HCDj15XzXD7H1bRiZryt94FAKui4UwYSVGRfKfE2w4nv", - "sk": "EKENrv4YGyCwbD5xJp1kGj8v2wajY2rYenmFn9nPFryCVQ17A1Gt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjBQYop6eMZayYnVACn97ZoaC7T7fyDyAq2zXnfrWYU7uCeBkGLT", - "sk": "EKDvTcQA2diSkTiX9cEfQM2x9cE961hBumpF7emdf1kdwBYxSYbs", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmD1mhpF66nBDN2dyVi6nZsD5psy7aDuaBT5zacVMViZ4x8LrDts", - "sk": "EKFNnYpGqq2KgjN67mG8dZpG59X1FjnuMEoNYqUrV9YFFP7URHBk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo4Mvoo7ashZzChmhLAAFq5CGnTUFhDuPWzhDzCuJXtwWp8V58zB", - "sk": "EKDyuE8hGNqXvmtc35rG6ipHTtJeHDzSEMsZjaNypDF48NfcocUd", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnS9vPEHE5roeKaPUMHUj3zHNBsWpRAZEu8K4M2s5TnPbL12qiuT", - "sk": "EKDjrGRcBTiP2yMy46VY5gm5BJGQLZx8zCaQDJUqWFVJuE7gyGbb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqaPx1rMQ2txBwgmc7BGnVTHG8JraJyQHsBcBEAE7FgsUAZNGLw2", - "sk": "EKFd6KaL2c5XVGzv8abqmDthJpWCQ41KPMztRCD14zwi6qun9RUi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoNt72dz9HcwLAiGn8Mm7Fr15jVGY471f6NdtTbR553wt41P5kXA", - "sk": "EKDkU6Qwgeh9pPEipGHJ3BnF4ABeEjEC8PY3KRtfzgLTTakMTFpf", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrjDeMV2ztqK1ADfV4VcsWqz8T9mu4eQajucviuSJB2Wves6B8vs", - "sk": "EKEukz25uHwxirHqWq3T2fZPpkkhmGA5ALKxHxwVBVjY69fXMabQ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqUVh7hkFng9EkDhC4aFFBU9h4gJkVhMhR4NTPj2MEixYcHiUDD4", - "sk": "EKEFdk8zWFJeYQdsRkL38xS4C4gMBF4PaUqZr9y7GE8ZCfjJypGT", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkZDCpFQF9a8rwMn6U3tunTEYXaamNAwFEyUvaSLwarwoZ5EGE8u", - "sk": "EKEMAaUPUSeHexB5Eqe72Q83QF9s8pDaCdRZbwtmA4MSn9mkNeyB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnv6knhLCY4JiaxhdNvksC5zs5M4t6VQptEoXopTbLLcgnSaoM7x", - "sk": "EKFTsRpLuNKBHrViXTqsjH6b5JfnhzUyadETLvvLXhBLPeeCyQgX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjYZxCr3tkMcN4vfmHsvdF1nTxCcCpZ4d95oKzScZqwzHCh4ShMh", - "sk": "EKFHs2QtgNh2wZ3Yd8TfYDPcBMnu1w449fLDD1d5JugThAQAHAis", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjtfkLnmyd1FCX4hYc5ZJbUPTuiQiahRpQXBpuxENQuyy3ddHwGr", - "sk": "EKEzfhfpuZ8d24gK9YHfQ3GjWDWD4cZLjpDs3oQFE7yXNEz79N6v", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmVShqg8curo9CXrJCiPH4t7SXwUsJUJXTrsMnF8NJhSJb1YgSkd", - "sk": "EKE2kJ5KZsH6ZuzVF1QhvTbhbGH6gXd7TuTYYRkySJWyLze6YsaM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjPLcw24iKwD4xqYRocUHS7AqWBJbYgnxMUYypCMX2Ua8aXpRcgR", - "sk": "EKE4zTRB7nycZjXszoNK6gjFVab2uxDgLXWkKBJGojNyHsj4eFXy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qicQefG5YBVG49UFMyTS4rZJYZzB3V23rLsKsgHKPWhL21ngAb4V", - "sk": "EKF7gGvC26LcNaxReYgpkhm8aZNz17qjRFh7bPrYnbYjfFLDpMrB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoKmoJ1bJsHtMbddZYrLWpqGXB7EAMb4qr3SznmkPFAWMBAxGrWT", - "sk": "EKFN1H1eXEBmXfb4NRwTXVTb889FSFCGxoheLVLJFiEkexw5VqZn", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkfD6FV9Aw9yayLthxm6DCf2E7o4s7rFj927sQRcoPuBv4dXvvMe", - "sk": "EKEHboXJ2sDiE8iy31f7Sv3hDQvzxH17ajNgYZQRjo9xwtDfXyC2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqZX1j4DRYn7hWdfLmHbHCYYRp56MfUdEyNNBeLjJn9wJASF5wUH", - "sk": "EKExCfsVTwdepB5TYHDPH7F51x3n2yQqnWxH9jqW32hRxMJTr5LL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnpWr9GDk1LVx2Rr1iaBx82e8B4LCLQdAj2TQUdzTCCMDKFsjYhV", - "sk": "EKEkEyqJkoNKfShKAWEinbQXgUuL8d5ZGF3hC7svAymSvCGtUan7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnmjrkjM9o8hPPkpcYd7kDKUFtadfnHEx67EZBE46i1q9Sy2y5ZL", - "sk": "EKDxWQw7bwH3Eyfyy7MdrrJuFw2JeR7385Ft1a5HfeaxwnzF8LUe", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjv6eg2PuZyvv7tEdvSxAD9M7T5pmyrP7HoLywPHn8ssQCqiq3Gw", - "sk": "EKEHaSbug3inZMnLP7WoAK2jYkED2zV3CKQRicysaXYqzKQ5VgWs", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkkBmNXw6S2dUCBkKKpDroxJrxBDux2QS8epzugPCWpDc2MKL2CJ", - "sk": "EKF7Qqi5QVHw9KbW8PKkchw7EDHLBnqVBB7znx7UQDteZB7Edwgi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpYda7Li9nUkbfLiwNfvrLwCaGR9Nkw9o52PFRhKH1fu1QT4gbbo", - "sk": "EKF1NV5p191UGjdQsowQ4h5fZUtN6J7628uBn8U8Q2A1y95nimoD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkFvc7AVPYpvkMmMSEUNrGDyb3ZoJzc5GJN7WjZeK9Bhq2UpUW8A", - "sk": "EKECBz3uDLZkQAVEPpBq1UCXL8FapRXfxuKafp7GYCtPKLePTa4J", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqSCubgZQWjJX8K5FtXbxhWrUzXMWkE3boQ13beqc9aDjuJywaSw", - "sk": "EKETQQnFZ8R5wKjCorB3479XPC9BGs9vQaQjzfw7B9FMehtxMTvD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnQNyHysZZQMQaoCsnbq8VDoRRSgKwhdJt6cKQjpXR44PzViVzvX", - "sk": "EKEVuU8Zjd7PdsXiu7tuQfEG4cfHY4ufnN24vyqvCDxStXmGLMsd", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoAbUcjRbm2ka9fz7dkBoemuiRLcqpwumGBUrB3og3QTJZDwmHmb", - "sk": "EKFPc9N3Tx4VLE1C4dJ1J2gTUndUdVcs82CTnGBtvdaoYgCQEXvJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqkqL4AMtbYzyvbHUP4hQMdvhceJVXm5mzX5WCvAHXWnXsbwKCA2", - "sk": "EKExihYBTuwbHmkUz51QmyLo6iTKZjNMqmJWh6Ck5mZKRHKjQe5h", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr3UKjDoQNjFNfYPFjaZsHr7ibrrgsS1sMVF7L4yyUSHrZxsM5Sn", - "sk": "EKFZEGQyH1PbVTquxduCNj91beNR58iDBNUdANwhaE45qhxa7TMF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj56HvGCfvS1VuHDrWEPLgFUpRLyRyfAk6779FokvFDUgncciR8R", - "sk": "EKFbdYjhgnVAF7bFLhhi4pEbLTKRinizCKbZiNvavpCHnZCBJCvR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnJniq4hy6opaQf8qSR48r4Vce6BfY9nzRs6F72xbpEjdyDkXPtM", - "sk": "EKEENtQ9JyczSoqqaFUCzRDLKAcpPAsKfWPkpXh1XwEzutJjR2eb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoadF4Yobtp2VAfcaP1mhhYoF7Z6FncftCdUHq8ZiPy4dktMVZAd", - "sk": "EKDkUYXnS2jMntjsdAgate3tZ7cwbvuVj7nubGAD6Gw4mFzCfA8B", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjaW8hQmhSq52JkxXnDirScWRbsfQyokNeZB1dCMjzhJ89GceMcX", - "sk": "EKDm1ehu5psDusZoh6X7vZc4YtmUUmh5THA9V5Be57EEjs9369NF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnYQhyBxudMChcpjGcZwCkgFhoCCpwXnBmEAvqkat7qSpp9kkKft", - "sk": "EKEyroe4mTz8o6eFWRMjJhinWZoAHeECEEfU8L7MZge6CH81VZG5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj6mXGxLC7CbX1fMn8uayMWf2y7PeMUDmUVLtgNgos51Th5jvpeb", - "sk": "EKFZMr9fsdr1VYozj65fjHHyL89J23uRyMWrwQU74XV19cRWzzSZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqw42USAzMwg6HnxdzUZxkTkzPm8A94SwTTafJsffzBaCWjisfBb", - "sk": "EKFdbLY541TJVVTcaNNE3ynTArJ4vN9m3KePUL7Q2RLAAg3pDfHe", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqBTxVyHqKnHWm6bWGQLTZRkFYtGuDsAAUaTz3FCSXZkwHc5cMyv", - "sk": "EKFD5oYPvzm1PaJZYHvYyGT3LNENkG3UR7iJLKhWit2hJoZoaGPV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnMuK6GEdpfVN78sFTqDrsCn6W7Sd6te3UorM8zbc4xbq92C3VVQ", - "sk": "EKDn32XJwRfVMZmjXVfZF2YdGYNc2Ey47BgkEjrBcKNY9MRMqtzM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkHVRYuazwxf7dQuQUWNQo5cw239edDxMDJfEi93SBvVLmKvPu94", - "sk": "EKE2PKXXsmoA3CAACp4bis8VNQ5S8jkzyXL5cemvYGJG9uejtihU", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrRa9cZ8GFesk1MHqWaZ4j6H9j9trdxyaXCoG32YTpUG2Xi76BYW", - "sk": "EKEHrqkh4AtZNSgZ4EQDdxFykxX6WXMKPQH1D3VYQBVaepB6JgX1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqeyfCMdRYw2dpmoHyL48tcEvnLYEs2Cp2Z9F8DbeH7kubQgcXvR", - "sk": "EKF933MmgmpvqymF94xvYEB2PwhZPdANXKrym2BwcmJxrv8xsYdt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpkooYaUaqNHgmtg9zRiXi32T4fomZ4uDL9a24TyEH4EJ7KKjPAv", - "sk": "EKED6c5zMwHqTsdzVX8itmDJa5RsVcrs8sczur3KM6VcNyVmaszd", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qofQQXnR83ao9UvfZcx7d65YVifnxkDutyFbfF7oaknYGzE7Jnhb", - "sk": "EKFdPqymwBLmimiWY5LhZdCkfmpcYBvooRjUc13pGgfHxjbA5G2C", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjT4QefVpJZzccUBHY3Y88ZEDyZSv4SsrAuASzpE35YwriAWjBLR", - "sk": "EKEwpUYp6ca1Eq3JXfnQAiGthsUoTizqQ3vfVEdcdu5k6dZ56XB4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoPK9d7FLNruTf4RTFqDgX2pw2CQS1zpiVFHvSH2UT31ENJQVtEZ", - "sk": "EKFSt3cwMwkFuDCSkGG7sNN2zStXkxFsZsfviwyBLCYRXbQK3yrA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrQwyDUiDHNPPhtdp79iRhu9jWfbfZ8nKhtXjbawtddtCkST8ZM6", - "sk": "EKFHhsrem86eK4aubaNxPFdBDRyPUJzteeAJQR6J3t9h4omtF4b9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpC9qzf9WK8BR5WhVfmmyQeR36uVRgWuHD7Zx3shjRMkseS9uWgM", - "sk": "EKFTHBMSqAeJvqqu7THMj18QzvJoAdSmRhFSKRx4oGpbn4nCeS9Z", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qm33eSFMgjz9YA62GiuhAxAggE4pCiatuo2FpZFauw2vuygZXnmo", - "sk": "EKFcgWoBv7NrJdBQL2wX4mmFe4vfrvMjCHpb3HKSA7XVnbsr8F6h", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjHXGZmdFsJqJKN7q4zg19Thu2RD1oiaRs79QYnWqcEYnTtyB7m3", - "sk": "EKFTxJUxPVrx5FMfD4ZLznZPNykyzgRGcnjCxjXCwUAKV62m8MtW", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnDMeoRKPpSLPsySNPvbEA1QX84JsQUtHwhFLMQoGeao8BMUd81F", - "sk": "EKEpRtzcV5bi1j5uHFKozaxESZnddhkC6tA5yPGQP1dsiXJk8PFJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpctABfUK96bnM387Cy6UL6hUxMeoncx9PVd9ovU5Dspe6d9htMi", - "sk": "EKFLvaWGaBBCf4VQDwNUVDanPrJqDdesATDJT5hWsJAQnp2Hce9D", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr4wwSxnM5ATAQDMK6fMozWtf7rphfofS9F2Pa7AqUAuxREYexBj", - "sk": "EKEsRp7Ug91NhYwHgfX7C2bFckMZmmCRW2iKuCMriEorLfxMQkpx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qptvLjDCnGJVcqd9E4TaZDrjkHFcuFANpdDoj5mmSucjbirHQ2bg", - "sk": "EKFXFCRERUy8M8WzHbYrokMQtogoVEGQ3nFyr3CA7KyZgqK53fC7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrm4mNotwLm4MSH7QbjrB6XFATqCNYnN1S4x51XuJUovjL4TXt2f", - "sk": "EKFK699YbaKCX8VWN35GCXrd43EEBTKoP4Na3hvaEz5R21h1WHo9", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrNqV7Q2EWb7pWjGHUCMiJ3DPqArprXsiJmTGHPpZ4YomacTvdk2", - "sk": "EKEfmd9ab1N8iUCG5rchU2d8xB4MdSrJWC6yrjDPb7qdeReNziHX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkDJY9KpqspWYXoXGszedMmsTJ6Jh1bxpha9im62Xfu9RiHyhLhp", - "sk": "EKFbrC4soz9Ap1BSi9BJjcz46tneUEBAgKibVTeDwBPZraWyzptD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoH67vvcAc473B8vdXsHUYrdmbPyAHvh3WMj3EDpiXRh4dPxD8UG", - "sk": "EKEPkUvnnGTfax1NzQRPJ3TvTKtDKYn65BvQNVbjQXDWEEJFzJA6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qryUCPhtkrRy4qXutTx41pMCELKmtAksk3xDadixheAyyG75nm6i", - "sk": "EKEUxH8J1MoSYSC4yhjJwTj8qag2m3Q8Xv8v5sCt67XZ4DUSnKig", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoGsVu3q2PBaqMJDH3digpUgXfna9hbUasbxQseZFbPT4VRfRvDk", - "sk": "EKEPQ4fo1RmXr5tSJkqwakXEi1qRCtrTq1sLH4ejh5PUgdWvaXuY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrpyx82zdtoyVn5Vnw4HC6Bz1yG32A9gysT8K3uUDK6RqeJAR6fe", - "sk": "EKFQHaNPTmUfutVEVWknULrvB4aTmdNfC5UtGjiq2sRHRQkkkUnD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qipE2s48junuCVFjzGh1DKjHdoTGUc6hHcxBVaTig3VgAW5LGdVv", - "sk": "EKDqyRsSndfNEgNEQz2ndKkJRaKfqttsawnKS7XBW6z94pGKp4EG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkq3bQ2QUiXVNBGhhPszx5RRuCgpPx8ogBbbNxk859LzS3VcVVM8", - "sk": "EKE88vCM9a7NHujYj4KmHjSfVAaeAusUMitNmxNLMwgLg1bZQ1pY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkLXnKJDzapjT4rhBRHjjCWMuPnVcqLQoSHeMJUiqX6QmgwcTu4h", - "sk": "EKFZjC9ByLpaBjCZpxCc79LqgGN8fUrNt6q3afC4gBbRJTkf4i6t", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjoEKHFhHnHm3kRGmnWd4XU614HvwpfsHCtRNnTWtNUWDSMfg4EQ", - "sk": "EKFSduirbHThQR4jWHK6DKxDRiJs6ajp5TCht7ahVzZKK1i1mjEb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrRng8exKuJ4cA6bC8Jmb45tnME9Szmbr3uR7sNDQyL4HvbKZLaV", - "sk": "EKEkdzFaUxXhLiGwNJFDd25hL94eYeAjZGegu2JW7qfjRvjyxKcY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnTFpxnFDUWDrJxnHJyftXJhHxVCgHnDQLMrxXU3EcKrcNY8cENd", - "sk": "EKDtGNCTJ7KgZEEcWbyembtFuVLq3tu2zZPAro1AtbhD3pUfESng", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmurN35tQJxrcgQ9N1abNEYMv2axFBEsNGYaeZUnDuTuhWT9foxq", - "sk": "EKECSjj4SmYWviSm96hftiwz3QApQwvicC7FezFTCTCdyZvqiKPf", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qorGAeqFLKKbeHSYxJ3GcySt9rUCvqXtRZ22dTZwWRBHv35u9ZdX", - "sk": "EKDuccQk4L5HXqrbtrFCnHLtbbb9VjLMs3a1gXGGzycBHakYBnjb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjPcrxwrzf1AiUQQiAcUvek9cuq25qvzJfh1TXz68S14kFcuo5kx", - "sk": "EKFKo6vzKpN7VdDQhKLm7p8zkFXmstmmyBGey4mBYnsW8xj6UYsY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr7mGqDnJTosB76DS3pbPJw5xaKAi3HcSfczGozcxbBgAZE6cpd2", - "sk": "EKF6DK1W2kxJDGRT6wnC8vGXm2t8PzdFqew4qcaTVT9TxhVG5ANQ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qibbV4SYHDNnor8awFQw35fYgxoyVmPTtkLx62K4EMyiumuaQ9Ck", - "sk": "EKFA9iWtidFCY21Ek6tbh85Dp5GWdhYRsTdUSRqqrk8cBEyZRbwP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqgHEgiHoACCSKo33orQrVKsmsMvtCtSN8fHPsovSwzwqEM6SJac", - "sk": "EKDrGYGfx9DQrhJznGAeo59u8wxVZWGpFjn57FFSK7xcGdVW2moe", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk6YX4zbQRQ4Wtc2sicEM86gYMBBNXFJEzQzvwb8VTeLmFX1JQ1y", - "sk": "EKFbehbuDpKJ7dZzzPq5f1xVYqSj8zLWaBPWiUsVNhPxdgVWFxmt", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjqiEL37KDydUXQ1f9kUJXTXnfQfiLSShM37R5LGtXCQGv6VN1Kw", - "sk": "EKEufuPu9nhhqJQHjcUgdVp22BsgGwJrLoGnoL46qvwvrgUjLot7", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnnGQkVcmmi2HwQNwJxujGZoCpjTNbw4QpnCQ8AxoLzKvtQDNPym", - "sk": "EKDxLQxNq5GPDw6hcA896d9Wm3mG8pQLxgNEppGAgcfrA9sGzjr4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjhjrgBsrGriLGogeJY1SAPWpAzsgTwEorGUxAbbgKNnCR1BHtfX", - "sk": "EKFLw6ZmYw4gqxXnL45Y4Qsq68z6mDvG7izYnzEDaYFZSbbvuSib", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnJuffmYqY6hdU2e3okdNjiaTRffq94mfHRU3YMYX8RDhZULXX4L", - "sk": "EKDn75uH5nEYGnbs5UGQqoro4R1N6kavRsKJWadP2YumBKACyJbK", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnBbvCNSBN6RBU9QfWdE7zq6FmXdk4DJxBjCWyz8j8f39zptTRmc", - "sk": "EKFbivJwfog8W8dWnJwqF266eLdvPAFGQZTp2ReRqKZUPf6nn4rG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkCNTX2nrXjW4eR2dgwxc5d25JKSWXwJvRdfjDYoZr5HAaLkpyi7", - "sk": "EKF8QsHRa4mo8t9AKkCmNxHXsaNeEF5H8GKekeBJqwyXA74YLh5Z", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpgHnuPcALYXzC4o6iGWbiWvkamAyAGqwpMPgsee64Hg1xBLV6Vh", - "sk": "EKEE2d1hrf8FSdZW2dB9Q3UHo4JeAHzXFiZiCj2myYjFHtU5oPzf", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qma7KUDS89sKEN7ASbhbiam9woZZCeZSqgursFt4NMyNnZaXFs4a", - "sk": "EKFav1HtZHqjZYfiMXnNQXMdGXRpATmfBT2We2aZXMbah4jEsjHr", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qo6JAsmJW8zbAo2RYuGvomZFn15cirUi9ZcwqNE5EYdg3WLfkSna", - "sk": "EKFFBoJDTrQZyPRAhGwVdZkxW9rnK9rinpm5D3WweZ24HadnCZdb", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnsFLx96jdWXEBjYWNaheWWMmpC18Zxvxu3yiJfwf7HNrqiNWAHZ", - "sk": "EKEezVmHVQZSXdtKALVmTbcnocSUzEGPDUQJvMCXn3bbuAhXRcMg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qiXdujK3HfCy4UYbzj8WwZnYCBxX84SYCtJJoXiGN1wfkuRnf96n", - "sk": "EKEXUf9Vc8FPDvLeg4KL1VWJFYUVbNJXNgJAPhfHf2ZmJeFK2qbE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrhXNPhrE2pexjuyHJ1iC376dKAiha23wjJqR5cneDYs8PmckKV1", - "sk": "EKDiPx8qasxP7LdP6otQazGwd4Yg9BrwDXwbQ7qAK3k3vrTBmFw6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkNmTKB5kHcfnYLNcJNkoZzxTRFqp6geAaUMcyeLt5iLB2FvvaZd", - "sk": "EKEUkhrAjrPChPAk9qrun8GNgQnY7TByjMQzxcBWNS1at2kTy1FJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkgyySomTNryvXuutuD24sHhbxKneQ4deYdnLbcBuHEn22XBFLfU", - "sk": "EKDwJnzKPbZ4NkTC68n3tA4JqDvzb2c6wfkEiTdnxJEPSy53yRx3", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrvThdSwmHJAhmdUNrnJsq5d74cbehnR9yizXyk6K1xL2ikFH9cr", - "sk": "EKERmXP43o5uWyBXV3MNJ87Lx424DjEXs6fpVjiwGvMVpFSMJAvR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk948kKcbV1ySH3xcJd8s5wcZe3FnUkwwmgUswB1mtJjvMhPVQwi", - "sk": "EKDiPUCo9vS7gJwJxv4Tz1f2v5GDYrChvcG99e4Y9zL3AroHXaWG", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjgbRTqvKEtK8Hun5W3HiH4wfRFmt6CEkju7Co6QhZMsNZaJGLae", - "sk": "EKDxn9g3TSE5ZL6WtM6gvt8LAnhEeTCvE4F5BgqMRqdDoAgWguQH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqup6vjav292SNLvSS419ZSDj6Q8aBnyuxtmpfkm3ogZ5si7yZSG", - "sk": "EKEVifMGBMinsj7eukt2LMSyHhBaXfq8Ve4kUPtCJCgsRC9HFUKk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn2bCaFCcZqSpPZtCLRPPCRAykKAPRuRVQ7wZnV2bL5ETyxKoL7K", - "sk": "EKEeP8vNbJQBEtw2nKohbpgP6KUE6cRqyv6Ywi6cHxHB342ie1Bs", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjhspUfp5YT4kZBXQerdMKi7Pz17XHbgRwDKyMYzkVnb9hZfhvSy", - "sk": "EKDqb7B9WRji1CGGTUUUqNpF9nxnLacmBprBnkFtwMEZAWmwXjQX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjpWCVfMmY2CiFnbgAie4RW2hvvysehdw1pCghpxxqND1PsB8JC1", - "sk": "EKEjmwcYrJxM5gqJfAivudDMGtgT7DMdj1CzMCMRsQigCov4u1Wo", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpw7xEDfEwt89VxtQJFEUGJ62LmoXum6xRmcnPAAyHst1nLgG8Aw", - "sk": "EKF1WzvEztDkngg4sMrijGyETAfdDdEgS1k9VDHmyBbxL7pCFW6k", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqgHRd92TpUMrPoqzqsQnoVeTDtkvLFsHU4UsHt9Ernoq5Fu7U4w", - "sk": "EKEDSvRzzaEdouLi5NnbGDp3SZFJfxgWcb48mntpKghbjT1PqZUe", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr6zhT35EomrwrePLBg9UEsZtaBkfmeaG88zARXZRi95RU6V9MDU", - "sk": "EKDzDSs2gSBcg1St4Jsro8DXC4fgHJQRwbXC7ycx8T1tN3SsmGSi", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qowcLK2ARpa95jr9uRqTy8t5BgaYFmRC9by9HdYNaFVEQiFKJLju", - "sk": "EKEvBLxqpqgNGPE2EBy1m4dyPqX1Kru4Y4MZmMKxCy5tBHckArgh", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjxoMBQV6R4StMfMduGanefyU7tLU54teiUyrvKTbEjREwhPYx2R", - "sk": "EKDxhtZU1G1bBcmG3hz9FUx9nbWRaXE747yY7UXGrUkGnEt997ks", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqqAcgDAxyshyRg3vMHiERNpYQxf5KGhmhwyD3uT9koLd5oAWLpX", - "sk": "EKETLbtZ4F87baggnrrVEjdTkduTC2hxR5HzCHfHZT2W7Mmh6UrV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnGqo8UsTDBJtN9MCp5Z9GU8fqjthdceoDsuCqh2d9CvVMbHEZ8v", - "sk": "EKF9qXpnsZESf83ktfKRmcut2h86G4Rs95LUAb9xZZF4CoGGThQF", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qn3GkeZxa2kmCszzR2BEQWvx8euVq5aNSWS57i6kKj46nDnFAWRf", - "sk": "EKEm58Te5y3ETypWuYVjZUcywntKxSxA2AVyLxhDftqzCk83Vuy5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmDwwrZtdAyP1z7NzoN4C278fpfMjsyWf1LwjTW4amV4VHH9Yd6f", - "sk": "EKEpmNUdDC5do1Y3ppbBdfKCu7XfF6bUu6N7KaWLxk9VvT1fcPjn", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqpNferxAkRteo5VEmDjiNrQkQ3yuoRbMRXX9nik9DgEZoGyss11", - "sk": "EKEf7qE9Wg2LNDFXjbvtScQD9sb2eFt1fd5wQKjwmqQzW8gjmdtk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qodqqbYwhyMbVY1ZRYXnVCzayr5L6gDFbsYEVFwNjtci8TtXbzRU", - "sk": "EKFGmi2ATRfr2knn1SGkMyeS4ZdqkKnop5t4AjuYjAXHES1GUgHJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjEC5CmR55sc4UjGFywodLbDguSqxsvvh9MZNU19cjFYWhgyEK3K", - "sk": "EKFS6ofBFi3GDs89xCqwUMc9M9zZVke5QNFPDNrmUwprrVfhqLVx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmYK797tM4FGWLKsfrjaTvWfY4fzhoRXhnxzoiLJP5KRpUvhjmPq", - "sk": "EKE5Ck5nYnfedw2sNt5JeXhYqVAbswekqqbvCY1jN3ZhZTSxzomL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqndPRsSm7QoqvRNkkCbhPQvDGMMKT3qfRcwAemHg5Q7KdPkEANB", - "sk": "EKDnmgiX9sdhx3NAaa6d2Hp1ES59j9yCPn74pa1SYaMSMSQGmRip", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkpUFrbxesDDNXw9HTQhKZ1sEsbH2yDv5f2qrvxNLMFXnxo1PjnX", - "sk": "EKEsxHMmHhGNhF6VbdyidBbPgY7qDwMkoZA9eb41aTCH4Kq3xnNE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqCpmK7H1awBeeYvXsV72PHrfN5Hb3tm4VzQ1igCUVhcgXnPpBhS", - "sk": "EKF6q6MSc9stnEKRzqxUH3caerANBYTHSG6wmqkKkfUUQnxNX1DS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmukQ6R65fAuRmjCUtafxyz1hysV4A7tK9c9LSM3UDgYB7LvLo8f", - "sk": "EKDz5r7sBaXvQDshpGRe8bmMXEYq5y5VayDZTamq8snRb6My7tAY", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqWx3bS83ZsmP6nS1cw7UTALezYXjEQepgW56tkiB6hBaLGo9Psc", - "sk": "EKEeiLGRwHYuZMKgNhbE7AHotKQbSMkKRLX13ExidAUa2EyXwRqJ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmrYEeAx4isNz6teqbsx46jJ8ricoAnQqCneg9KM9cMzpA1da7u7", - "sk": "EKFdmBxSsw3itheehGjMRpWHtac5wNEGuwLY6tdXzU1h64ggdQ3G", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpXT6W2NZpUy2EZ3wcgxhRFmbKFqjfxMFuoZJSSVLZu5Cykj6G6b", - "sk": "EKE2jpz2UM6vRC6L8YDa3NS9WwapLu6DemwkXuq85tqCz4W4aPtS", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqPD8joAakwa9Vg7oD8m4ea6PEdAQdEgqVfVqL7SgFYHvudVGRaA", - "sk": "EKDkhhtkHdSHLpoB1djABQz129tdUK7L363R6f6kwkE2vxRTdyND", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpWt6DoxPmJJNx5CAYRFTjAXvCU2JDvw2LK69bemdEpmYej3DstH", - "sk": "EKEAshVkqgwiMydc7Wp5BSB9ikC8UvSYZt7gVbx83dej1uLLXQt2", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqNozT5MS1cytuZrXUhnCV5UJaiTDU6uFGn3umwY1dyHGsfrESFC", - "sk": "EKEbE84hpJKqE4a4WNNvTBS1ftmuA7bDSZHnByiQvPPVLNvowWcx", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmaTMvfSLbTTwr9m92SiNNtzLjM5wtAhRg1cVQm3gCAP1KiaBiCG", - "sk": "EKEcmZLJcdmGTmmMGyUMwzyS7Sa3vw6q6G3B4MVcByEiBrk96GGe", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrHsYdat4WxXs3eKZZE6QPgEuMfeD56sWxNHCbATf1zoa7AVBQFp", - "sk": "EKFFsMnvd8vLVTsfNu3hdtSfPumEjzqM98KBNk7tWA536vwWhRLg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmxyyGvXdLuWfUP6NziwdBV7QRMxSHbphddFaCYCMh29TTKibN53", - "sk": "EKF1xQb9oJSLpNGr6C3Dz5nU7eaK7vXR7oGnAj1YiuUmtsRsW6sE", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqgyoiFKsuf7ixBiD4TXN7KqbLXtE2m2CYjp7rH7nZYMZyUkncD1", - "sk": "EKDmGoAzRBwAaZ9T7JhT91Mpxx5fgSondf4VLp7ALEak2LEYjxsA", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmAEcan34KRcccGfQcqoEfQ38mDe5Be2tnKxosczCVUH5z4Bn8M6", - "sk": "EKE2bd4PveYwCZzMwgs4GRrrqQ7uoDjRcMS98CosDKThWWfmzVPw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qprADcWvZvagyeJetWqFR5x2jsgU8PLGeV2XVDF4ivY37wSSRi7M", - "sk": "EKFHR8nhHLvbg2PXMXpYZkhFr7Lhn1CursdaRLthhenHmLNXBVwZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qprAWCU3WWcLmDYRQ9YboMYmMSStxknekyhayyxsF6zH3XUCJ9ps", - "sk": "EKEoy3uPw7CDmoY6L4mbKftznRrdEC2L58kxtn45bjpsMcQ5pYiy", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpmm8Aa6GJgFynJmpFJpNqcfWyqCbrc5cZ2M7HJAX6BEnPZ47vV6", - "sk": "EKEfjkLmXVmxjfBKqfycMDiS4FE51W5c2A59ABRTFKTFpfk875tD", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qowEHirUT2NUMHdSGbaYYB8vbyWECgSDmQMYX54GqbZVRKLAyt5G", - "sk": "EKEnVrx1bTY3bJRVv938vhP9SZrUyEejKaJSnttBPQtBXq8EZsff", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoM6Aq3bcT74Uc8CJPvgWDER3zyXLktkGqxMyZCevL8gzWSU2P53", - "sk": "EKE3hYs1qYsH1pR1Xbi1LnZX6PZCoXBweb8XU6EWCmVjmTmEpukw", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkwHRS1NkeWSQoKcHZy1q6xxToNQ7THx2ALKtesRDMuqqLy7XQVB", - "sk": "EKFMY2wT5x6Q6CuNY8X9Yk5WTWC7F5DCmsB4Sp85eMb4xe3QQ55m", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpsmHiZuB8jccgnRZJKUBmvmBCNYz14J6G7M1w4VuRQYdH5PHxe3", - "sk": "EKE7p7LZFbp3iP1Ut92Kog3SSh1sDJjKPUmx9Yr45ybE4oSnKwUB", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpdLUMWTrTfAtUfo322Lqy5ns9nv5CThkdrE6PGqytNsRMt8Bh1U", - "sk": "EKEh2Fvq4tveHS3GtFhR65mxCbNYwTweHiE5M9JSViN7d8zUknQ1", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qre1qAwSYAvB7DefTFpJusyeMYSdwSC7GnQJYTHQRFRy7XqCUYKK", - "sk": "EKEnM8kzNDsp997JupX1wEMUymyp6gephtsrbLkvNwpZnnSGwgBV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrgD6RKeTfkBFVqXjMVoLGmxAhNCffYHMJydhbNyEUw3nwZ1Wy2t", - "sk": "EKFJUgxdKSDoZCHR1z22WLfL3D5NhP7rBUa2vdLyHenqdS6m72ti", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkNE4WPAv1Tcq7SxDiM55CTD3xh2hy8gx7EYuuvTS5iUzMK3irLX", - "sk": "EKEc9GGetDuK5AHcL7n1ZqfMGUttjfP1ytUVVmKGBqjAZZ4pwb1M", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqp4Tzk6p3FsqQGF2E3MiWvRvarN7DMoUcH5oEu9x445e9DeKayd", - "sk": "EKEdZbdBqkkaDqettcUGxdGrEn2aisgsALRZ6zNyJW74Qq8NkoQM", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkeZPjRLFbFvZ5vHFMXaQyptfoPtxHGBKhbhHvFeHiPrJ7FwYxsf", - "sk": "EKExh3febrjRbUtogBdQ2d9z69bsQvDV54WA43JGApX7oq8wDTMc", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qqLdQ7Xg2UPaFSftLzmbvXZ47ipn7c8NHZmjuoWLLLPoFVYu6Cxg", - "sk": "EKDntH2AG7LseoikLW5Wi6a4Yx5KNdEag6JbvReDz2fdM3S5drtL", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qmy8owq1V7KwnCckToKqKSXxZUXjxhP77wDrik9ieoZvJga9D1NA", - "sk": "EKFR1ZVs8getXBJDGJs26P9C4hgX7s7y4pLCPJrqx9iJjKLbbjkR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qj5aGhoqKDqH32mYz4yk1roTxWkXVcbnvRLjoxZNddCJHRZaTdnU", - "sk": "EKF2nWb5WQiWqR3io17eZmVZcHJGaLmmWCCYYvZFVvHrCqPJzRms", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoxxJuBineyEfFRWn4Q2QmttFLRJYSNujG9SaWp1pMHnm6imhXsL", - "sk": "EKFBc533TrxZX97aCY4tV3XpNehx85hueuVxiE6jtkPxJ6z2P4Ph", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjEhxAEciuWJwz5sfAm11hKir9BvacwiaB6Bnqxiiw5BRaxA29J2", - "sk": "EKEp6tc2XcsYq2sB1HNNVSKMX3NtALB3vXGqLH8WwFZnGwAooxHP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnoik6jVHuEUGNwNytj4XLbsNRMmSVEbGPFCtW1EKrdYbW9R3q5L", - "sk": "EKEumLT3xDrhoS6Sf5zjPMDemQvJHja2CBAqYjgNGvvzE5e8rxVr", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnASV3MAuksYAycM3tgdKrMSexgoQxy2XUHEtX7tSzU62SsnBnE8", - "sk": "EKFGVwHcb1whZCVHi3ySgXmdmhnKrEGRUdHDZZPhM8HxPtbAYTCZ", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnnv6YKfGBiiWTMzWpgtdb6G4cz8rp6u6Cj7eWZxDe4dn1z8y5Fd", - "sk": "EKEfovu77QrCkrNUBR2NGT7ofBeLhiKNbAv55bFkhjg25B14a81L", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qoW1UitJViBHYVeVXZPxana46tTnmbrMt8UjiykkXBTtuUwF5cCC", - "sk": "EKFLVnfPfDymfEe7jxKRRi3UF7SV2X7JRfxwcvdTvGULV3xwpWcj", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkQQekhWQisuZt4W7ya2TMgYDohhHR7sD5q4WS8Xe5BTA1AuMf2q", - "sk": "EKEMFS1gorYGtkeSiHijeWqbsjPsMZVJ8oHzxf43j8DHktyzNZba", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qk8QWR1R2bLGhucrxCQXS6ZQNC7zcqpZ4cNerRvysB1hjC9gymiF", - "sk": "EKEQUNXkZmY98FSVH3iD8KhF9FaScsNd3wRgqR3N7nfTT95N6SR5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qptwwaSD6ZEuSCBaJ3S2fZS9FS3QrZMzXfitnwTEJNTxN8ay3KKx", - "sk": "EKEq9m8uWxh5Yv2XfqJvEnAn5kjZZCfHjpBTiMFQ5Lr29UYQavse", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpeTfantMumBzHGEqg1UCFbM9tdnf96U739rS3BGuwWDbDhe4STP", - "sk": "EKETYDmm4MxEkoGP7wD7bi2RwcAxBwZotZVNNCvW1kcNhcSHsSVV", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpwsDQLRquqJxpsUV1kcPNiyTUJ3toPrvaAYBX6UxWJK5mhvmvMm", - "sk": "EKEcWrLyDh3BV49CWXDLP7kJD2LQewm2TMUWgx3Dok7oHnMagoZk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkeDHBbVQbYtXSJN31C245QpJSoazSVGY8GiPEVHrisG3gcw1vQG", - "sk": "EKEEPAEY11i3yHcoFmTwCawRJaxdZagUKu5EWHjtyva44EoQSY4i", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr12aKxqZS7Wb3VYyoejMXyjpciu4GaAqNDtV2wEwU7ZArDkvVJv", - "sk": "EKFGic76iBLSycfyvHpecCLxPBP6uwwakeR36a9w9u3VB5dMfqtR", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qnpD8BuedYfsq23Lj6hb9F7gFM9z5gKYpCVJKAfEKHye4kL3EcXb", - "sk": "EKEBAC68PUQZEPuid7o9JYz4F2p7pGfUNoM3Kx1NqgdE4Lzu3qgg", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qq5ZQzKbXyQSECFhskTv1sY8TMNXTou2SXXC85Svva9Xecy6spff", - "sk": "EKER74Dg4xvqWUXX8vsqaTebjdZNDpNWrDbTn3gJ9tCAwjtpvg73", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrZRZY1GuqR6gfGEN1reEvCTi1MXJ6HNUkHg9XohWMWUNJzwksdd", - "sk": "EKEsv1KzYMtnMMC8sY2PKD93CeYLGUw8o1WBSeTsSN4GBoamq2a5", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qrRpfNf81YPH8WHjWQTdM2wzzbwtGpq8AE9bcumUeKtQHMgS8nnY", - "sk": "EKFPxQbtPjM3qCi2586QHdFLMHGeABeDwUaUVLzegmmqLGSEFFnX", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qp8wv51ncEYuZQEgq8qk3LwoubtNXPFQHV4rjBijYcyGAJ6w8JHi", - "sk": "EKDmN7SGPpmztr4HB6MsM69fkp1w5NdeJw6JRnft7VRjTfMpTFL6", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpHWrCVEsyjaZL8GEDqrPjvHyMmcrz7198f2gShxYM1rwoBga8Q5", - "sk": "EKEN9LHGhxvCMkwVDPvSTao2pJFsw3pcoq6EyGxQ4EYrBXyPAdbp", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpG4Miaz9bfVMx1Nr1Qs5S3k7xeUdErMV4YkPxE5rSrLmarmuNyW", - "sk": "EKE1ijyMGikGTYZ4NbBPgAS2bXRDNPNAZiwUQTACjEPRgqrHjUMk", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qkRvHt6M2TqdLD1NKpdFZAVjAhATCMSqzEZu9jy7yTF4bQfqKdrQ", - "sk": "EKEBbeqhfLmBM9Uw4jxjxNSciHN7gaL11yrkwZphpWxVtbyZHQBP", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qjE15suCEjnZLjfFc8XDnF5zEBmPFw6dKB4CBEzMM8gbFzXks9Dk", - "sk": "EKFVUbgHXmkMAnnp8B66morHMz7sT5RsQCuA7JbjVrqTbYueRBAH", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qr4SrAdsCCSUEWPq9bbJdJxYBjLfhEqqCDSH65gzPLvX6LK8W5i6", - "sk": "EKFFVodwmXR8opxFVNVJBxvTQJPE4swW6tKni8RyKFYsuBSCf6js", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qijLkr3cE3zBVCf3KSXS885rgx1zVbEHTeeguUzFb1b2DAzESrkB", - "sk": "EKF82bAf6zSMKzJkUxW2bdw5uAQE9efQbhPBY2z6JCETBUysfRk4", - "balance": "155.000000000", - "delegate": null - }, - { - "pk": "B62qpoJeu3GMUoPZHeeJ4LCvZfag3NxJpuHu9pvX4eGdsQNrLzkywux", - "sk": "EKED4xRZsu9w4FCtFYNSk3ywg4iRPDFnZydapf5Xfm7nWFi9aHxT", - "balance": "155.000000000", - "delegate": null - } - ] - } -} diff --git a/nix/rust.nix b/nix/rust.nix index 8e0a4702dacd..deb074e369a9 100644 --- a/nix/rust.nix +++ b/nix/rust.nix @@ -13,7 +13,7 @@ let rustc = rustWithTargetPlatforms; }; toolchainHashes = { - "1.81.0" = "sha256-VZZnlyP69+Y3crrLHQyJirqlHrTtGTsyiSnZB8jEvVo="; + "1.92.0" = "sha256-sqSWJDUxc+zaz1nBWMAJKTAGBuGWP25GCftIOlCEAtA="; "nightly-2024-09-05" = "sha256-3aoA7PuH09g8F+60uTUQhnHrb/ARDLueSOD08ZVsWe0="; # copy the placeholder line with the correct toolchain name when adding a new toolchain diff --git a/scripts/debian/build.sh b/scripts/debian/build.sh index faf631056220..c260480bca92 100755 --- a/scripts/debian/build.sh +++ b/scripts/debian/build.sh @@ -35,14 +35,14 @@ if [ $# -eq 0 ] then echo "No arguments supplied. Building all known debian packages" build_logproc_deb - build_archive_berkeley_deb + build_archive_testnet_generic_deb build_archive_devnet_deb build_archive_mainnet_deb build_batch_txn_deb - build_daemon_berkeley_deb + build_daemon_testnet_generic_deb build_daemon_mainnet_deb build_daemon_devnet_deb - build_rosetta_berkeley_deb + build_rosetta_testnet_generic_deb build_rosetta_mainnet_deb build_rosetta_devnet_deb build_test_executive_deb diff --git a/scripts/debian/builder-helpers.sh b/scripts/debian/builder-helpers.sh index 63281de250d3..99d93524efb5 100755 --- a/scripts/debian/builder-helpers.sh +++ b/scripts/debian/builder-helpers.sh @@ -16,8 +16,8 @@ echo "--- Setting up the environment to build debian packages..." cd "${BUILD_DIR}" || exit 1 -GITHASH=$(git rev-parse --short=7 HEAD) -GITHASH_CONFIG=$(git rev-parse --short=8 --verify HEAD) +source "${SCRIPTPATH}/../export-git-env-vars.sh" + SUGGESTED_DEPS="jq, curl, wget" @@ -49,7 +49,7 @@ case "${MINA_DEB_CODENAME}" in ;; esac -MINA_DEB_NAME="mina-berkeley" +MINA_DEB_NAME="mina-testnet-generic" MINA_DEVNET_DEB_NAME="mina-devnet" DUNE_PROFILE="${DUNE_PROFILE}" DEB_SUFFIX="" @@ -152,42 +152,35 @@ build_deb() { # Function to DRY copying config files into daemon packages copy_common_daemon_configs() { - echo "------------------------------------------------------------" - echo "copy_common_daemon_configs inputs:" - echo "Network Name: ${1} (like mainnet, devnet, berkeley, mesa)" - echo "Signature Type: ${2} (mainnet or testnet)" - echo "Seed List URL path: ${3} (like seed-lists/berkeley_seeds.txt)" + local NETWORK_NAME="${1}" + local SIGNATURE_TYPE="${2}" + local SEED_LIST_URL_PATH="${3}" - # Copy shared binaries - cp ../src/app/libp2p_helper/result/bin/libp2p_helper \ - "${BUILDDIR}/usr/local/bin/coda-libp2p_helper" - cp ./default/src/app/runtime_genesis_ledger/runtime_genesis_ledger.exe \ - "${BUILDDIR}/usr/local/bin/mina-create-genesis" - cp ./default/src/app/generate_keypair/generate_keypair.exe \ - "${BUILDDIR}/usr/local/bin/mina-generate-keypair" - cp ./default/src/app/validate_keypair/validate_keypair.exe \ - "${BUILDDIR}/usr/local/bin/mina-validate-keypair" - cp ./default/src/lib/snark_worker/standalone/run_snark_worker.exe \ - "${BUILDDIR}/usr/local/bin/mina-standalone-snark-worker" - cp ./default/src/app/rocksdb-scanner/rocksdb_scanner.exe \ - "${BUILDDIR}/usr/local/bin/mina-rocksdb-scanner" - - # Copy signature-based Binaries (based on signature type $2 passed into the \ - # function) - cp ./default/src/app/cli/src/mina_"${2}"_signatures.exe \ - "${BUILDDIR}/usr/local/bin/mina" + copy_common_daemon_apps "${NETWORK_NAME}" "${SIGNATURE_TYPE}" \ + "${SEED_LIST_URL_PATH}" "${BUILDDIR}/usr/local/bin" mkdir -p "${BUILDDIR}/var/lib/coda" - # Include all useful genesis ledgers - cp ../genesis_ledgers/mainnet.json "${BUILDDIR}/var/lib/coda/mainnet.json" - cp ../genesis_ledgers/devnet.json "${BUILDDIR}/var/lib/coda/devnet.json" - cp ../genesis_ledgers/berkeley.json "${BUILDDIR}/var/lib/coda/berkeley.json" - cp ../genesis_ledgers/mesa.json "${BUILDDIR}/var/lib/coda/mesa.json" + # Include genesis ledgers for the network. + # We want to copy the genesis ledger for the network ($1) and in case of + # devnet/mainnet also copy the magic config (config_$GITHASH_CONFIG.json). + # This config is automatically picked up by the daemon on startup. + # In case of testnet-generic we only copy the devnet ledger without magic one + # as testnet-generic should be testnet agnostic. + case "${NETWORK_NAME}" in + devnet|mainnet|mesa) + cp ../genesis_ledgers/"${NETWORK_NAME}".json \ + "${BUILDDIR}/var/lib/coda/config_${GITHASH_CONFIG}.json" + cp ../genesis_ledgers/${NETWORK_NAME}.json "${BUILDDIR}/var/lib/coda/${NETWORK_NAME}.json" + ;; + testnet-generic) + cp ../genesis_ledgers/devnet.json "${BUILDDIR}/var/lib/coda/devnet.json" + ;; + *) + echo "Unknown network name provided: ${NETWORK_NAME}"; exit 1 + ;; + esac - # Set the default configuration based on Network name ($1) - cp ../genesis_ledgers/"${1}".json \ - "${BUILDDIR}/var/lib/coda/config_${GITHASH_CONFIG}.json" cp ../scripts/hardfork/create_runtime_config.sh \ "${BUILDDIR}/usr/local/bin/mina-hf-create-runtime-config" cp ../scripts/hardfork/mina-verify-packaged-fork-config \ @@ -195,18 +188,9 @@ copy_common_daemon_configs() { # Update the mina.service with a new default PEERS_URL based on Seed List \ # URL $3 mkdir -p "${BUILDDIR}/usr/lib/systemd/user/" - sed "s%PEERS_LIST_URL_PLACEHOLDER%https://storage.googleapis.com/${3}%" \ + sed "s%PEERS_LIST_URL_PLACEHOLDER%https://storage.googleapis.com/${SEED_LIST_URL_PATH}%" \ ../scripts/mina.service > "${BUILDDIR}/usr/lib/systemd/user/mina.service" - # Copy the genesis ledgers and proofs as these are fairly small and very \ - # valuable to have - # Genesis Ledger/proof/epoch ledger Copy - for f in /tmp/coda_cache_dir/genesis*; do - if [ -e "$f" ]; then - mv /tmp/coda_cache_dir/genesis* "${BUILDDIR}/var/lib/coda/." - fi - done - # Support bash completion # NOTE: We do not list bash-completion as a required package, # but it needs to be present for this to be effective @@ -400,29 +384,29 @@ build_rosetta_devnet_deb() { } ## END ROSETTA DEVNET PACKAGE ## -## ROSETTA BERKELEY PACKAGE ## +## ROSETTA GENERIC TESTNET PACKAGE ## # -# Builds mina-rosetta-berkeley package for Berkeley testnet Rosetta API +# Builds mina-rosetta-testnet-generic package for Generic testnet Rosetta API # -# Output: mina-rosetta-berkeley_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb +# Output: mina-rosetta-testnet-generic_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb # Dependencies: ${SHARED_DEPS} # -# Rosetta API implementation for Berkeley testnet with testnet signature binaries. +# Rosetta API implementation for testnet-generic testnet with testnet signature binaries. # -build_rosetta_berkeley_deb() { +build_rosetta_testnet_generic_deb() { echo "------------------------------------------------------------" - echo "--- Building berkeley rosetta deb" + echo "--- Building testnet-generic rosetta deb" - create_control_file mina-rosetta-berkeley "${SHARED_DEPS}" \ + create_control_file mina-rosetta-testnet-generic "${SHARED_DEPS}" \ 'Mina Protocol Rosetta Client' "${SUGGESTED_DEPS}" copy_common_rosetta_configs "testnet" - build_deb mina-rosetta-berkeley + build_deb mina-rosetta-testnet-generic } -## END ROSETTA BERKELEY PACKAGE ## +## END GENERIC TESTNET PACKAGE ## ## ROSETTA MESA PACKAGE ## @@ -535,98 +519,135 @@ build_daemon_mesa_deb() { } ## END DEVNET PACKAGE ## +# Copies common daemon binaries only to debian package +copy_common_daemon_apps() { + + local TARGET_ROOT_DIR="${4:-${BUILDDIR}/usr/lib/mina/${1}}" + + echo "------------------------------------------------------------" + echo "copy_common_daemon_apps inputs:" + echo "Network Name: ${1} (like mainnet, devnet, berkeley)" + echo "Signature Type: ${2} (mainnet or testnet)" + echo "Seed List URL path: ${3} (like seed-lists/berkeley_seeds.txt)" + echo "Target Root Dir: ${TARGET_ROOT_DIR}" + + mkdir -p "${TARGET_ROOT_DIR}" + + cp ../src/app/libp2p_helper/result/bin/libp2p_helper \ + "${TARGET_ROOT_DIR}/coda-libp2p_helper" + cp ./default/src/app/runtime_genesis_ledger/runtime_genesis_ledger.exe \ + "${TARGET_ROOT_DIR}/mina-create-genesis" + cp ./default/src/app/generate_keypair/generate_keypair.exe \ + "${TARGET_ROOT_DIR}/mina-generate-keypair" + cp ./default/src/app/validate_keypair/validate_keypair.exe \ + "${TARGET_ROOT_DIR}/mina-validate-keypair" + cp ./default/src/lib/snark_worker/standalone/run_snark_worker.exe \ + "${TARGET_ROOT_DIR}/mina-standalone-snark-worker" + cp ./default/src/app/rocksdb-scanner/rocksdb_scanner.exe \ + "${TARGET_ROOT_DIR}/mina-rocksdb-scanner" + + # Copy signature-based Binaries (based on signature type $2 passed into the \ + # function) + cp ./default/src/app/cli/src/mina_"${2}"_signatures.exe \ + "${TARGET_ROOT_DIR}/mina" + +} + + ## MAINNET LEGACY PACKAGE ## # -# Builds mina-mainnet-legacy package with legacy binary +# Builds mina-mainnet-pre-hardfork-mesa tailored package for automode package # -# Output: mina-mainnet-legacy_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb +# Output: mina-mainnet-pre-hardfork-mesa_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb # Dependencies: ${SHARED_DEPS}${DAEMON_DEPS} # -# Contains only the legacy mainnet binary as "mina-legacy" without +# Contains only the legacy mainnet binaries places in "/usr/lib/mina/berkeley" without # configuration files or genesis ledgers. # -build_daemon_mainnet_legacy_deb() { +build_daemon_mainnet_pre_hardfork_deb() { + + NAME="mina-mainnet-pre-hardfork-mesa" echo "------------------------------------------------------------" - echo "--- Building mainnet legacy deb without keys:" + echo "--- Building mainnet berkeley deb for hardfork automode :" - create_control_file mina-mainnet-legacy "${SHARED_DEPS}${DAEMON_DEPS}" \ + create_control_file $NAME "${SHARED_DEPS}${DAEMON_DEPS}" \ 'Mina Protocol Client and Daemon' "${SUGGESTED_DEPS}" - # Copy legacy binary - cp ./default/src/app/cli/src/mina_mainnet_signatures.exe \ - "${BUILDDIR}/usr/local/bin/mina-legacy" + # Copy legacy binaries + + copy_common_daemon_apps berkeley mainnet 'seed-lists/mainnet_seeds.txt' - build_deb mina-mainnet-legacy + build_deb $NAME } ## END MAINNET LEGACY PACKAGE ## ## DEVNET LEGACY PACKAGE ## # -# Builds mina-devnet-legacy package with legacy testnet binary +# Builds mina-devnet-pre-hardfork-mesa tailored package for automode package # -# Output: mina-devnet-legacy_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb +# Output: mina-devnet-pre-hardfork-mesa_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb # Dependencies: ${SHARED_DEPS}${DAEMON_DEPS} # -# Contains only the legacy testnet binary as "mina-legacy" without +# Contains only the legacy mainnet binaries places in "/usr/lib/mina/berkeley" without # configuration files or genesis ledgers. # -build_daemon_devnet_legacy_deb() { +build_daemon_devnet_pre_hardfork_deb() { + + NAME="mina-devnet-pre-hardfork-mesa" echo "------------------------------------------------------------" - echo "--- Building testnet signatures legacy deb without keys:" + echo "--- Building testnet berkeley legacy deb for hardfork automode :" - create_control_file mina-devnet-legacy "${SHARED_DEPS}${DAEMON_DEPS}" \ + create_control_file $NAME "${SHARED_DEPS}${DAEMON_DEPS}" \ 'Mina Protocol Client and Daemon for the Devnet Network' "${SUGGESTED_DEPS}" - # Copy legacy binary - cp ./default/src/app/cli/src/mina_testnet_signatures.exe \ - "${BUILDDIR}/usr/local/bin/mina-legacy" + # Copy legacy binaries + copy_common_daemon_apps berkeley testnet 'seed-lists/devnet_seeds.txt' - build_deb mina-devnet-legacy + build_deb $NAME } ## END DEVNET LEGACY PACKAGE ## -## BERKELEY PACKAGE ## +## TESTNET GENERIC PACKAGE ## # -# Builds Berkeley testnet daemon package with profile-aware naming +# Builds Testnet Generic testnet daemon package with profile-aware naming # # Output: ${MINA_DEB_NAME}_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb # Where MINA_DEB_NAME can be: -# - "mina-berkeley" (default) -# - "mina-berkeley-lightnet" (if DUNE_PROFILE=lightnet) -# - "mina-berkeley-instrumented" (if DUNE_INSTRUMENT_WITH is set) -# - "mina-berkeley-lightnet-instrumented" (both conditions) +# - "mina-testnet-generic" (default) +# - "mina-testnet-generic-lightnet" (if DUNE_PROFILE=lightnet) +# - "mina-testnet-generic-instrumented" (if DUNE_INSTRUMENT_WITH is set) +# - "mina-testnet-generic-lightnet-instrumented" (both conditions) # # Dependencies: ${SHARED_DEPS}${DAEMON_DEPS} # -# Berkeley testnet daemon with testnet signatures and berkeley genesis ledger +# Testnet Generic testnet daemon with testnet signatures and testnet generic genesis ledger # as default. Package name includes suffixes for different profiles. # -build_daemon_berkeley_deb() { +build_daemon_testnet_generic_deb() { echo "------------------------------------------------------------" - echo "--- Building Mina Berkeley testnet signatures deb without keys:" + echo "--- Building Mina Testnet Generic testnet signatures deb without keys:" create_control_file "${MINA_DEB_NAME}" "${SHARED_DEPS}${DAEMON_DEPS}" \ - 'Mina Protocol Client and Daemon for the Berkeley Network' \ + 'Mina Protocol Client and Daemon for the Testnet Generic Network' \ "${SUGGESTED_DEPS}" - copy_common_daemon_configs berkeley testnet 'seed-lists/berkeley_seeds.txt' - + copy_common_daemon_configs testnet-generic testnet 'seed-lists/devnet_seeds.txt' build_deb "${MINA_DEB_NAME}" } -## END BERKELEY PACKAGE ## +## END TESTNET GENERIC PACKAGE ## # # Replaces runtime config and genesis ledgers with hardfork versions # # Parameters: -# $1 - Network name (mainnet, devnet, berkeley) +# $1 - Network name (mainnet, devnet, testnet-generic) # # Environment variables required: # RUNTIME_CONFIG_JSON - path to hardfork runtime configuration @@ -688,35 +709,33 @@ build_daemon_devnet_hardfork_deb() { ## END DEVNET HARDFORK PACKAGE ## -## BERKELEY HARDFORK PACKAGE ## +## TESTNET GENERIC HARDFORK PACKAGE ## # -# Builds mina-berkeley-hardfork package for Berkeley hardfork +# Builds mina-testnet-generic-hardfork package for Testnet Generic hardfork # -# Output: mina-berkeley-hardfork_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb +# Output: mina-testnet-generic-hardfork_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb # Dependencies: ${SHARED_DEPS}${DAEMON_DEPS} # -# Berkeley daemon package with hardfork-specific runtime config and ledgers. +# Testnet Generic daemon package with hardfork-specific runtime config and ledgers. # Requires RUNTIME_CONFIG_JSON and LEDGER_TARBALLS environment variables. # -build_daemon_berkeley_hardfork_deb() { - local __deb_name=mina-berkeley-hardfork - +build_daemon_testnet_generic_hardfork_deb() { + local __deb_name=mina-testnet-generic-hardfork echo "------------------------------------------------------------" - echo "--- Building hardfork berkeley signatures deb without keys:" + echo "--- Building hardfork testnet generic signatures deb without keys:" create_control_file "${__deb_name}" "${SHARED_DEPS}${DAEMON_DEPS}" \ - 'Mina Protocol Client and Daemon for the Berkeley Network' "${SUGGESTED_DEPS}" - - copy_common_daemon_configs berkeley testnet 'seed-lists/berkeley_seeds.txt' + 'Mina Protocol Client and Daemon for the Testnet Generic Network' "${SUGGESTED_DEPS}" - replace_runtime_config_and_ledgers_with_hardforked_ones berkeley + copy_common_daemon_configs testnet-generic testnet 'seed-lists/devnet_seeds.txt' + replace_runtime_config_and_ledgers_with_hardforked_ones testnet-generic build_deb "${__deb_name}" } -## END BERKELEY HARDFORK PACKAGE ## +## END TESTNET GENERIC HARDFORK PACKAGE ## ## MAINNET HARDFORK PACKAGE ## @@ -808,12 +827,12 @@ build_archive_devnet_deb () { } ## END ARCHIVE DEVNET PACKAGE ## -## ARCHIVE BERKELEY PACKAGE ## +## ARCHIVE GENERIC TESTNET PACKAGE ## # -# Builds Berkeley archive package with profile-aware naming +# Builds Generic testnet archive package with profile-aware naming # -# Output: mina-archive-berkeley${DEB_SUFFIX}_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb +# Output: mina-archive-testnet-generic${DEB_SUFFIX}_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb # Where DEB_SUFFIX can be: # - "" (empty, default) # - "-lightnet" (if DUNE_PROFILE=lightnet) @@ -822,13 +841,13 @@ build_archive_devnet_deb () { # # Dependencies: ${ARCHIVE_DEPS} # -# Archive node package for Berkeley with suffix-aware naming for different profiles. +# Archive node package for Generic testnet with suffix-aware naming for different profiles. # -build_archive_berkeley_deb () { - ARCHIVE_DEB=mina-archive-berkeley${DEB_SUFFIX} +build_archive_testnet_generic_deb () { + ARCHIVE_DEB=mina-archive-testnet-generic${DEB_SUFFIX} echo "------------------------------------------------------------" - echo "--- Building archive berkeley deb" + echo "--- Building archive testnet-generic deb" create_control_file "$ARCHIVE_DEB" "${ARCHIVE_DEPS}" 'Mina Archive Process @@ -900,13 +919,13 @@ build_archive_mainnet_deb () { # Builds mina-zkapp-test-transaction package for zkApp testing # # Output: mina-zkapp-test-transaction_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb -# Dependencies: ${SHARED_DEPS}${DAEMON_DEBS} +# Dependencies: ${SHARED_DEPS}${DAEMON_DEPS} # # Utility for generating zkApp transactions in Mina GraphQL format for testing. # build_zkapp_test_transaction_deb () { echo "------------------------------------------------------------" - echo "--- Building Mina Berkeley ZkApp test transaction tool:" + echo "--- Building Mina Generic testnet ZkApp test transaction tool:" create_control_file mina-zkapp-test-transaction \ "${SHARED_DEPS}${DAEMON_DEPS}" \ @@ -956,14 +975,14 @@ build_delegation_verify_deb () { # Builds mina-create-legacy-genesis package for legacy genesis creation # # Output: mina-create-legacy-genesis_${MINA_DEB_VERSION}_${ARCHITECTURE}.deb -# Dependencies: ${SHARED_DEPS}${DAEMON_DEBS} +# Dependencies: ${SHARED_DEPS}${DAEMON_DEPS} # # Utility for creating legacy genesis ledgers for post-hardfork verification. # Contains the runtime_genesis_ledger tool for Mina protocol. # build_create_legacy_genesis_deb() { echo "------------------------------------------------------------" - echo "--- Building Mina Berkeley create legacy genesis tool:" + echo "--- Building Mina Generic testnet create legacy genesis tool:" create_control_file mina-create-legacy-genesis \ "${SHARED_DEPS}${DAEMON_DEPS}" \ diff --git a/scripts/debian/publish.sh b/scripts/debian/publish.sh index c3e986f0dfc0..a6f8bc6acafb 100755 --- a/scripts/debian/publish.sh +++ b/scripts/debian/publish.sh @@ -16,6 +16,7 @@ while [[ "$#" -gt 0 ]]; do case $1 in -r|--release) DEB_RELEASE="$2"; shift;; -v|--version) DEB_VERSION="$2"; shift;; -c|--codename) DEB_CODENAME="$2"; shift;; + --skip-cache-invalidation) SKIP_CACHE_INVALIDATION=1;; -b|--bucket) BUCKET="$2"; shift;; -f|--force) FORCE=1;; -s|--sign) SIGN="$2"; shift;; @@ -33,7 +34,7 @@ function usage() { echo " -v, --version The Debian version" echo " -c, --codename The Debian codename" echo " -s, --sign The Debian key id used for sign" - echo "" + echo " --skip-cache-invalidation Skip invalidating CloudFront cache after upload" echo "Example: $0 --name mina-archive --release unstable --version 2.0.0-rc1-48efea4 --codename bullseye " exit 1 } @@ -123,7 +124,12 @@ deb-s3 upload $BUCKET_ARG $S3_REGION_ARG \ "${DEB_NAMES}" ) && break || (MINA_DEB_BUCKET=${BUCKET} scripts/debian/clear-s3-lockfile.sh); done -invalidate_cache "$BUCKET" "$DEB_CODENAME" +if [[ -n "${SKIP_CACHE_INVALIDATION:-}" ]]; then + echo "⚠️ Skipping CloudFront cache invalidation as requested." +else + invalidate_cache "$BUCKET" "$DEB_CODENAME" +fi + for deb in $DEB_NAMES do diff --git a/scripts/debian/reversion.sh b/scripts/debian/reversion.sh index 22b4d4c9edee..0f97c6ab8ef0 100755 --- a/scripts/debian/reversion.sh +++ b/scripts/debian/reversion.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -eo pipefail +set -eox pipefail CLEAR='\033[0m' RED='\033[0;31m' @@ -9,15 +9,18 @@ function usage() { echo -e "${RED}☞ $1${CLEAR}\n"; fi echo "Usage: $0 [-d deb-name] [-v new-version] " - echo " -d, --deb The Debian name" - echo " --version The Current Debian version" - echo " --arch The Debian architecture" - echo " --new-version The New Debian version" - echo " --suite The Current Debian suite" - echo " --repo The Source Debian repo" - echo " --new-repo The Target Debian repo. By default equal to '--repo'" - echo " --new-suite The New Debian suite" - echo " --sign The Public Key id, which is used to sign package. Key must be stored locally" + echo " -d, --deb The Debian name" + echo " --version The Current Debian version" + echo " --arch The Debian architecture" + echo " --new-version The New Debian version" + echo " --suite The Current Debian suite" + echo " --repo The Source Debian repo" + echo " --new-repo The Target Debian repo. By default equal to '--repo'" + echo " --new-suite The New Debian suite" + echo " --codename The Debian codename" + echo " --sign The Public Key id, which is used to sign package. Key must be stored locally" + echo " --skip-cache-invalidation Skip CloudFront cache invalidation after publishing the debian" + echo " --help Show this help message and exit" echo "" echo "Example: $0 --deb mina-archive --version 2.0.0-rc1-48efea4 --new-version 2.0.0-rc1 --codename bullseye --release unstable --new-release umt" } @@ -33,6 +36,9 @@ while [[ "$#" -gt 0 ]]; do case $1 in --arch) ARCH="$2"; shift;; --repo) REPO="$2"; shift;; --sign) SIGN="$2"; shift;; + --codename) CODENAME="$2"; shift;; + --skip-cache-invalidation) SKIP_CACHE_INVALIDATION="1";; + --help) usage; exit 0;; *) echo "❌ Unknown parameter passed: $1"; usage exit 1;; esac; shift; done @@ -54,7 +60,7 @@ fi function rebuild_deb() { source scripts/debian/reversion-helper.sh - wget https://s3.us-west-2.amazonaws.com/${REPO}/pool/${CODENAME}/m/mi/${DEB}_${VERSION}.deb + wget https://s3.us-west-2.amazonaws.com/${REPO}/pool/${CODENAME}/m/mi/${DEB}_${VERSION}_${ARCH}.deb reversion --deb ${DEB} \ --package ${DEB} \ --source-version ${VERSION} \ @@ -66,4 +72,11 @@ function rebuild_deb() { } rebuild_deb -source scripts/debian/publish.sh --names "${NEW_NAME}_${NEW_VERSION}_${ARCH}.deb" --arch "${ARCH}" --version "${NEW_VERSION}" --codename "${CODENAME}" --release "${NEW_SUITE}" --bucket "${NEW_REPO}" ${SIGN_ARG} + +if [[ -n "$SKIP_CACHE_INVALIDATION" ]]; then + SKIP_CACHE_INVALIDATION_ARG="--skip-cache-invalidation" +else + SKIP_CACHE_INVALIDATION_ARG="" +fi + +source scripts/debian/publish.sh --names "${NEW_NAME}_${NEW_VERSION}_${ARCH}.deb" --arch "${ARCH}" --version "${NEW_VERSION}" --codename "${CODENAME}" --release "${NEW_SUITE}" --bucket "${NEW_REPO}" ${SIGN_ARG} ${SKIP_CACHE_INVALIDATION_ARG} \ No newline at end of file diff --git a/scripts/debian/session/README.md b/scripts/debian/session/README.md new file mode 100644 index 000000000000..cca068d89d28 --- /dev/null +++ b/scripts/debian/session/README.md @@ -0,0 +1,475 @@ +# Debian Package Session Scripts + +A suite of bash scripts for modifying Debian packages in a session-based workflow. These scripts enable opening a `.deb` package, performing various modifications (insert, replace, remove, move files, and rename the package), and saving the modified package. + +## Overview + +These scripts provide a safe, session-based approach to modifying Debian packages without permanently altering the original file until you're ready. The workflow follows three main steps: + +1. **Open** - Extract a .deb package into a session directory +2. **Modify** - Make changes using the provided helper scripts +3. **Save** - Repack the modified session into a new .deb file + +## Quick Start + +```bash +# 1. Open a debian package +./deb-session-open.sh mina-devnet_1.0_amd64.deb ./my-session + +# 2. Modify the package (examples) +./deb-session-insert.sh ./my-session /var/lib/coda/ ledger.tar.gz +./deb-session-replace.sh ./my-session /etc/mina/config.json new-config.json +./deb-session-rename-package.sh ./my-session mina-devnet-hardfork + +# 3. Save the modified package +./deb-session-save.sh ./my-session mina-devnet-hardfork_1.0_amd64.deb --verify +``` + +## Session Structure + +After opening a package, the session directory contains: + +``` +my-session/ +├── metadata.env # Session metadata (compression type, paths, etc.) +├── debian-binary # Debian package version +├── control/ # Package control files (Package name, Version, etc.) +└── data/ # Package file contents (modify these) +``` + +## Scripts Reference + +### deb-session-open.sh + +Opens a Debian package for modification by extracting it into a session directory. + +**Usage:** +```bash +./deb-session-open.sh +``` + +**Example:** +```bash +./deb-session-open.sh mina-devnet_3.3.0_amd64.deb ./hardfork-session +``` + +**Notes:** +- Session directory will be created if it doesn't exist +- If session directory exists, it will be cleaned first +- Cannot be a symlink (security restriction) + +--- + +### deb-session-save.sh + +Saves a session by repacking the modified files into a `.deb` package. + +**Usage:** +```bash +./deb-session-save.sh [--verify] +``` + +**Example:** +```bash +./deb-session-save.sh ./hardfork-session mina-devnet-hardfork_3.3.0_amd64.deb --verify +``` + +**Notes:** +- Preserves original compression formats (gz, xz, zst) +- Normalizes file ownership to root:root +- Use `--verify` to validate the package after creation (recommended) + +--- + +### deb-session-insert.sh + +Inserts one or more files into the package. + +**Usage:** +```bash +./deb-session-insert.sh [-d] [ ...] +``` + +**Examples:** +```bash +# Insert multiple files into a directory (trailing / indicates directory) +./deb-session-insert.sh ./my-session /var/lib/coda/ ledger1.tar.gz ledger2.tar.gz + +# Insert with explicit directory flag +./deb-session-insert.sh -d ./my-session /var/lib/coda ledger1.tar.gz ledger2.tar.gz + +# Insert a single file with specific name +./deb-session-insert.sh ./my-session /var/lib/coda/devnet.json ./new-config.json + +# Insert all tarballs from a directory using glob +./deb-session-insert.sh ./my-session /var/lib/coda/ ./ledgers/*.tar.gz +``` + +**Notes:** +- Use `-d` flag or trailing `/` to treat destination as a directory +- Files keep their original names when inserted into a directory +- Destination directories are created automatically +- File permissions and attributes are preserved + +--- + +### deb-session-replace.sh + +Replaces existing files in the package with a new file. + +**Usage:** +```bash +./deb-session-replace.sh +``` + +**Examples:** +```bash +# Replace a specific file +./deb-session-replace.sh ./my-session /var/lib/coda/config.json new-config.json + +# Replace all files matching a pattern +./deb-session-replace.sh ./my-session "/var/lib/coda/config_*.json" new-config.json + +# Replace configuration in /etc +./deb-session-replace.sh ./my-session /etc/mina/genesis_ledger.json new-ledger.json +``` + +**Notes:** +- Supports wildcard patterns (e.g., `config_*.json`) +- All matching files will be replaced with the same replacement file +- File permissions are set to 0644 + +--- + +### deb-session-remove.sh + +Removes files matching a pattern from the package. + +**Usage:** +```bash +./deb-session-remove.sh +``` + +**Examples:** +```bash +# Remove a specific file +./deb-session-remove.sh ./my-session /var/lib/coda/devnet.json + +# Remove all files matching a pattern +./deb-session-remove.sh ./my-session "/var/lib/coda/config_*.json" + +# Remove all files in a directory +./deb-session-remove.sh ./my-session "/var/lib/coda/old_configs/*" + +# Remove all .log files recursively (requires Bash 4.0+) +./deb-session-remove.sh ./my-session "/var/log/mina/**/*.log" +``` + +**Notes:** +- Supports glob patterns including `**` for recursive matching (Bash 4.0+) +- Only files are removed, not directories +- Removed files cannot be recovered from the session + +--- + +### deb-session-move.sh + +Moves or renames a file within the package. + +**Usage:** +```bash +./deb-session-move.sh +``` + +**Examples:** +```bash +# Rename a file +./deb-session-move.sh ./my-session /var/lib/coda/devnet.json /var/lib/coda/devnet.old.json + +# Move a file to a different directory +./deb-session-move.sh ./my-session /var/lib/coda/config.json /etc/mina/config.json + +# Create a backup +./deb-session-move.sh ./my-session /etc/mina/genesis.json /etc/mina/genesis.backup.json +``` + +**Notes:** +- Both paths should be absolute as they appear when package is installed +- Source file must exist +- Destination directory will be created if it doesn't exist + +--- + +### deb-session-rename-package.sh + +Renames the Debian package by updating the Package field in the control file. + +**Usage:** +```bash +./deb-session-rename-package.sh +``` + +**Examples:** +```bash +# Add hardfork suffix +./deb-session-rename-package.sh ./my-session mina-devnet-hardfork + +# Rename for testing +./deb-session-rename-package.sh ./my-session mina-devnet-testing + +# Create variant package +./deb-session-rename-package.sh ./my-session mina-mainnet-berkeley +``` + +**Notes:** +- Only modifies the Package field in the control file +- Version, architecture, and all other metadata remain unchanged +- Package name must follow Debian naming conventions: + - Start with lowercase letter or digit + - Contain only lowercase letters, digits, plus (+), minus (-), and dots (.) + +--- + +## Manual Modifications (Advanced) + +For advanced users who prefer direct control, you can work directly with the unpacked files using standard shell utilities instead of the helper scripts. + +### Working Directly in the Session Directory + +```bash +# 1. Open the session +./deb-session-open.sh mina-devnet_1.0_amd64.deb ./my-session + +# 2. Navigate to the data directory +cd ./my-session/data + +# 3. Use standard shell utilities +# Insert files (use cp) +cp /path/to/ledger.tar.gz ./var/lib/coda/ +cp /path/to/config.json ./etc/mina/ + +# Replace files (use cp to overwrite) +cp /path/to/new-config.json ./var/lib/coda/config.json + +# Move/rename files (use mv) +mv ./var/lib/coda/old.json ./var/lib/coda/new.json + +# Remove files (use rm) +rm ./var/lib/coda/unwanted.txt +rm ./var/lib/coda/config_*.json # Remove with wildcard + +# 4. Modify control files if needed +cd ../control +vim control # Edit Package name, Version, etc. + +# 5. Return to parent directory and save +cd ../.. +./deb-session-save.sh ./my-session output.deb --verify +``` + +### Manual Approach Example: Creating a Hardfork Package + +```bash +#!/bin/bash +set -e + +# Open session +./deb-session-open.sh mina-devnet_3.3.0_amd64.deb ./hardfork + +cd ./hardfork/data + +# Replace config files using standard cp +cp /path/to/hardfork-config.json ./var/lib/coda/config_devnet.json + +# Insert new genesis ledger +cp /path/to/hardfork-ledger.tar.gz ./var/lib/coda/ + +# Remove old files +rm -f ./var/lib/coda/old_*.json + +cd ../control + +# Rename package by editing control file directly +sed -i 's/^Package: mina-devnet$/Package: mina-devnet-hardfork/' control + +cd ../.. + +# Save the modified package +./deb-session-save.sh ./hardfork mina-devnet-hardfork_3.3.0_amd64.deb --verify +``` + +### Important Notes for Manual Modifications + +**Path Handling:** +- Work from inside `session/data/` directory +- Use **relative paths** (e.g., `./var/lib/coda/file.txt`) +- **Do NOT use absolute paths** with leading `/` when using shell utilities +- Package paths like `/var/lib/coda/file.txt` become `./var/lib/coda/file.txt` in the session + +**Safety Considerations:** +- Stay within the `session/data/` directory to avoid modifying system files +- Be careful with wildcards (`rm *.txt`) - they operate on session files, not your system +- The helper scripts include built-in validation; manual approach requires more care +- Test in a temporary session first if you're unsure + +**When to Use Manual Approach:** +- You need complex file operations not covered by helper scripts +- You're comfortable with bash and prefer direct control +- You want to use advanced shell features (find, xargs, etc.) +- You need to batch process many files efficiently + +**When to Use Helper Scripts:** +- You want automatic path validation and security checks +- You prefer clear, documented operations +- You're less familiar with bash utilities +- You want verification that operations completed successfully + +## Common Use Cases + +### Creating a Hardfork Package + +```bash +#!/bin/bash +set -e + +# Open the original package +./deb-session-open.sh mina-devnet_3.3.0_amd64.deb ./hardfork-session + +# Replace genesis ledger +./deb-session-replace.sh ./hardfork-session \ + /var/lib/coda/config_*.json \ + ./hardfork-config.json + +# Insert new genesis ledger +./deb-session-insert.sh ./hardfork-session \ + /var/lib/coda/ \ + ./hardfork-ledger.tar.gz + +# Rename the package +./deb-session-rename-package.sh ./hardfork-session mina-devnet-hardfork + +# Save the modified package +./deb-session-save.sh ./hardfork-session \ + mina-devnet-hardfork_3.3.0_amd64.deb \ + --verify + +echo "Hardfork package created: mina-devnet-hardfork_3.3.0_amd64.deb" +``` + +### Updating Configuration Files + +```bash +#!/bin/bash +set -e + +# Open package +./deb-session-open.sh mina-mainnet_3.3.0_amd64.deb ./config-update + +# Replace multiple config files +./deb-session-replace.sh ./config-update /etc/mina/daemon.json new-daemon-config.json +./deb-session-replace.sh ./config-update /etc/mina/peers.txt new-peers.txt + +# Save package +./deb-session-save.sh ./config-update mina-mainnet-updated_3.3.0_amd64.deb --verify +``` + +### Creating a Test Package with Modified Binaries + +```bash +#!/bin/bash +set -e + +# Open package +./deb-session-open.sh mina-devnet_3.3.0_amd64.deb ./test-session + +# Replace the main binary +./deb-session-replace.sh ./test-session /usr/local/bin/mina ./patched-mina + +# Rename for testing +./deb-session-rename-package.sh ./test-session mina-devnet-test + +# Save +./deb-session-save.sh ./test-session mina-devnet-test_3.3.0_amd64.deb --verify +``` + +### Cleaning Up Old Files + +```bash +#!/bin/bash +set -e + +# Open package +./deb-session-open.sh mina-devnet_3.3.0_amd64.deb ./cleanup-session + +# Remove old log files +./deb-session-remove.sh ./cleanup-session "/var/log/mina/**/*.log" + +# Remove old configuration backups +./deb-session-remove.sh ./cleanup-session "/etc/mina/*.backup" + +# Save cleaned package +./deb-session-save.sh ./cleanup-session mina-devnet-clean_3.3.0_amd64.deb --verify +``` + +## Security Features + +All scripts include security protections: + +- **Directory Traversal Protection**: Paths with `..` sequences are detected and rejected +- **Symlink Protection**: Session directory cannot be a symlink +- **Path Validation**: All paths are normalized and validated to stay within session directory +- **Safe Defaults**: Scripts use `set -eux -o pipefail` for error handling + +## Requirements + +- Bash 4.0+ (for globstar support in removal operations) +- Standard Debian tools: `dpkg-deb`, `ar`, `tar` +- Compression tools: `gzip`, `xz`, `zstd` (depending on package compression) + +## Testing + +Run the test suite to verify all scripts work correctly: + +```bash +./tests/run-deb-session-tests.sh +``` + +The test suite covers: +- Opening and closing sessions +- File insertion (directory and file targets) +- File replacement with wildcards +- File removal with patterns +- File moving/renaming +- Package renaming +- Session verification + +## Troubleshooting + +### Error: Session directory not found + +Make sure you've opened a session first using `deb-session-open.sh`. + +### Error: Path escapes session data directory + +This is a security protection. Ensure your paths don't contain `..` sequences or other escape attempts. + +### Error: No files found matching pattern + +Check that: +- The path is absolute (starts with `/`) +- The pattern matches actual files in the package +- You're using the correct wildcard syntax + +### Compression errors + +Ensure you have the required compression tools installed: +```bash +# For gzip +sudo apt-get install gzip + +# For xz +sudo apt-get install xz-utils + +# For zstd +sudo apt-get install zstd +``` \ No newline at end of file diff --git a/scripts/debian/session/deb-session-common.sh b/scripts/debian/session/deb-session-common.sh new file mode 100644 index 000000000000..55eff146f692 --- /dev/null +++ b/scripts/debian/session/deb-session-common.sh @@ -0,0 +1,101 @@ +#!/usr/bin/env bash + +# Common functions for Debian package session scripts +set -eux -o pipefail + +# Strips the leading slash from a path +# Usage: result=$(strip_leading_slash ) +strip_leading_slash() { + local path="$1" + echo "${path#/}" +} + +# Validates that a session directory exists and is properly initialized +# Usage: validate_session +# Sets: SESSION_DIR_ABS (absolute path to session) +validate_session() { + local session_dir="$1" + + if [[ ! -d "$session_dir" ]]; then + echo "ERROR: Session directory not found: $session_dir" >&2 + echo "" >&2 + echo "You must first open a session using:" >&2 + echo " deb-session-open.sh " >&2 + exit 1 + fi + + SESSION_DIR_ABS=$(readlink -f "$session_dir") + + if [[ ! -f "$SESSION_DIR_ABS/metadata.env" ]]; then + echo "ERROR: Session metadata not found: $SESSION_DIR_ABS/metadata.env" >&2 + echo "" >&2 + echo "This doesn't appear to be a valid session directory." >&2 + echo "Open a session using:" >&2 + echo " deb-session-open.sh " >&2 + exit 1 + fi + + if [[ ! -d "$SESSION_DIR_ABS/data" ]]; then + echo "ERROR: Session data directory not found: $SESSION_DIR_ABS/data" >&2 + echo "Session appears to be corrupted." >&2 + exit 1 + fi +} + +# Gets the data directory path for a session +# Usage: data_dir=$(get_session_data_dir ) +get_session_data_dir() { + local session_dir="$1" + echo "$(readlink -f "$session_dir")/data" +} + +# Gets the control directory path for a session +# Usage: control_dir=$(get_session_control_dir ) +get_session_control_dir() { + local session_dir="$1" + echo "$(readlink -f "$session_dir")/control" +} + +# Resolves a package path to the actual filesystem path in the session +# Usage: actual_path=$(resolve_package_path ) +# Example: resolve_package_path ./session /var/lib/coda/file.txt +# Returns: /full/path/to/session/data/var/lib/coda/file.txt +resolve_package_path() { + local session_dir="$1" + local pkg_path="$2" + local stripped + stripped=$(strip_leading_slash "$pkg_path") + echo "$(get_session_data_dir "$session_dir")/$stripped" +} + +# Validates that a path stays within the session data directory +# Usage: validate_path_in_session +# Exits with error if path tries to escape session directory +validate_path_in_session() { + local session_dir="$1" + local path="$2" + local description="${3:-path}" + + local data_dir + data_dir=$(get_session_data_dir "$session_dir") + + local stripped + stripped=$(strip_leading_slash "$path") + + # Build the full path + local full_path="$data_dir/$stripped" + + # Normalize the path (resolve .., ., symlinks, etc.) + # Note: realpath with -m doesn't require the path to exist + local normalized + normalized=$(realpath -m "$full_path") + + # Check if normalized path is within data directory + # Use a trailing slash to prevent partial directory name matches + if [[ "$normalized" != "$data_dir"* ]]; then + echo "ERROR: $description escapes session data directory: $path" >&2 + echo " Normalized: $normalized" >&2 + echo " Expected within: $data_dir" >&2 + exit 1 + fi +} diff --git a/scripts/debian/session/deb-session-insert.sh b/scripts/debian/session/deb-session-insert.sh new file mode 100755 index 000000000000..c451237cab24 --- /dev/null +++ b/scripts/debian/session/deb-session-insert.sh @@ -0,0 +1,150 @@ +#!/usr/bin/env bash + +set -eux -o pipefail + +# Source common functions +SCRIPT_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/deb-session-common.sh" + +usage() { + cat < [ ...] + +Inserts one or more files into the package. + +Options: + -d, --directory Treat dest-path as a directory (files keep their names) + +Arguments: + Session directory created by deb-session-open.sh + Destination path in package + Local file(s) to insert (supports multiple files) + +Example: + # Insert multiple ledger tarballs into /var/lib/coda/ (explicit directory mode) + $0 -d ./my-session /var/lib/coda ledger1.tar.gz ledger2.tar.gz + + # Insert a single file with specific name + $0 ./my-session /var/lib/coda/devnet.json ./new_config.json + + # Insert all tarballs from a directory (trailing / also works) + $0 ./my-session /var/lib/coda/ ./ledgers/*.tar.gz + +Notes: + - Use -d flag to explicitly treat destination as a directory + - Without -d: trailing / indicates directory, otherwise file path + - For file destination without -d, only one source file allowed + - Destination directories are created automatically + - File permissions and attributes are preserved from source + - Supports glob patterns in source files (e.g., *.tar.gz) +EOF +} + +if [[ $# -lt 3 ]]; then + usage + exit 1 +fi + +# Parse optional -d flag +EXPLICIT_DIR_MODE=false +if [[ "$1" == "-d" || "$1" == "--directory" ]]; then + EXPLICIT_DIR_MODE=true + shift +fi + +SESSION_DIR="$1" +DEST_PATH="$2" +shift 2 +SOURCE_FILES=("$@") + +# Validate session directory +validate_session "$SESSION_DIR" + +# Validate destination path doesn't escape session +validate_path_in_session "$SESSION_DIR_ABS" "$DEST_PATH" "Destination path" + +# Resolve source files to absolute paths and validate +SOURCE_FILES_ABS=() +for file in "${SOURCE_FILES[@]}"; do + if [[ ! -f "$file" ]]; then + echo "ERROR: Source file not found: $file" >&2 + exit 1 + fi + SOURCE_FILES_ABS+=("$(realpath "$file")") +done + +if [[ ${#SOURCE_FILES_ABS[@]} -eq 0 ]]; then + echo "ERROR: No source files provided" >&2 + exit 1 +fi + +# Determine if destination is a directory or file +DEST_IS_DIR=false +if [[ "$EXPLICIT_DIR_MODE" == true ]]; then + # Explicit -d flag provided + DEST_IS_DIR=true +elif [[ "$DEST_PATH" == */ ]]; then + # Trailing slash indicates directory + DEST_IS_DIR=true +else + # No directory indicator - treat as file path + # If not ending with / and no -d flag, check if we have only one source file + if [[ ${#SOURCE_FILES_ABS[@]} -ne 1 ]]; then + echo "ERROR: Destination is a file path but multiple source files provided" >&2 + echo "HINT: Add trailing / to destination or use -d flag to insert as directory" >&2 + exit 1 + fi +fi + +echo "=== Inserting File(s) into Package ===" +echo "Session: $SESSION_DIR_ABS" +echo "Destination: $DEST_PATH" +echo "Files to insert: ${#SOURCE_FILES_ABS[@]}" + +# Navigate to session data directory +cd "$(get_session_data_dir "$SESSION_DIR_ABS")" + +# Strip leading slash from destination +DEST_PATH_STRIPPED=$(strip_leading_slash "$DEST_PATH") + +# Insert each file +INSERTED_COUNT=0 +for SOURCE_FILE in "${SOURCE_FILES_ABS[@]}"; do + SOURCE_BASENAME=$(basename "$SOURCE_FILE") + + if [[ "$DEST_IS_DIR" == true ]]; then + # Destination is a directory - ensure trailing slash for proper concatenation + TARGET_PATH="${DEST_PATH_STRIPPED%/}/${SOURCE_BASENAME}" + else + # Destination is a file path + TARGET_PATH="$DEST_PATH_STRIPPED" + fi + + # Create destination directory + TARGET_DIR=$(dirname "$TARGET_PATH") + if [[ -n "$TARGET_DIR" && "$TARGET_DIR" != "." ]]; then + mkdir -p "$TARGET_DIR" + fi + + echo " → Inserting: $(basename "$SOURCE_FILE") -> /$TARGET_PATH" + cp -p "$SOURCE_FILE" "$TARGET_PATH" + + # Verify insertion + if [[ ! -f "$TARGET_PATH" ]]; then + echo " ERROR: File not found after insertion!" >&2 + exit 1 + fi + + # Verify content matches + if cmp -s "$SOURCE_FILE" "$TARGET_PATH"; then + echo " ✓ Verified" + else + echo " ERROR: Content verification failed!" >&2 + exit 1 + fi + + INSERTED_COUNT=$((INSERTED_COUNT + 1)) +done + +echo "" +echo "✓ Insertion complete: $INSERTED_COUNT file(s) inserted" diff --git a/scripts/debian/session/deb-session-move.sh b/scripts/debian/session/deb-session-move.sh new file mode 100755 index 000000000000..bf39f0fe0a71 --- /dev/null +++ b/scripts/debian/session/deb-session-move.sh @@ -0,0 +1,101 @@ +#!/usr/bin/env bash + +set -eux -o pipefail + +# Source common functions +SCRIPT_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/deb-session-common.sh" + +usage() { + cat < + +Moves or renames a file within the package. + +Arguments: + Session directory created by deb-session-open.sh + Current path of file in package (absolute path) + New path for the file in package (absolute path) + +Example: + # Move devnet.json to devnet.old.json + $0 ./my-session /var/lib/coda/devnet.json /var/lib/coda/devnet.old.json + + # Rename a config file + $0 ./my-session /etc/mina/config.json /etc/mina/config.backup.json + +Notes: + - Both paths should be absolute as they appear when package is installed + - Source file must exist + - Destination directory will be created if it doesn't exist + - This is equivalent to 'mv' within the package +EOF +} + +if [[ $# -ne 3 ]]; then + usage + exit 1 +fi + +SESSION_DIR="$1" +SOURCE_PATH="$2" +DEST_PATH="$3" + +# Validate session directory +validate_session "$SESSION_DIR" + +# Validate paths don't escape session +validate_path_in_session "$SESSION_DIR_ABS" "$SOURCE_PATH" "Source path" +validate_path_in_session "$SESSION_DIR_ABS" "$DEST_PATH" "Destination path" + +echo "=== Moving File in Package ===" +echo "Session: $SESSION_DIR_ABS" +echo "From: $SOURCE_PATH" +echo "To: $DEST_PATH" + +# Navigate to session data directory +cd "$(get_session_data_dir "$SESSION_DIR_ABS")" + +# Strip leading slashes +SOURCE_PATH_STRIPPED=$(strip_leading_slash "$SOURCE_PATH") +DEST_PATH_STRIPPED=$(strip_leading_slash "$DEST_PATH") + +# Check if source exists +if [[ ! -e "$SOURCE_PATH_STRIPPED" ]]; then + echo "ERROR: Source file not found: $SOURCE_PATH" >&2 + echo "Available files in directory:" >&2 + SOURCE_DIR=$(dirname "$SOURCE_PATH_STRIPPED") + if [[ -d "$SOURCE_DIR" ]]; then + ls -la "$SOURCE_DIR" || true + fi + exit 1 +fi + +# Create destination directory if needed +DEST_DIR=$(dirname "$DEST_PATH_STRIPPED") +if [[ -n "$DEST_DIR" && "$DEST_DIR" != "." ]]; then + mkdir -p "$DEST_DIR" +fi + +# Check if destination already exists +if [[ -e "$DEST_PATH_STRIPPED" ]]; then + echo "WARNING: Destination file already exists and will be overwritten: $DEST_PATH" >&2 +fi + +# Move the file +mv -f "$SOURCE_PATH_STRIPPED" "$DEST_PATH_STRIPPED" + +# Verify the move +if [[ ! -e "$DEST_PATH_STRIPPED" ]]; then + echo "ERROR: Move failed - destination file not found after move!" >&2 + exit 1 +fi + +if [[ -e "$SOURCE_PATH_STRIPPED" ]]; then + echo "ERROR: Move failed - source file still exists after move!" >&2 + exit 1 +fi + +echo "✓ File moved successfully" +echo " From: /$SOURCE_PATH_STRIPPED" +echo " To: /$DEST_PATH_STRIPPED" diff --git a/scripts/debian/session/deb-session-open.sh b/scripts/debian/session/deb-session-open.sh new file mode 100755 index 000000000000..3a586e6570f4 --- /dev/null +++ b/scripts/debian/session/deb-session-open.sh @@ -0,0 +1,156 @@ +#!/usr/bin/env bash + +set -eux -o pipefail + +# Source common functions +SCRIPT_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/deb-session-common.sh" + +usage() { + cat < + +Opens a Debian package for modification by extracting it into a session directory. + +Arguments: + Path to the .deb file to open + Directory where the session will be created + +Session Structure: + / + ├── metadata.env # Session metadata (compression type, paths, etc.) + ├── debian-binary # Debian package version + ├── control/ # Extracted control.tar.* + └── data/ # Extracted data.tar.* (modify this) + +Example: + $0 mina-devnet_3.3.0_amd64.deb ./my-session + # Now you can modify files in ./my-session/data/ + # Then use deb-session-save.sh to create the modified .deb + +Notes: + - Session directory will be created if it doesn't exist + - If session directory exists, it will be cleaned first + - All paths in metadata.env are absolute +EOF +} + +if [[ $# -ne 2 ]]; then + usage + exit 1 +fi + +INPUT_DEB="$1" +SESSION_DIR="$2" + +# Validate input +if [[ ! -f "$INPUT_DEB" ]]; then + echo "ERROR: Input .deb file not found: $INPUT_DEB" >&2 + exit 1 +fi + +# Convert to absolute paths +INPUT_DEB_ABS=$(readlink -f "$INPUT_DEB") + +# Create or clean session directory +if [[ -d "$SESSION_DIR" ]]; then + # Security: Prevent SESSION_DIR from being a symlink to prevent escaping workspace + if [[ -L "$SESSION_DIR" ]]; then + echo "ERROR: Session directory cannot be a symlink (security restriction)" >&2 + exit 1 + fi + echo "Cleaning existing session directory: $SESSION_DIR" + rm -rf "${SESSION_DIR:?}"/* +else + mkdir -p "$SESSION_DIR" +fi + +SESSION_DIR_ABS=$(readlink -f "$SESSION_DIR") + +echo "=== Opening Debian Package ===" +echo "Input: $INPUT_DEB_ABS" +echo "Session: $SESSION_DIR_ABS" + +cd "$SESSION_DIR_ABS" + +# Extract .deb structure: debian-binary, control.tar.*, data.tar.* +echo "Extracting package structure..." +ar x "$INPUT_DEB_ABS" + +# Find the archives +CONTROL_TAR=$(echo control.tar.* 2>/dev/null || true) +DATA_TAR=$(echo data.tar.* 2>/dev/null || true) + +if [[ -z "$CONTROL_TAR" || -z "$DATA_TAR" ]]; then + echo "ERROR: Could not find control.tar.* or data.tar.* in $INPUT_DEB_ABS" >&2 + exit 1 +fi + +echo "Found control archive: $CONTROL_TAR" +echo "Found data archive: $DATA_TAR" + +# Detect compression type for data.tar +case "$DATA_TAR" in + data.tar) DATA_COMPRESS="none" ;; + data.tar.gz) DATA_COMPRESS="gz" ;; + data.tar.xz) DATA_COMPRESS="xz" ;; + data.tar.zst) DATA_COMPRESS="zst" ;; + *) + echo "ERROR: Unknown data.tar compression: $DATA_TAR" >&2 + exit 1 + ;; +esac + +# Detect compression type for control.tar +case "$CONTROL_TAR" in + control.tar) CONTROL_COMPRESS="none" ;; + control.tar.gz) CONTROL_COMPRESS="gz" ;; + control.tar.xz) CONTROL_COMPRESS="xz" ;; + control.tar.zst) CONTROL_COMPRESS="zst" ;; + *) + echo "ERROR: Unknown control.tar compression: $CONTROL_TAR" >&2 + exit 1 + ;; +esac + +# Extract control.tar.* into control/ +mkdir -p control +echo "Extracting control archive..." +tar -xf "$CONTROL_TAR" -C control + +# Extract data.tar.* into data/ +mkdir -p data +echo "Extracting data archive..." +tar -xf "$DATA_TAR" -C data + +# Create metadata file +echo "Creating session metadata..." +# Security: Use printf '%q' to safely escape values to prevent command injection +{ + echo "# Debian Package Session Metadata" + echo "# Generated by deb-session-open.sh" + echo "" + printf "INPUT_DEB=%q\n" "$INPUT_DEB_ABS" + printf "SESSION_DIR=%q\n" "$SESSION_DIR_ABS" + printf "DATA_COMPRESS=%q\n" "$DATA_COMPRESS" + printf "CONTROL_COMPRESS=%q\n" "$CONTROL_COMPRESS" + printf "CREATED_AT=%q\n" "$(date -u +"%Y-%m-%dT%H:%M:%SZ")" + echo "" + echo "# Original package info" + printf "PACKAGE_NAME=%q\n" "$(dpkg-deb --field "$INPUT_DEB_ABS" Package || echo "unknown")" + printf "PACKAGE_VERSION=%q\n" "$(dpkg-deb --field "$INPUT_DEB_ABS" Version || echo "unknown")" + printf "PACKAGE_ARCH=%q\n" "$(dpkg-deb --field "$INPUT_DEB_ABS" Architecture || echo "unknown")" +} > metadata.env + +# Clean up the extracted tar files (we only need the unpacked directories) +rm -f "$CONTROL_TAR" "$DATA_TAR" + +echo "" +echo "=== Session Opened Successfully ===" +echo "Session directory: $SESSION_DIR_ABS" +echo "" +echo "You can now modify files in:" +echo " - $SESSION_DIR_ABS/data/ (package contents)" +echo " - $SESSION_DIR_ABS/control/ (package metadata)" +echo "" +echo "When done, use deb-session-save.sh to create the modified package." diff --git a/scripts/debian/session/deb-session-remove.sh b/scripts/debian/session/deb-session-remove.sh new file mode 100755 index 000000000000..54ca46af4fc8 --- /dev/null +++ b/scripts/debian/session/deb-session-remove.sh @@ -0,0 +1,119 @@ +#!/usr/bin/env bash + +set -eux -o pipefail + +# Source common functions +SCRIPT_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/deb-session-common.sh" + +usage() { + cat < + +Removes file(s) matching a pattern from the package. + +Arguments: + Session directory created by deb-session-open.sh + Path or glob pattern to match files for removal (absolute path) + +Example: + # Remove all config_*.json files + $0 ./my-session /var/lib/coda/config_*.json + + # Remove specific file + $0 ./my-session /var/lib/coda/devnet.json + + # Remove all files in a directory + $0 ./my-session /var/lib/coda/old_configs/* + + # Remove all .log files in a directory tree + $0 ./my-session /var/log/mina/**/*.log + +Notes: + - Path should be absolute as it appears when package is installed + - Glob patterns are supported (e.g., config_*.json, **/*.log) + - If no files match the pattern, an error will be reported + - Directories are not removed, only files + - Use with caution - removed files cannot be recovered from the session +EOF +} + +if [[ $# -ne 2 ]]; then + usage + exit 1 +fi + +SESSION_DIR="$1" +PATH_PATTERN="$2" + +# Validate session directory +validate_session "$SESSION_DIR" + +# Validate path pattern doesn't escape session (handles wildcards) +validate_path_in_session "$SESSION_DIR_ABS" "${PATH_PATTERN%%\**}" "Path pattern" + +echo "=== Removing File(s) from Package ===" +echo "Session: $SESSION_DIR_ABS" +echo "Pattern: $PATH_PATTERN" + +# Navigate to session data directory +cd "$(get_session_data_dir "$SESSION_DIR_ABS")" + +# Strip leading slash for path inside data/ +PATH_PATTERN_STRIPPED=$(strip_leading_slash "$PATH_PATTERN") + +# Find matching files +MATCHED_FILES=() +# NOTE: globstar requires Bash 4.0+. The ** pattern allows matching files recursively. +shopt -s globstar nullglob +if [[ "$PATH_PATTERN_STRIPPED" == *"*"* ]] || [[ "$PATH_PATTERN_STRIPPED" == *"?"* ]]; then + # Glob pattern - find all matching files + for file in $PATH_PATTERN_STRIPPED; do + if [[ -f "$file" ]]; then + MATCHED_FILES+=("$file") + fi + done +else + # Exact path + if [[ -f "$PATH_PATTERN_STRIPPED" ]]; then + MATCHED_FILES=("$PATH_PATTERN_STRIPPED") + fi +fi +shopt -u globstar nullglob + +if [[ ${#MATCHED_FILES[@]} -eq 0 ]]; then + echo "ERROR: No files found matching: $PATH_PATTERN" >&2 + echo "" >&2 + echo "Available files in parent directory:" >&2 + PARENT_DIR=$(dirname "$PATH_PATTERN_STRIPPED") + if [[ -d "$PARENT_DIR" ]]; then + find "$PARENT_DIR" -type f 2>/dev/null | head -20 || true + else + echo " (parent directory does not exist)" >&2 + fi + exit 1 +fi + +echo "Found ${#MATCHED_FILES[@]} file(s) to remove:" +echo "" + +# Remove each matching file +REMOVED_COUNT=0 +for FILE in "${MATCHED_FILES[@]}"; do + # Remove leading ./ if present + FILE="${FILE#./}" + + echo " → Removing: /$FILE" + rm -f "$FILE" + + # Verify removal + if [[ -f "$FILE" ]]; then + echo " ERROR: Failed to remove $FILE" >&2 + exit 1 + fi + + REMOVED_COUNT=$((REMOVED_COUNT + 1)) +done + +echo "" +echo "✓ Removal complete: $REMOVED_COUNT file(s) removed" diff --git a/scripts/debian/session/deb-session-rename-package.sh b/scripts/debian/session/deb-session-rename-package.sh new file mode 100755 index 000000000000..1a3d4c2ea421 --- /dev/null +++ b/scripts/debian/session/deb-session-rename-package.sh @@ -0,0 +1,101 @@ +#!/usr/bin/env bash + +set -eux -o pipefail + +# Source common functions +SCRIPT_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/deb-session-common.sh" + +usage() { + cat < + +Renames the Debian package by updating the Package field in the control file. + +Arguments: + Session directory created by deb-session-open.sh + New package name (e.g., "mina-devnet-hardfork") + +Example: + # Rename package to add -hardfork suffix + $0 ./my-session mina-devnet-hardfork + +Notes: + - Only modifies the Package: field in the control file + - Version, architecture, and all other metadata remain unchanged + - Package name must follow Debian naming conventions + - Must start with lowercase letter or digit + - Can contain lowercase letters, digits, plus, minus, and dots +EOF +} + +if [[ $# -ne 2 ]]; then + usage + exit 1 +fi + +SESSION_DIR="$1" +NEW_PACKAGE_NAME="$2" + +# Validate session directory +validate_session "$SESSION_DIR" + +# Validate control directory +CONTROL_DIR=$(get_session_control_dir "$SESSION_DIR_ABS") +if [[ ! -d "$CONTROL_DIR" ]]; then + echo "ERROR: Session control directory not found. Session corrupted?" >&2 + exit 1 +fi + +CONTROL_FILE="$CONTROL_DIR/control" +if [[ ! -f "$CONTROL_FILE" ]]; then + echo "ERROR: Control file not found: $CONTROL_FILE" >&2 + exit 1 +fi + +# Validate package name (Debian naming conventions) +if [[ ! "$NEW_PACKAGE_NAME" =~ ^[a-z0-9][a-z0-9+.-]+$ ]]; then + echo "ERROR: Invalid package name: $NEW_PACKAGE_NAME" >&2 + echo "Package names must:" >&2 + echo " - Start with a lowercase letter or digit" >&2 + echo " - Contain only lowercase letters, digits, plus (+), minus (-), and dots (.)" >&2 + exit 1 +fi + +echo "=== Renaming Package ===" +echo "Session: $SESSION_DIR_ABS" + +# Get current package name +OLD_PACKAGE_NAME=$(grep '^Package:' "$CONTROL_FILE" | awk '{print $2}' || true) + +if [[ -z "$OLD_PACKAGE_NAME" ]]; then + echo "ERROR: No Package field found in control file" >&2 + exit 1 +fi + +echo "Current: $OLD_PACKAGE_NAME" +echo "New: $NEW_PACKAGE_NAME" + +# Check if already has the target name +if [[ "$OLD_PACKAGE_NAME" == "$NEW_PACKAGE_NAME" ]]; then + echo "Package already has the target name. Nothing to do." + exit 0 +fi + +# Update the Package field +sed -i "s/^Package: .*$/Package: $NEW_PACKAGE_NAME/" "$CONTROL_FILE" + +# Verify the change +UPDATED_PACKAGE_NAME=$(grep '^Package:' "$CONTROL_FILE" | awk '{print $2}' || true) + +if [[ "$UPDATED_PACKAGE_NAME" != "$NEW_PACKAGE_NAME" ]]; then + echo "ERROR: Failed to update Package field in control file" >&2 + echo "Expected: $NEW_PACKAGE_NAME" >&2 + echo "Got: $UPDATED_PACKAGE_NAME" >&2 + exit 1 +fi + +echo "✓ Package renamed successfully" +echo "" +echo "Updated control file:" +grep -E "^(Package|Version|Architecture):" "$CONTROL_FILE" || true diff --git a/scripts/debian/session/deb-session-replace.sh b/scripts/debian/session/deb-session-replace.sh new file mode 100755 index 000000000000..938ee8022b0c --- /dev/null +++ b/scripts/debian/session/deb-session-replace.sh @@ -0,0 +1,112 @@ +#!/usr/bin/env bash + +set -eux -o pipefail + +# Source common functions +SCRIPT_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" +source "$SCRIPT_DIR/deb-session-common.sh" + +usage() { + cat < + +Replaces a file (or files matching a pattern) in the package with a new file. + +Arguments: + Session directory created by deb-session-open.sh + Path to file in package (supports wildcards like /var/lib/coda/config_*.json) + Local file to replace it with + +Example: + # Replace config_*.json with new_config.json + $0 ./my-session /var/lib/coda/config_*.json new_config.json + + # Replace specific config file + $0 ./my-session /var/lib/coda/config_devnet.json new_config.json + +Notes: + - Path should be absolute as it appears when package is installed + - Wildcards are supported (e.g., config_*.json will replace all matching files) + - If multiple files match, they will all be replaced with the same replacement file + - File permissions are set to 0644 +EOF +} + +if [[ $# -ne 3 ]]; then + usage + exit 1 +fi + +SESSION_DIR="$1" +PKG_PATH="$2" +REPLACEMENT="$3" + +# Validate session directory +validate_session "$SESSION_DIR" + +# Validate package path doesn't escape session (handles wildcards) +validate_path_in_session "$SESSION_DIR_ABS" "${PKG_PATH%%\**}" "Package path" + +if [[ ! -f "$REPLACEMENT" ]]; then + echo "ERROR: Replacement file not found: $REPLACEMENT" >&2 + exit 1 +fi + +REPLACEMENT_ABS=$(readlink -f "$REPLACEMENT") + +echo "=== Replacing File(s) in Package ===" +echo "Session: $SESSION_DIR_ABS" +echo "Target: $PKG_PATH" +echo "Source: $REPLACEMENT_ABS" + +# Navigate to session data directory +cd "$(get_session_data_dir "$SESSION_DIR_ABS")" + +# Strip leading slash for path inside data/ +PKG_PATH_STRIPPED=$(strip_leading_slash "$PKG_PATH") + +# Find matching files +TARGET_PATHS=() +if [[ "$PKG_PATH_STRIPPED" == *"*"* ]]; then + # Glob pattern - find all matching files + while IFS= read -r -d '' file; do + TARGET_PATHS+=("$file") + done < <(find . -path "./$PKG_PATH_STRIPPED" -print0 2>/dev/null || true) +else + # Exact path + if [[ -f "$PKG_PATH_STRIPPED" ]]; then + TARGET_PATHS=("$PKG_PATH_STRIPPED") + fi +fi + +if [[ ${#TARGET_PATHS[@]} -eq 0 ]]; then + echo "ERROR: No files found matching: $PKG_PATH" >&2 + echo "Available files in /var/lib/coda/:" >&2 + find ./var/lib/coda -type f 2>/dev/null | head -20 || true + exit 1 +fi + +echo "Found ${#TARGET_PATHS[@]} file(s) to replace:" + +# Replace each matching file +for TARGET_PATH in "${TARGET_PATHS[@]}"; do + # Remove leading ./ if present + TARGET_PATH="${TARGET_PATH#./}" + + TARGET_DIR=$(dirname "$TARGET_PATH") + mkdir -p "$TARGET_DIR" + + echo " → Replacing: /$TARGET_PATH" + install -m 0644 "$REPLACEMENT_ABS" "$TARGET_PATH" + + # Verify replacement + if cmp -s "$REPLACEMENT_ABS" "$TARGET_PATH"; then + echo " ✓ Verified" + else + echo " ERROR: Replacement verification failed for $TARGET_PATH" >&2 + exit 1 + fi +done + +echo "" +echo "✓ Replacement complete: ${#TARGET_PATHS[@]} file(s) updated" diff --git a/scripts/debian/session/deb-session-save.sh b/scripts/debian/session/deb-session-save.sh new file mode 100755 index 000000000000..9505962c7c3e --- /dev/null +++ b/scripts/debian/session/deb-session-save.sh @@ -0,0 +1,183 @@ +#!/usr/bin/env bash + +set -eux -o pipefail + +usage() { + cat < [--verify] + +Saves a Debian package session by repacking the modified files into a .deb. + +Arguments: + Session directory created by deb-session-open.sh + Output path for the generated .deb file + --verify Optional: verify data archive integrity (recommended) + +Example: + $0 ./my-session mina-devnet-hardfork_3.3.0_amd64.deb --verify + +Notes: + - Reads compression settings from metadata.env + - Preserves original compression formats + - Normalizes file ownership to root:root + - Creates reproducible archives (no timestamps in gzip) +EOF +} + +if [[ $# -lt 2 || $# -gt 3 ]]; then + usage + exit 1 +fi + +SESSION_DIR="$1" +OUTPUT_DEB="$2" +VERIFY_MODE="false" + +if [[ $# -eq 3 ]]; then + if [[ "$3" == "--verify" ]]; then + VERIFY_MODE="true" + else + echo "ERROR: Unknown option: $3" >&2 + usage + exit 1 + fi +fi + +# Validate session directory +if [[ ! -d "$SESSION_DIR" ]]; then + echo "ERROR: Session directory not found: $SESSION_DIR" >&2 + exit 1 +fi + +SESSION_DIR_ABS=$(readlink -f "$SESSION_DIR") +METADATA_FILE="$SESSION_DIR_ABS/metadata.env" + +if [[ ! -f "$METADATA_FILE" ]]; then + echo "ERROR: Session metadata not found: $METADATA_FILE" >&2 + echo "This doesn't appear to be a valid session directory." >&2 + exit 1 +fi + +# Source metadata +source "$METADATA_FILE" + +# Validate required directories +if [[ ! -d "$SESSION_DIR_ABS/control" || ! -d "$SESSION_DIR_ABS/data" ]]; then + echo "ERROR: Session missing required directories (control/ or data/)" >&2 + exit 1 +fi + +# Make output path absolute +if [[ "$OUTPUT_DEB" != /* ]]; then + OUTPUT_DEB="$(pwd)/$OUTPUT_DEB" +fi + +echo "=== Saving Debian Package ===" +echo "Session: $SESSION_DIR_ABS" +echo "Output: $OUTPUT_DEB" + +cd "$SESSION_DIR_ABS" + +# Repack control archive +echo "Repacking control archive (compression: $CONTROL_COMPRESS)..." +rm -f control.tar control.tar.gz control.tar.xz control.tar.zst + +case "$CONTROL_COMPRESS" in + none) + tar --numeric-owner --owner=0 --group=0 -cf control.tar -C control . + CONTROL_TAR="control.tar" + ;; + gz) + tar --numeric-owner --owner=0 --group=0 -cf control.tar -C control . + gzip -nf control.tar # -n = no timestamp for reproducibility + CONTROL_TAR="control.tar.gz" + ;; + xz) + tar --numeric-owner --owner=0 --group=0 -cf control.tar -C control . + xz -z control.tar + CONTROL_TAR="control.tar.xz" + ;; + zst) + tar --numeric-owner --owner=0 --group=0 -cf control.tar -C control . + zstd -q control.tar + rm -f control.tar + CONTROL_TAR="control.tar.zst" + ;; + *) + echo "ERROR: Unknown control compression type: $CONTROL_COMPRESS" >&2 + exit 1 + ;; +esac + +# Repack data archive +echo "Repacking data archive (compression: $DATA_COMPRESS)..." +rm -f data.tar data.tar.gz data.tar.xz data.tar.zst + +case "$DATA_COMPRESS" in + none) + tar --numeric-owner --owner=0 --group=0 -cf data.tar -C data . + DATA_TAR="data.tar" + ;; + gz) + tar --numeric-owner --owner=0 --group=0 -cf data.tar -C data . + gzip -nf data.tar # -n = no timestamp for reproducibility + DATA_TAR="data.tar.gz" + ;; + xz) + tar --numeric-owner --owner=0 --group=0 -cf data.tar -C data . + xz -z data.tar + DATA_TAR="data.tar.xz" + ;; + zst) + tar --numeric-owner --owner=0 --group=0 -cf data.tar -C data . + zstd -q data.tar + rm -f data.tar + DATA_TAR="data.tar.zst" + ;; + *) + echo "ERROR: Unknown data compression type: $DATA_COMPRESS" >&2 + exit 1 + ;; +esac + +# Rebuild .deb package +echo "Assembling .deb package..." +rm -f "$OUTPUT_DEB" +ar rcs "$OUTPUT_DEB" debian-binary "$CONTROL_TAR" "$DATA_TAR" + +# Verification +if [[ "$VERIFY_MODE" == "true" ]]; then + echo "" + echo "=== Verifying Package ===" + + if [[ ! -f "$OUTPUT_DEB" ]]; then + echo "ERROR: Output package was not created!" >&2 + exit 1 + fi + + # Verify package can be read + if ! dpkg-deb --info "$OUTPUT_DEB" > /dev/null 2>&1; then + echo "ERROR: Generated package is not a valid .deb file!" >&2 + exit 1 + fi + + # Show package info + echo "Package size: $(du -h "$OUTPUT_DEB" | awk '{print $1}')" + echo "" + echo "Package information:" + dpkg-deb --info "$OUTPUT_DEB" | grep -E "^\s*(Package|Version|Architecture):" || true + + # Count files + FILE_COUNT=$(dpkg-deb -c "$OUTPUT_DEB" | wc -l) + echo "Total files in package: $FILE_COUNT" + + echo "✓ Package verification passed" +fi + +echo "" +echo "=== Package Saved Successfully ===" +echo "Output: $OUTPUT_DEB" + +# Clean up temporary tar files +rm -f control.tar control.tar.gz control.tar.xz control.tar.zst +rm -f data.tar data.tar.gz data.tar.xz data.tar.zst diff --git a/scripts/debian/session/tests/run-deb-session-tests.sh b/scripts/debian/session/tests/run-deb-session-tests.sh new file mode 100755 index 000000000000..b9669934995a --- /dev/null +++ b/scripts/debian/session/tests/run-deb-session-tests.sh @@ -0,0 +1,219 @@ +#!/usr/bin/env bash + +# ------------------------------------------------------------------------------ +# run-deb-session-tests.sh +# ------------------------------------------------------------------------------ +# This script runs a suite of integration tests for the deb-session scripts, +# which provide a session-based interface for manipulating Debian packages. +# +# The tests cover the following operations: +# - Opening a Debian package into a session directory +# - Inserting files into the session (directory and file targets) +# - Moving files within the session +# - Replacing files matching a glob pattern +# - Removing files matching a glob pattern +# - Renaming the package +# - Saving the session back to a .deb file and verifying its contents +# +# Each test step uses assert functions to verify correctness, and the script +# will exit with an error if any assertion fails. +# ------------------------------------------------------------------------------ + +set -eux -o pipefail + +# Determine the directory of this test script and the session scripts directory +TEST_DIR="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" +SESSION_SCRIPTS_DIR="$(realpath "$TEST_DIR/..")" + +# Log a message with a test prefix +log() { + echo "[deb-session-test] $*" +} + +# Print an error message and exit +fail() { + echo "[deb-session-test][ERROR] $*" >&2 + exit 1 +} + +# Assert that a file's contents match the expected string +assert_file_equals() { + local path="$1" + local expected="$2" + local actual + actual="$(cat "$path")" + if [[ "$actual" != "$expected" ]]; then + fail "File $path does not match expected contents. Got: '$actual'" + fi +} + +# Assert that a file or directory does not exist +assert_not_exists() { + local path="$1" + if [[ -e "$path" ]]; then + fail "Expected $path to be absent" + fi +} + +# Assert that a file or directory exists +assert_exists() { + local path="$1" + if [[ ! -e "$path" ]]; then + fail "Expected $path to exist" + fi +} + +# Create a temporary working directory for the test session +WORKDIR="$(mktemp -d -t deb-session-test-XXXXXX)" +# Ensure cleanup on exit +cleanup() { + rm -rf "$WORKDIR" +} +trap cleanup EXIT + +# ------------------------------------------------------------------------------ +# Create a sample Debian package for testing +# ------------------------------------------------------------------------------ +log "Creating sample Debian package" +PKG_DIR="$WORKDIR/sample" +mkdir -p "$PKG_DIR"/{DEBIAN,var/lib/coda,etc/mina} + +cat > "$PKG_DIR/DEBIAN/control" <<'EOF' +Package: mina-devnet +Version: 1.0 +Section: utils +Priority: optional +Architecture: amd64 +Maintainer: Mina Protocol +Description: Sample package for deb-session tests +EOF + +# Populate the package with some files +echo "ledger-original" > "$PKG_DIR/var/lib/coda/ledger.dat" +echo "config-one" > "$PKG_DIR/var/lib/coda/config_1.json" +echo "config-two" > "$PKG_DIR/var/lib/coda/config_2.json" +echo "devnet-config" > "$PKG_DIR/var/lib/coda/devnet.json" +echo "node-config" > "$PKG_DIR/etc/mina/node.json" + +# Build the .deb package +INPUT_DEB="$WORKDIR/input.deb" +dpkg-deb --build "$PKG_DIR" "$INPUT_DEB" + +# ------------------------------------------------------------------------------ +# Open the package into a session directory +# ------------------------------------------------------------------------------ +SESSION_DIR="$WORKDIR/session" +"$SESSION_SCRIPTS_DIR/deb-session-open.sh" "$INPUT_DEB" "$SESSION_DIR" + +assert_exists "$SESSION_DIR/metadata.env" +assert_exists "$SESSION_DIR/control/control" +assert_exists "$SESSION_DIR/data/var/lib/coda/ledger.dat" +assert_exists "$SESSION_DIR/data/etc/mina/node.json" +assert_exists "$SESSION_DIR/data/var/lib/coda/config_1.json" +assert_exists "$SESSION_DIR/data/var/lib/coda/config_2.json" +assert_exists "$SESSION_DIR/data/var/lib/coda/devnet.json" + +# ------------------------------------------------------------------------------ +# Test inserting files into a directory target +# ------------------------------------------------------------------------------ +log "Testing deb-session-insert.sh (directory target)" +INSERT_FILE1="$WORKDIR/new-ledger1.tar.gz" +INSERT_FILE2="$WORKDIR/new-ledger2.tar.gz" +echo "ledger-one" > "$INSERT_FILE1" +echo "ledger-two" > "$INSERT_FILE2" + +# Insert two files into /var/lib/coda/ in the session +"$SESSION_SCRIPTS_DIR/deb-session-insert.sh" \ + "$SESSION_DIR" \ + "/var/lib/coda/" \ + "$INSERT_FILE1" "$INSERT_FILE2" + +assert_file_equals "$SESSION_DIR/data/var/lib/coda/new-ledger1.tar.gz" "ledger-one" +assert_file_equals "$SESSION_DIR/data/var/lib/coda/new-ledger2.tar.gz" "ledger-two" + +# ------------------------------------------------------------------------------ +# Test inserting a file into a file target +# ------------------------------------------------------------------------------ +log "Testing deb-session-insert.sh (file target)" +FILE_DEST_SOURCE="$WORKDIR/new-config.json" +echo '{"inserted":true}' > "$FILE_DEST_SOURCE" +"$SESSION_SCRIPTS_DIR/deb-session-insert.sh" \ + "$SESSION_DIR" \ + "/etc/mina/override.json" \ + "$FILE_DEST_SOURCE" + +assert_file_equals "$SESSION_DIR/data/etc/mina/override.json" '{"inserted":true}' + +# ------------------------------------------------------------------------------ +# Test moving a file within the session +# ------------------------------------------------------------------------------ +log "Testing deb-session-move.sh" +"$SESSION_SCRIPTS_DIR/deb-session-move.sh" \ + "$SESSION_DIR" \ + "/var/lib/coda/new-ledger1.tar.gz" \ + "/var/lib/coda/moved-ledger.tar.gz" + +assert_exists "$SESSION_DIR/data/var/lib/coda/moved-ledger.tar.gz" +assert_not_exists "$SESSION_DIR/data/var/lib/coda/new-ledger1.tar.gz" + +# ------------------------------------------------------------------------------ +# Test replacing files matching a glob pattern +# ------------------------------------------------------------------------------ +log "Testing deb-session-replace.sh" +REPLACEMENT_FILE="$WORKDIR/replacement.json" +echo 'replaced' > "$REPLACEMENT_FILE" +"$SESSION_SCRIPTS_DIR/deb-session-replace.sh" \ + "$SESSION_DIR" \ + "/var/lib/coda/config_*.json" \ + "$REPLACEMENT_FILE" + +assert_file_equals "$SESSION_DIR/data/var/lib/coda/config_1.json" 'replaced' +assert_file_equals "$SESSION_DIR/data/var/lib/coda/config_2.json" 'replaced' + +# ------------------------------------------------------------------------------ +# Test removing files matching a glob pattern +# ------------------------------------------------------------------------------ +log "Testing deb-session-remove.sh" +"$SESSION_SCRIPTS_DIR/deb-session-remove.sh" \ + "$SESSION_DIR" \ + "/var/lib/coda/*.tar.gz" + +assert_not_exists "$SESSION_DIR/data/var/lib/coda/moved-ledger.tar.gz" +assert_not_exists "$SESSION_DIR/data/var/lib/coda/new-ledger2.tar.gz" + +# ------------------------------------------------------------------------------ +# Test renaming the package +# ------------------------------------------------------------------------------ +log "Testing deb-session-rename-package.sh" +"$SESSION_SCRIPTS_DIR/deb-session-rename-package.sh" \ + "$SESSION_DIR" \ + "mina-devnet-hardfork" + +# Verify the control file was updated +PACKAGE_NAME=$(awk '/^Package:/ {print $2}' "$SESSION_DIR/control/control") +if [[ "$PACKAGE_NAME" != "mina-devnet-hardfork" ]]; then + fail "control file not updated with new package name (got: $PACKAGE_NAME)" +fi + +# ------------------------------------------------------------------------------ +# Test saving the session back to a .deb and verifying contents +# ------------------------------------------------------------------------------ +log "Testing deb-session-save.sh" +OUTPUT_DEB="$WORKDIR/output.deb" +"$SESSION_SCRIPTS_DIR/deb-session-save.sh" "$SESSION_DIR" "$OUTPUT_DEB" --verify + +NEW_PACKAGE_NAME="$(dpkg-deb --field "$OUTPUT_DEB" Package)" +if [[ "$NEW_PACKAGE_NAME" != "mina-devnet-hardfork" ]]; then + fail "Saved package has unexpected name: $NEW_PACKAGE_NAME" +fi + +# Extract the resulting .deb and verify its contents +EXTRACT_DIR="$WORKDIR/extracted" +mkdir -p "$EXTRACT_DIR" +dpkg-deb -x "$OUTPUT_DEB" "$EXTRACT_DIR" + +assert_file_equals "$EXTRACT_DIR/var/lib/coda/config_1.json" 'replaced' +assert_file_equals "$EXTRACT_DIR/etc/mina/override.json" '{"inserted":true}' +assert_not_exists "$EXTRACT_DIR/var/lib/coda/moved-ledger.tar.gz" + +log "All deb-session scripts executed successfully" diff --git a/scripts/docker/build.sh b/scripts/docker/build.sh index 5180d966d5d9..4c16ef63a458 100755 --- a/scripts/docker/build.sh +++ b/scripts/docker/build.sh @@ -43,6 +43,8 @@ function usage() { # Defines if build is for pushing to remote registry or loading locally only. # Can be overridden with --load-only flag. DOCKER_ACTION="push" +# By default we use cache +NO_CACHE="" while [[ "$#" -gt 0 ]]; do case $1 in -s|--service) SERVICE="$2"; shift;; @@ -155,9 +157,11 @@ if [[ -z "$DEB_BUILD_FLAGS" ]]; then DEB_BUILD_FLAGS="" fi -CACHE="--cache-from $INPUT_CACHE" -if [[ -z "$INPUT_CACHE" ]]; then + +if [[ -z "${INPUT_CACHE:-}" ]]; then CACHE="" +else + CACHE="--cache-from $INPUT_CACHE" fi DEB_REPO="--build-arg deb_repo=$INPUT_REPO" @@ -261,7 +265,7 @@ export_docker_tag BUILD_NETWORK="--allow=network.host" # If DOCKER_CONTEXT is not specified, assume none and just pipe the dockerfile into docker build -if [[ -z "${DOCKER_CONTEXT}" ]]; then +if [[ -z "${DOCKER_CONTEXT:-}" ]]; then cat $DOCKERFILE_PATH | docker buildx build --network=host \ --"$DOCKER_ACTION" --progress=plain $PLATFORM $DEBIAN_ARCH_ARG $CANONICAL_ARCH_ARG $DOCKER_REPO_ARG $NO_CACHE $BUILD_NETWORK $CACHE $NETWORK $IMAGE $DEB_CODENAME $DEB_RELEASE $DEB_VERSION $DOCKER_DEB_SUFFIX $DEB_REPO $BRANCH $REPO $LEGACY_VERSION -t "$TAG" -t "$HASHTAG" - else diff --git a/scripts/docker/helper.sh b/scripts/docker/helper.sh index 9bbb6ed8dc85..d4feea49eea0 100644 --- a/scripts/docker/helper.sh +++ b/scripts/docker/helper.sh @@ -2,6 +2,8 @@ set -eox pipefail +source "$(dirname "$0")/../export-git-env-vars.sh" + # Array of valid service names export VALID_SERVICES=('mina-archive' 'mina-daemon' 'mina-daemon-legacy-hardfork' 'mina-daemon-auto-hardfork' 'mina-rosetta' 'mina-test-suite' 'mina-batch-txn' 'mina-zkapp-test-transaction' 'mina-toolchain' 'leaderboard' 'delegation-backend' 'mina-delegation-verifier' 'delegation-backend-toolchain') @@ -104,10 +106,7 @@ function export_docker_tag() { PLATFORM_SUFFIX="$(get_platform_suffix)" export TAG="${DOCKER_REGISTRY}/${SERVICE}:${VERSION}${BUILD_FLAG_SUFFIX}${PLATFORM_SUFFIX}" - # friendly, predictable tag - GITHASH=$(git rev-parse --short=7 HEAD) export PLATFORM_SUFFIX - export GITHASH export HASHTAG="${DOCKER_REGISTRY}/${SERVICE}:${GITHASH}-${DEB_CODENAME##*=}-${NETWORK##*=}${BUILD_FLAG_SUFFIX}${PLATFORM_SUFFIX}" } diff --git a/scripts/export-git-env-vars.sh b/scripts/export-git-env-vars.sh index ae376c5e4f59..98254a881115 100755 --- a/scripts/export-git-env-vars.sh +++ b/scripts/export-git-env-vars.sh @@ -20,8 +20,11 @@ function find_most_recent_numeric_tag() { echo $TAG } -GITHASH=$(git rev-parse --short=7 HEAD) -THIS_COMMIT_TAG=$(git tag --points-at HEAD) +GITHASH_CONFIG=$(git rev-parse --short=8 --verify HEAD) +# Remove last character to get 7-character short hash +GITHASH=${GITHASH_CONFIG%?} +THIS_COMMIT_TAG=${OVERRIDE_TAG:-$(git tag --points-at HEAD)} +REPO_ROOT="$(git rev-parse --show-toplevel)" if [[ -v BRANCH_NAME ]]; then GITBRANCH=$(echo "$BRANCH_NAME" | sed 's!/!-!g; s!_!-!g; s!#!-!g') @@ -31,15 +34,23 @@ fi GITTAG=$(find_most_recent_numeric_tag HEAD) -MINA_DEB_VERSION="${GITTAG}-${GITBRANCH}-${GITHASH}" + +if [[ "${SKIP_GITBRANCH:-0}" == "1" ]]; then + MINA_DEB_VERSION="${GITTAG}-${GITHASH}" +else + MINA_DEB_VERSION="${GITTAG}-${GITBRANCH}-${GITHASH}" +fi + MINA_DOCKER_TAG=$(echo "${MINA_DEB_VERSION}-${MINA_DEB_CODENAME}" | sed 's!/!-!g; s!_!-!g') [[ -v THIS_COMMIT_TAG ]] && export MINA_COMMIT_TAG="${THIS_COMMIT_TAG}" export GITTAG export GITHASH +export GITHASH_CONFIG export GITBRANCH export MINA_DEB_VERSION export MINA_DOCKER_TAG export THIS_COMMIT_TAG export MINA_DEB_CODENAME=${MINA_DEB_CODENAME:=bullseye} +export REPO_ROOT \ No newline at end of file diff --git a/scripts/hardfork/convert-daemon-debian-to-hf.sh b/scripts/hardfork/convert-daemon-debian-to-hf.sh new file mode 100755 index 000000000000..ea54aaca5ce8 --- /dev/null +++ b/scripts/hardfork/convert-daemon-debian-to-hf.sh @@ -0,0 +1,276 @@ +#!/bin/bash + +# Script to convert an existing mina-daemon Debian package into a hardfork-specific package +# by replacing its runtime configuration and ledger files. +# +# Debian naming scheme for mina daemon packages: +# mina-${NETWORK}-${PROFILE_OR_GENERAL_SUFFIX} +# +# Where: +# NETWORK: mainnet, devnet, berkeley, testnet-agnostic +# PROFILE: devnet, mainnet, dev, lightnet +# SUFFIX: hardfork (used to differentiate from standard daemon) + +set -ex + +VERIFY=1 + +usage() { + echo "Usage: $0 -d -c -l -n " + echo " -d Path to mina-daemon.deb file" + echo " -c Path to runtime config JSON file" + echo " -l Path to ledger tarballs directory" + echo " -n Network name (e.g., devnet, testnet, mainnet)" + echo " -s Skip verification step (optional)" + exit 1 +} + +while getopts "d:c:l:n:s" opt; do + case $opt in + d) DEB_FILE="$OPTARG" ;; + c) RUNTIME_CONFIG_JSON="$OPTARG" ;; + l) LEDGER_TARBALLS="$OPTARG" ;; + n) NETWORK_NAME="$OPTARG" ;; + s) VERIFY=0 ;; + *) usage ;; + esac +done + +if [[ -z "$DEB_FILE" || -z "$RUNTIME_CONFIG_JSON" || -z "$LEDGER_TARBALLS" || -z "$NETWORK_NAME" ]]; then + usage +fi + +# Resolve absolute paths +DEB_FILE_ABS=$(readlink -f "$DEB_FILE") +RUNTIME_CONFIG_JSON_ABS=$(readlink -f "$RUNTIME_CONFIG_JSON") +LEDGER_TARBALLS_FULL=$(readlink -f "$LEDGER_TARBALLS") + +# Get directory and base name +DEB_DIR=$(dirname "$DEB_FILE_ABS") +DEB_BASE=$(basename "$DEB_FILE_ABS" .deb) + +# Extract version and architecture from the filename +VERSION=$(dpkg-deb --field "$DEB_FILE_ABS" Version) +ARCH=$(dpkg-deb --field "$DEB_FILE_ABS" Architecture) + +# Get the base name without version and arch (everything before the first underscore) +FILE_BASE_NAME="${DEB_BASE%%_*}" + +# Remove any existing -hardfork suffixes from the base name +if [[ "$FILE_BASE_NAME" == *-hardfork ]]; then + echo "Note: Input package is a hardfork package already. Removing existing -hardfork suffix from base name" + FILE_BASE_NAME="${FILE_BASE_NAME%-hardfork}" +fi + +# Construct the output filename: -hardfork__.deb +OUTPUT_DEB_FILE="${DEB_DIR}/${FILE_BASE_NAME}-hardfork_${VERSION}_${ARCH}.deb" + +# Fail if LEDGER_TARBALLS_FULL does not exist +if [[ ! -e "$LEDGER_TARBALLS_FULL" ]]; then + echo "Error: Ledger tarballs path '$LEDGER_TARBALLS_FULL' does not exist." >&2 + exit 1 +fi + +# Create temporary session directory +SESSION_DIR=$(mktemp -d) +trap 'rm -rf "$SESSION_DIR"' EXIT + +echo "" +echo "=== Converting Debian Package to Hardfork Package ===" +echo "Input: $DEB_FILE_ABS" +echo "Network: $NETWORK_NAME" +echo "Output: $OUTPUT_DEB_FILE" +echo "" + +# Open the debian package for modifications +echo "=== Step 1: Opening Debian Package for modification ===" +./scripts/debian/session/deb-session-open.sh "$DEB_FILE_ABS" "$SESSION_DIR" + +# Insert new runtime config as the network config +echo "" +echo "=== Step 2: Inserting new runtime config as ${NETWORK_NAME}.json ===" +./scripts/debian/session/deb-session-insert.sh "$SESSION_DIR" \ + "/var/lib/coda/${NETWORK_NAME}.json" \ + "$RUNTIME_CONFIG_JSON_ABS" + +# Replace config_*.json with runtime config +echo "" +echo "=== Step 3: Replacing config_*.json with new runtime config ===" +./scripts/debian/session/deb-session-replace.sh "$SESSION_DIR" \ + "/var/lib/coda/config_*.json" \ + "$RUNTIME_CONFIG_JSON_ABS" + +# Remove existing ledger tarballs before adding new ones +echo "" +echo "=== Step 4: Removing existing ledger tarballs ===" +./scripts/debian/session/deb-session-remove.sh "$SESSION_DIR" \ + "/var/lib/coda/*.tar.gz" || echo "No existing ledger tarballs to remove" + +# Insert ledger tarballs +echo "" +echo "=== Step 5: Inserting new ledger tarballs ===" + +if [[ ! -d "$LEDGER_TARBALLS_FULL" ]]; then + echo "ERROR: Ledger tarballs path must be a directory containing exactly 3 files: genesis_ledger, and two epoch ledgers" >&2 + exit 1 +fi + +# Check for required ledgers: genesis_ledger (1), epoch (1 or 2) +# There might a be a corner case that a network is too young that 2 epoch ledgers will be the same. +# +# Example: epoch_ledger_02d5328ebf05c79ef392d9b7193404d45c8cb6d13ca504dbaa651229dbbc9d19.tar.gz +# The naming scheme would be: +# +# For genesis ledger: +# "genesis_ledger_" + 64 chars hash consists of a-z / 0-9 +# +# For epoch ledger: +# "epoch_ledger_" + 64 chars hash consists of a-z / 0-9 + + +# Check genesis_ledger +GENESIS_MATCHES=("$LEDGER_TARBALLS_FULL/genesis_ledger_"*.tar.gz) +if [[ ! -f "${GENESIS_MATCHES[0]}" ]]; then + echo "ERROR: Missing required ledger tarball with prefix: genesis_ledger in $LEDGER_TARBALLS_FULL" >&2 + exit 1 +fi + +# Check epoch (must have 1 or 2) +EPOCH_MATCHES=("$LEDGER_TARBALLS_FULL/epoch_ledger_"*.tar.gz) +if [[ ${#EPOCH_MATCHES[@]} -ne 1 && ${#EPOCH_MATCHES[@]} -ne 2 ]]; then + echo "ERROR: Expected 1 or 2 ledger tarballs with prefix: epoch in $LEDGER_TARBALLS_FULL, found ${#EPOCH_MATCHES[@]}" >&2 + exit 1 +fi + +# Use the actual matched filenames for genesis_ledger and epoch tarballs +TARBALL_FILES=("${GENESIS_MATCHES[0]}" "${EPOCH_MATCHES[@]}") +./scripts/debian/session/deb-session-insert.sh "$SESSION_DIR" "/var/lib/coda/" "${TARBALL_FILES[@]}" + +# Rename package to add -hardfork suffix +echo "" +echo "=== Step 6: Renaming package to add -hardfork suffix ===" +NEW_PACKAGE_NAME="${FILE_BASE_NAME}-hardfork" + +./scripts/debian/session/deb-session-rename-package.sh "$SESSION_DIR" "$NEW_PACKAGE_NAME" + +# Save the modified package +echo "" +echo "=== Step 7: Saving modified package ===" +./scripts/debian/session/deb-session-save.sh "$SESSION_DIR" "$OUTPUT_DEB_FILE" --verify + +if [ $VERIFY -ne 0 ]; then + # Verify the final package contents + echo "" + echo "=== Step 8: Final Verification ===" + + FINAL_DEB_ABS=$(readlink -f "$OUTPUT_DEB_FILE") + LEDGER_TARBALLS_ABS=$(readlink -f "$LEDGER_TARBALLS_FULL") + + echo "Package size: $(ls -lh "$FINAL_DEB_ABS" | awk '{print $5}')" + + # List all files in the package for debuggability + echo "Listing all files in the package:" + dpkg-deb -c "$FINAL_DEB_ABS" + + # Full file content verification + echo "" + echo "=== File Content Verification ===" + + VERIFY_DIR=$(mktemp -d) + trap 'rm -rf "$SESSION_DIR" "$VERIFY_DIR"' EXIT + + pushd "$VERIFY_DIR" > /dev/null + ar x "$FINAL_DEB_ABS" + mkdir data + tar -xzf data.tar.gz -C data + + # Verify runtime config file (config_*.json) + PKG_CONFIG=$(ls data/var/lib/coda/config_*.json 2>/dev/null | head -1) + if [[ -n "$PKG_CONFIG" ]]; then + if cmp -s "$PKG_CONFIG" "$RUNTIME_CONFIG_JSON_ABS"; then + echo "✓ Config file verified: $(basename "$PKG_CONFIG")" + else + echo "ERROR: Config file content mismatch!" >&2 + exit 1 + fi + else + echo "ERROR: No config file found in package!" >&2 + exit 1 + fi + + # Verify network config file + PKG_NETWORK_CONFIG="data/var/lib/coda/${NETWORK_NAME}.json" + if [[ -f "$PKG_NETWORK_CONFIG" ]]; then + if cmp -s "$PKG_NETWORK_CONFIG" "$RUNTIME_CONFIG_JSON_ABS"; then + echo "✓ Network config verified: ${NETWORK_NAME}.json" + else + echo "ERROR: Network config content mismatch!" >&2 + exit 1 + fi + else + echo "ERROR: Network config file not found: ${NETWORK_NAME}.json" >&2 + exit 1 + fi + + # Verify old network config exists + PKG_OLD_NETWORK_CONFIG="data/var/lib/coda/${NETWORK_NAME}.old.json" + if [[ -f "$PKG_OLD_NETWORK_CONFIG" ]]; then + echo "✓ Backup network config verified: ${NETWORK_NAME}.old.json" + else + echo "ERROR: Backup network config file not found: ${NETWORK_NAME}.old.json" >&2 + exit 1 + fi + + # Verify ledger files + LEDGER_ERROR=0 + if [[ -d "$LEDGER_TARBALLS_ABS" ]]; then + for SOURCE_LEDGER in "$LEDGER_TARBALLS_ABS"/*.tar.gz; do + LEDGER_NAME=$(basename "$SOURCE_LEDGER") + PKG_LEDGER="data/var/lib/coda/$LEDGER_NAME" + + if [[ ! -f "$PKG_LEDGER" ]]; then + echo "ERROR: Ledger file missing in package: $LEDGER_NAME" >&2 + LEDGER_ERROR=1 + continue + fi + + if cmp -s "$SOURCE_LEDGER" "$PKG_LEDGER"; then + echo "✓ Ledger verified: $LEDGER_NAME" + else + echo "ERROR: Ledger file content mismatch: $LEDGER_NAME" >&2 + LEDGER_ERROR=1 + fi + done + else + # Single file passed + LEDGER_NAME=$(basename "$LEDGER_TARBALLS_ABS") + PKG_LEDGER="data/var/lib/coda/$LEDGER_NAME" + + if [[ ! -f "$PKG_LEDGER" ]]; then + echo "ERROR: Ledger file missing in package: $LEDGER_NAME" >&2 + LEDGER_ERROR=1 + else + if cmp -s "$LEDGER_TARBALLS_ABS" "$PKG_LEDGER"; then + echo "✓ Ledger verified: $LEDGER_NAME" + else + echo "ERROR: Ledger file content mismatch: $LEDGER_NAME" >&2 + LEDGER_ERROR=1 + fi + fi + fi + + if [[ $LEDGER_ERROR -ne 0 ]]; then + exit 1 + fi + + echo "" + echo "=== Verification Complete ===" + echo "All files verified successfully!" + + popd +fi + +echo "" +echo "=== Hardfork Package Creation Complete ===" +echo "Output: $OUTPUT_DEB_FILE" +echo "Package name: $NEW_PACKAGE_NAME" diff --git a/scripts/hardfork/convert-debian-to-hf-local.sh b/scripts/hardfork/convert-debian-to-hf-local.sh new file mode 100755 index 000000000000..c3a92538dcb7 --- /dev/null +++ b/scripts/hardfork/convert-debian-to-hf-local.sh @@ -0,0 +1,325 @@ +#!/bin/bash + +# Local script to convert a mina-daemon Debian package to a hardfork package +# This script: +# 1. Downloads the latest state dump from GCS +# 2. Generates ledger tarballs from the state dump +# 3. Creates a runtime config +# 4. Converts the debian package to a hardfork package +# 5. Optionally verifies the conversion + +set -euox pipefail + +usage() { + cat <&2 + usage + ;; + esac +done + +# Validate required arguments +if [[ -z "${INPUT_DEB:-}" ]]; then + echo "ERROR: Input debian package file is required (-d)" >&2 + usage +fi + +if [[ -z "${NETWORK_NAME:-}" ]]; then + echo "ERROR: Network name is required (-n)" >&2 + usage +fi + +# Validate input debian package exists +if [[ ! -f "$INPUT_DEB" ]]; then + echo "ERROR: Input debian package not found: $INPUT_DEB" >&2 + exit 1 +fi + +# Create output directory if it doesn't exist +mkdir -p "$OUTPUT_DIR" +OUTPUT_DIR=$(readlink -f "$OUTPUT_DIR") + +# Create or validate working directory +if [[ -z "$WORKDIR" ]]; then + WORKDIR=$(mktemp -d -t convert-deb-hf-XXXXXX) +else + mkdir -p "$WORKDIR" + WORKDIR=$(readlink -f "$WORKDIR") +fi + +# Cleanup on exit unless --keep-temp is set +cleanup() { + if [[ "$KEEP_TEMP" == "false" ]]; then + echo "" + echo "=== Cleaning up temporary directory ===" + rm -rf "$WORKDIR" + else + echo "" + echo "=== Temporary directory preserved: $WORKDIR ===" + fi +} +trap cleanup EXIT + +echo "" +echo "=== Convert Debian to Hardfork - Local Script ===" +echo "Input package: $INPUT_DEB" +echo "Network: $NETWORK_NAME" +echo "Output directory: $OUTPUT_DIR" +echo "Working directory: $WORKDIR" +echo "" + + +# Step 1: Get or download state dump +echo "=== Step 1: Getting state dump ===" +CONFIG_FILE="$WORKDIR/config.json" + +# Helper: set CONFIG_FILE to the correct file, unpacking if needed, but do not move/copy +set_config_file_from_downloaded() { + local downloaded_file="$1" + if file "$downloaded_file" | grep -q "gzip compressed"; then + echo "Unpacking gzipped state dump..." + gunzip -c "$downloaded_file" > "$WORKDIR/unpacked_state_dump.json" + echo "\u2713 State dump unpacked" + CONFIG_FILE="$WORKDIR/unpacked_state_dump.json" + else + CONFIG_FILE="$downloaded_file" + fi + echo "State dump size: $(du -h "$CONFIG_FILE" | cut -f1)" +} + +get_newest_file_from_gcs_folder_or_direct_one() { + local STATE_DUMP_ARG="$1" + + if gsutil ls -d "$STATE_DUMP_ARG" 2>/dev/null | grep -q "/$"; then + # Download newest from folder + set +o pipefail + REMOTE_GZIPPED_FILE=$(gsutil ls -l "$STATE_DUMP_ARG" | grep "devnet-state-dump" | sort -k2 -r | head -n1 | awk '{print $NF}' || true) + set -o pipefail + if [[ -z "$REMOTE_GZIPPED_FILE" ]]; then + echo "ERROR: No state dump files found in $STATE_DUMP_ARG" >&2 + exit 1 + fi + else + REMOTE_GZIPPED_FILE="$STATE_DUMP_ARG" + fi + echo "$REMOTE_GZIPPED_FILE" +} + +if [[ "$STATE_DUMP_ARG" == gs://* ]]; then + # Download from GCS path provided by user + echo "Downloading state dump from GCS: $STATE_DUMP_ARG" + if ! command -v gsutil &> /dev/null; then + echo "ERROR: gsutil not found. Please install Google Cloud SDK or provide a local state dump file" >&2 + exit 1 + fi + + GZIPPED_STATE_DUMP="$WORKDIR/state_dump.gz" + # Check if STATE_DUMP_ARG is a GCS folder + STATE_DUMP_GZIP=$(get_newest_file_from_gcs_folder_or_direct_one "$STATE_DUMP_ARG") + + if ! gsutil cp "$STATE_DUMP_GZIP" "$GZIPPED_STATE_DUMP"; then + echo "ERROR: Failed to download state dump from $STATE_DUMP_GZIP" >&2 + exit 1 + fi + set_config_file_from_downloaded "$GZIPPED_STATE_DUMP" +else + # Use provided local file + if [[ ! -f "$STATE_DUMP_ARG" ]]; then + echo "ERROR: Provided state dump file not found: $STATE_DUMP_ARG" >&2 + exit 1 + fi + set_config_file_from_downloaded "$STATE_DUMP_ARG" +fi + +echo "State dump size: $(du -h "$CONFIG_FILE" | cut -f1)" + +# Verify it's valid JSON +if ! jq empty "$CONFIG_FILE" 2>/dev/null; then + echo "ERROR: State dump file is not valid JSON" >&2 + exit 1 +fi +echo "✓ State dump is valid JSON" + +# Step 2: Generate hardfork ledger tarballs +echo "" +echo "=== Step 2: Generating hardfork ledger tarballs ===" +LEDGERS_DIR="$WORKDIR/hardfork_ledgers" +mkdir -p "$LEDGERS_DIR" + +LEDGER_HASHES_JSON="$WORKDIR/hardfork_ledger_hashes.json" + +# Check if mina-create-genesis is available +if ! command -v mina-create-genesis &> /dev/null; then + echo "ERROR: mina-create-genesis not found on PATH" >&2 + echo "Please ensure mina tools are installed or in your PATH" >&2 + exit 1 +fi + +mina-create-genesis \ + --config-file "$CONFIG_FILE" \ + --genesis-dir "$LEDGERS_DIR/" \ + --hash-output-file "$LEDGER_HASHES_JSON" || { + echo "ERROR: Failed to generate ledger tarballs" >&2 + exit 1 +} + +# Verify ledger tarballs were created +TARBALL_COUNT=$(find "$LEDGERS_DIR" -name "*.tar.gz" 2>/dev/null | wc -l) +if [[ $TARBALL_COUNT -eq 0 ]]; then + echo "ERROR: No ledger tarballs were generated" >&2 + exit 1 +fi +echo "✓ Generated $TARBALL_COUNT ledger tarball(s)" +ls -lh "$LEDGERS_DIR"/*.tar.gz + +# Step 3: Create runtime config +echo "" +echo "=== Step 3: Creating runtime config ===" +RUNTIME_CONFIG_JSON="$WORKDIR/new_config.json" + +# Get repository root +REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || echo ".") +FORKING_FROM_CONFIG_JSON="$REPO_ROOT/genesis_ledgers/${NETWORK_NAME}.json" + +if [[ ! -f "$FORKING_FROM_CONFIG_JSON" ]]; then + echo "WARNING: Base network config not found at $FORKING_FROM_CONFIG_JSON, using state dump" >&2 + cp "$CONFIG_FILE" "$RUNTIME_CONFIG_JSON" +else + echo "Using base network config: $FORKING_FROM_CONFIG_JSON" + export FORKING_FROM_CONFIG_JSON + export FORK_CONFIG_JSON="$CONFIG_FILE" + export LEDGER_HASHES_JSON="$LEDGER_HASHES_JSON" + + # Check if create_runtime_config.sh exists + CREATE_RUNTIME_SCRIPT="$REPO_ROOT/scripts/hardfork/create_runtime_config.sh" + if [[ ! -f "$CREATE_RUNTIME_SCRIPT" ]]; then + echo "ERROR: Runtime config script not found: $CREATE_RUNTIME_SCRIPT" >&2 + exit 1 + fi + + "$CREATE_RUNTIME_SCRIPT" > "$RUNTIME_CONFIG_JSON" +fi + +echo "✓ Runtime config created" +echo "Runtime config size: $(du -h "$RUNTIME_CONFIG_JSON" | cut -f1)" + +# Step 4: Run the conversion script +echo "" +echo "=== Step 4: Converting debian package ===" + +# Check if conversion script exists +CONVERSION_SCRIPT="$REPO_ROOT/scripts/hardfork/convert-daemon-debian-to-hf.sh" +if [[ ! -f "$CONVERSION_SCRIPT" ]]; then + echo "ERROR: Conversion script not found: $CONVERSION_SCRIPT" >&2 + exit 1 +fi + +# Determine output filename +INPUT_DEB_ABS=$(readlink -f "$INPUT_DEB") +VERSION=$(dpkg-deb --field "$INPUT_DEB_ABS" Version) +ARCH=$(dpkg-deb --field "$INPUT_DEB_ABS" Architecture) +DEB_BASE=$(basename "$INPUT_DEB_ABS" .deb) + +# Extract base name +FILE_BASE_NAME="${DEB_BASE%%_*}" + +# Output path must match what convert-daemon-debian-to-hf.sh produces +OUTPUT_DEB="${OUTPUT_DIR}/${FILE_BASE_NAME}-hardfork_${VERSION}_${ARCH}.deb" + + +# Run the conversion script in a subshell to prevent trap overwriting +( + "$CONVERSION_SCRIPT" \ + -d "$INPUT_DEB_ABS" \ + -c "$RUNTIME_CONFIG_JSON" \ + -l "$LEDGERS_DIR" \ + -n "$NETWORK_NAME" \ + -s "$SKIP_VERIFY" +) + +# Verify output package was created +if [[ ! -f "$OUTPUT_DEB" ]]; then + echo "ERROR: Output hardfork package not created at $OUTPUT_DEB" >&2 + exit 1 +fi + +echo "" +echo "=== Success! ===" +echo "Hardfork package created: $OUTPUT_DEB" +echo "Package size: $(du -h "$OUTPUT_DEB" | cut -f1)" +echo "Network: $NETWORK_NAME" +echo "" diff --git a/scripts/mina-local-network/README.md b/scripts/mina-local-network/README.md index 34b874182c68..ceacbf6c5b62 100644 --- a/scripts/mina-local-network/README.md +++ b/scripts/mina-local-network/README.md @@ -1,65 +1,176 @@ # Mina Local Network Manager -## Instructions +A script to spin up a local Mina blockchain network for development and testing. -1. Checkout `Mina` repository. -2. Go to its root directory and execute commands staying in this root directory. -3. Install dependencies. +## Quick Start - - OS dependencies: - - `PostgreSQL`, its client and credentials configuration, if you'd like to also run the Archive Node. - - `Python3`. - - `jq` tool. - - Python dependencies: +### Prerequisites +- Mina repository checked out +- Python 3 and `jq` installed +- PostgreSQL (optional, for archive node) - ```shell - pip3 install -r ./scripts/mina-local-network/requirements.txt - ``` +### Installation -4. Build `Mina` executables. +1. Install Python dependencies: + ```shell + pip3 install -r ./scripts/mina-local-network/requirements.txt + ``` - - Perhaps the easiest way is to use [Nix](https://github.com/MinaProtocol/mina/tree/develop/nix). +2. Build Mina executables (using Nix): + ```shell + nix develop mina + MINA_COMMIT_SHA1=$(git rev-parse HEAD) \ + DUNE_PROFILE="devnet" \ + dune build \ + src/app/cli/src/mina.exe \ + src/app/archive/archive.exe \ + src/app/logproc/logproc.exe + ``` - - After installation open the `devShell`: +### Basic Usage - ```shell - nix develop mina - ``` +Run a local network with default settings: +```shell +./scripts/mina-local-network/mina-local-network.sh +``` - - Build the executables: +Run with custom configuration: +```shell +./scripts/mina-local-network/mina-local-network.sh \ + -w 2 \ # 2 whale nodes + -f 1 \ # 1 fish node + -n 1 \ # 1 non-block-producing node + -ll Trace \ # Console log level + -fll Trace \ # File log level + -vt \ # Enable value transfer transactions + -ti 10 # Transaction interval (seconds) +``` - ```shell - MINA_COMMIT_SHA1=$(git rev-parse HEAD) \ - DUNE_PROFILE="devnet" \ - dune build \ - src/app/cli/src/mina.exe \ - src/app/archive/archive.exe \ - src/app/logproc/logproc.exe - ``` +View all options: +```shell +./scripts/mina-local-network/mina-local-network.sh -h +``` - - If you’d like to work with [zkApps](https://github.com/MinaProtocol/MIPs/blob/main/MIPS/mip-0004-zkapps.md) using [SnarkyJS](https://github.com/o1-labs/snarkyjs) locally. +## Advanced Features and Examples - - Build the `SnarkyJS`: +### New Seed Node Configuration - ```shell - ./scripts/update-snarkyjs-bindings.sh - ``` +The `--seed` parameter now supports two modes: -5. Execute the `./scripts/mina-local-network/mina-local-network.sh` script, for example: +1. **Spawn seed locally** (default): + ```shell + ./scripts/mina-local-network/mina-local-network.sh --seed "spawn:3000" + ``` +2. **Connect to external seed**: ```shell - ./scripts/mina-local-network/mina-local-network.sh \ - -sp 3100 \ - -w 2 \ - -f 1 \ - -n 1 \ - -u delay_sec:0 \ - -ll Trace \ - -fll Trace \ - -a + ./scripts/mina-local-network/mina-local-network.sh --seed "at:/ip4/127.0.0.1/tcp/3002/p2p/12D3KooWAFFq2yEQFFzhU5dt64AWqawRuomG9hL8rSmm5vxhAsgr" ``` - Please use `-h` argument to get more information about script's possible options. +### Partial Network Spawning + +You can now spawn networks without certain components: + +**Disable archive node** (default): +```shell +./scripts/mina-local-network/mina-local-network.sh -ap "" +``` + +**Disable snark coordinator**: +```shell +./scripts/mina-local-network/mina-local-network.sh -swp "" +``` + +**Network without seed** (connect to external seed): +```shell +./scripts/mina-local-network/mina-local-network.sh --seed "at:SEED_PEER_ID" +``` + +### Config Inheritance Modes + +The `--config` parameter supports three modes: + +1. **`reset`** - Generate new config, keypairs, and ledgers: + ```shell + ./scripts/mina-local-network/mina-local-network.sh -c reset + ``` + +2. **`inherit`** - Reuse config from previous network: + ```shell + ./scripts/mina-local-network/mina-local-network.sh -c inherit + ``` + +3. **`inherit_with`** - Inherit keys but override config & genesis ledgers: + ```shell + ./scripts/mina-local-network/mina-local-network.sh -c "inherit_with:/path/to/config.json,/path/to/genesis_ledger" + ``` + +### Hardfork Testing + +Support for hardfork testing with new parameters: + +```shell +./scripts/mina-local-network/mina-local-network.sh \ + --hardfork-handling "some_value" \ + -hfd 100 # hardfork-genesis-slot-delta +``` + +### Demo Mode + +Run a single pre-bootstrapped node for demonstrations: + +```shell +./scripts/mina-local-network/mina-local-network.sh -d +``` + +### ITN Keys Support + +Use ITN keys for node authentication: + +```shell +./scripts/mina-local-network/mina-local-network.sh --itn-keys "keys.json" +``` + +### Log Redirection + +Redirect node logs to files instead of console: + +```shell +./scripts/mina-local-network/mina-local-network.sh --redirect-logs +``` + +### Genesis Timestamp Control + +Control genesis timestamp with flexible options: + +```shell +# Fixed timestamp +./scripts/mina-local-network/mina-local-network.sh -u "fixed:2024-01-01T00:00:00+00:00" + +# Delay from current time +./scripts/mina-local-network/mina-local-network.sh -u "delay_sec:60" # 60 seconds from now + +# No update (default) +./scripts/mina-local-network/mina-local-network.sh -u "no" +``` + +### Slot Time Override + +Override block production slot time: + +```shell +./scripts/mina-local-network/mina-local-network.sh -st 5000 # 5 seconds +``` + +### Transaction and Chain End Slots + +Control when transactions and block production stop: + +```shell +./scripts/mina-local-network/mina-local-network.sh \ + -ste 1000 # Stop transactions after slot 1000 + -sce 2000 # Stop chain after slot 2000 +``` ## SnarkyJS and zkApps @@ -78,111 +189,142 @@ - Note: you can also refer to [this repo](https://github.com/o1-labs/e2e-zkapp/) in order to get environment setting up scripts. -## Mina Lightweight Network - -It is possible to run faster and less resources demanding networks. -First of all you need to either: - -- Build `Mina` using [lightnet](https://github.com/MinaProtocol/mina/tree/develop/src/config/lightnet.mlh) Dune profile: - - ```shell - MINA_COMMIT_SHA1=$(git rev-parse HEAD) \ - DUNE_PROFILE="lightnet" \ - dune build \ - src/app/cli/src/mina.exe \ - src/app/archive/archive.exe \ - src/app/logproc/logproc.exe - ``` - -- Or override compile-time constants in Genesis Ledger JSON configuration: - - ```json - { - "genesis": { - "proof_level": "none", # After the fix of https://github.com/MinaProtocol/mina/issues/13289 - "k": 30, - "slots_per_epoch": 720, - "block_window_duration": 20000, - "genesis_state_timestamp": "2023-05-26T20:14:28+0300" - }, - "ledger": { - "name": "testnet", - "num_accounts": 4, - "accounts": [ - { - "pk": "B62qr81JquSrKixS4x48fzCWmDHueZgqYmdyKp4kHsKnoXuzc8qcE9g", - "sk": null, - "balance": "5.000000000", - "delegate": null - }, - {}, - {}, - {} - ] - } - } - ``` - -Then you will need to run the network manager script with additional `-pl` argument: +## Lightweight Network (Fast Mode) + +For faster testing with reduced resource usage, use the `lightnet` build profile: + +1. Build with the `lightnet` profile: + ```shell + MINA_COMMIT_SHA1=$(git rev-parse HEAD) \ + DUNE_PROFILE="lightnet" \ + dune build \ + src/app/cli/src/mina.exe \ + src/app/archive/archive.exe \ + src/app/logproc/logproc.exe + ``` + +2. Run the network (proof level is automatically set to `none` in lightnet): + ```shell + ./scripts/mina-local-network/mina-local-network.sh + ``` + +**Lightnet Configuration:** +- Block window duration: 20 seconds (vs 180 seconds in devnet/mainnet) +- k (finality): 30 blocks +- Proof level: none (dummy proofs) +- Slots per epoch: 720 + +**Important Notes:** +- **Always test with `devnet` or `mainnet` profiles for production validation** +- Lightnet uses dummy proofs - not suitable for security testing +- May be unstable under heavy transaction load + +## Common Use Cases + +### Development Network +```shell +./scripts/mina-local-network/mina-local-network.sh \ + -w 2 -f 1 -n 1 \ + -vt -ti 30 \ + -ll Info -fll Debug \ + --redirect-logs +``` + +### Testing Network (Fast) +```shell +./scripts/mina-local-network/mina-local-network.sh \ + -w 1 -f 1 \ + -st 2000 \ # 2 second slots + -c reset \ + -ll Trace +``` + +### Network with Archive Node +```shell +# First, ensure PostgreSQL is running +./scripts/mina-local-network/mina-local-network.sh \ + -ap 3086 \ # Archive server port + -w 2 -f 1 \ + -vt +``` +### Hardfork Test Network ```shell ./scripts/mina-local-network/mina-local-network.sh \ - -sp 3100 \ - -w 2 \ - -f 1 \ - -n 1 \ - -u delay_sec:0 \ - -ll Trace \ - -fll Trace \ - -pl none \ - -a -``` - -Resulting network will have the following qualities: - -- New blocks will be produced every `~20` seconds. -- Transactions finality will be `30` blocks. -- The network proving will be disabled (dummy proofs will be in use). - - Please be cautious with this one. - - You should **ALWAYS** double check your changes or run your final tests against the networks with the `proof_level=full` configured. - -Note though, that such a network might be unstable and cause different issues like this one: https://github.com/MinaProtocol/mina/issues/8331. -Thus, don't overload it with too many transactions. - -## Notes - -- `Always run` at least `2` block producers, for example `-w 2`, otherwise the network might halt. -- Don’t forget to provide additional `PostgreSQL` connection configuration in case of using the `-a` argument. -- Work directory will be: - - `${HOME}/.mina-network` -- Accounts private key passphrase will be: `naughty blue worm`. -- The `GraphQL` endpoints will be available at - - [http://localhost:4001/graphql](http://localhost:4001/graphql) - - [http://localhost:4006/graphql](http://localhost:4006/graphql) - - Etc. (you will see more details in the script's output). -- In order to get `encoded private key` instead of the raw data generated, you can use the following command: - - ```shell - ./_build/default/src/app/cli/src/mina.exe \ - advanced dump-keypair \ - --privkey-path ~/.mina-network/mina-local-network-2-1-1/offline_whale_keys/offline_whale_account_1 - - Output: - Private-key password: - Public key: B62q... - Private key: EKDp... - ``` - -- In order to start sending payments using GraphQL endpoint or do else account related activities, you first need to import and unlock the account: - - ```shell - _build/default/src/app/cli/src/mina.exe \ - accounts import \ - --privkey-path ~/.mina-network/mina-local-network-2-1-1/offline_whale_keys/offline_whale_account_1 \ - --rest-server 4006 - - _build/default/src/app/cli/src/mina.exe \ - accounts unlock \ - --public-key "B62q..." \ - --rest-server 4006 - ``` + -w 3 -f 2 \ + --hardfork-handling "test_value" \ + -hfd 150 \ + -c reset +``` + +## Important Notes + +### Network Configuration +- **Always run at least 2 block producers** (`-w 2`) to prevent network halting +- Default work directory: `${HOME}/.mina-network` +- Account private key passphrase: `naughty blue worm` +- Seed peer ID is stored at `${ROOT}/seed_peer_id.txt` + +### Archive Node (PostgreSQL) +- Required for archive node functionality (`-ap` flag) +- Ensure PostgreSQL is running and accessible +- Database schema is automatically created when not inheriting config + +### GraphQL Endpoints +- Available at `http://localhost:{port}/graphql` +- Ports follow pattern: base_port + 1 (e.g., seed:3001, fish:5001, etc.) +- Specific ports shown in script output + +### Port Allocation +- Seed: `SEED_START_PORT` + [0-5] (client, rest, external, metrics, libp2p-metrics, itn-graphql) +- Whales: `WHALE_START_PORT` + i*6 + [0-5] +- Fish: `FISH_START_PORT` + i*6 + [0-5] +- Nodes: `NODE_START_PORT` + i*6 + [0-5] +- Snark Coordinator: `SNARK_COORDINATOR_PORT` + [0-5] + +### Account Management + +**Get encoded private key:** +```shell +mina.exe advanced dump-keypair \ + --privkey-path ~/.mina-network/offline_whale_keys/offline_whale_account_1 +``` + +**Import and unlock account for transactions:** +```shell +mina.exe accounts import \ + --privkey-path ~/.mina-network/offline_whale_keys/offline_whale_account_1 \ + --rest-server 4006 + +mina.exe accounts unlock \ + --public-key "B62q..." \ + --rest-server 4006 +``` + +## Troubleshooting + +### Common Issues + +1. **"Failed to generate daemon keypair"** - Check file permissions in `${ROOT}` directory +2. **PostgreSQL connection errors** - Verify PostgreSQL is running and credentials are correct +3. **Network not syncing** - Ensure at least 2 block producers are running +4. **Port conflicts** - Use different start ports or stop existing processes + +### Debugging Tips + +- Use `-ll Trace` for detailed console logs +- Enable `--redirect-logs` to capture logs to files +- Check `${ROOT}/nodes/` directory for individual node logs +- Use `mina client status -daemon-port PORT` to check node status + +### Cleaning Up + +To completely reset the network: +```shell +rm -rf ~/.mina-network +``` + +Or use a custom root directory: +```shell +./scripts/mina-local-network/mina-local-network.sh -r /tmp/test-network -c reset +``` diff --git a/scripts/mina-local-network/mina-local-network.sh b/scripts/mina-local-network/mina-local-network.sh index ccbb08878b26..f4fa8dd28c08 100755 --- a/scripts/mina-local-network/mina-local-network.sh +++ b/scripts/mina-local-network/mina-local-network.sh @@ -10,6 +10,7 @@ POLL_INTERVAL=10s MINA_EXE=${MINA_EXE:-_build/default/src/app/cli/src/mina.exe} ARCHIVE_EXE=${ARCHIVE_EXE:-_build/default/src/app/archive/archive.exe} +ROSETTA_EXE=${ROSETTA_EXE:-_build/default/src/app/rosetta/rosetta.exe} ZKAPP_EXE=${ZKAPP_EXE:-_build/default/src/app/zkapp_test_transaction/zkapp_test_transaction.exe} export MINA_PRIVKEY_PASS='naughty blue worm' @@ -23,7 +24,6 @@ SNARK_COORDINATOR_PEER_KEY="CAESQFjWdR18zKuCssN+Fi33fah9f5QGebOCc9xTITR8cdoyC+bk WHALES=2 FISH=1 NODES=1 -ARCHIVE=false LOG_LEVEL="Trace" FILE_LOG_LEVEL=${LOG_LEVEL} VALUE_TRANSFERS=false @@ -38,12 +38,15 @@ LOG_PRECOMPUTED_BLOCKS=false SNARK_WORKER_FEE=0.001 TRANSACTION_INTERVAL=10 # in seconds -SEED_START_PORT=3000 -ARCHIVE_SERVER_PORT=3086 +SEED="spawn:3000" +ARCHIVE_SERVER_PORT= SNARK_COORDINATOR_PORT=7000 WHALE_START_PORT=4000 FISH_START_PORT=5000 NODE_START_PORT=6000 +ROSETTA_PORT= + +MINA_ROSETTA_MAX_DB_POOL_SIZE=64 PG_HOST="localhost" PG_PORT="5432" @@ -52,9 +55,10 @@ PG_PASSWD="" PG_DB="archive" DEMO_MODE=false - SLOT_TX_END= SLOT_CHAIN_END= +HARDFORK_GENESIS_SLOT_DELTA= +HARDFORK_HANDLING= # ================================================ # Globals (assigned during execution of script) @@ -72,6 +76,13 @@ SNARK_WORKERS_PIDS=() FISH_PIDS=() NODE_PIDS=() OVERRIDE_GENSIS_LEDGER="" +REDIRECT_LOGS=false + + +# ================================================= +# ITN features flags + +ITN_KEYS="" # ================================================ # Helper functions @@ -86,11 +97,9 @@ help() { | Default: ${FISH} -n |--nodes <#> | Number of non block-producing nodes to spin-up | Default: ${NODES} --a |--archive | Whether to run the Archive Node (presence of argument) - | Default: ${ARCHIVE} --sp |--seed-start-port <#> | Seed Node range start port - | Default: ${SEED_START_PORT} --swp |--snark-coordinator-start-port <#> | Snark Worker Coordinator Node range start port +-s |--seed | How to start the seed. Set to 'spawn:SEED_START_PORT' to spawn the seed in this script with Seed range start port, 'at:SEED_PEER_ID' to let the script discover the seed node at specific address. Regardless the option taken, this script will always store the seed peer ID used under ROOT/seed_peer_id.txt, when the seed node is/should be ready. + | Default: ${SEED} +-swp |--snark-coordinator-start-port <#> | Snark Worker Coordinator Node range start port. Set to empty to disable snark coodinator | Default: ${SNARK_COORDINATOR_PORT} -swc |--snark-workers-count <#> | Snark Workers count | Default: ${SNARK_WORKERS_COUNT} @@ -100,8 +109,12 @@ help() { | Default: ${FISH_START_PORT} -np |--node-start-port <#> | Non block-producing Nodes range start port | Default: ${NODE_START_PORT} --ap |--archive-server-port <#> | Archive Node server port +-ap |--archive-server-port <#> | Archive Node server port. Set to empty to disable archive node. | Default: ${ARCHIVE_SERVER_PORT} +-rp |--rosetta-port <#> | Rosetta server port. Set to empty to disable Rosetta server. + | Default: ${ROSETTA_PORT} +-rmps|--rosetta-max-pool-size <#> | Rosetta Db max pool size + | Default: ${MINA_ROSETTA_MAX_DB_POOL_SIZE} -ll |--log-level | Console output logging level | Default: ${LOG_LEVEL} -fll |--file-log-level | File output logging level @@ -120,7 +133,7 @@ help() { | Default: ${VALUE_TRANSFERS} -zt |--zkapp-transactions | Whether to execute periodic zkapp transactions (presence of argument) | Default: ${ZKAPP_TRANSACTIONS} --ti |--transaction-interval <#> | Frequency of periodic transactions execution (in seconds) +-ti |--transaction-interval <#> | Frequency of periodic transactions execution (in seconds) | Default: ${TRANSACTION_INTERVAL} -sf |--snark-worker-fee <#> | SNARK Worker fee | Default: ${SNARK_WORKER_FEE} @@ -140,8 +153,15 @@ help() { | Default: None -sce |--slot-chain-end | When set, stop producing blocks from this chain on. | Default: None +--itn-keys | Use ITN keys for nodes authentication + | Default: not set +-hfd |--hardfork-genesis-slot-delta | When set override the value `hard_fork_genesis_slot_delta` in daemon config. +--hardfork-handling | When set, passed to daemons participating the network. + | Default: not set -r |--root | When set, override the root working folder (i.e. the value of ROOT) for this script. WARN: this script will clean up anything inside that folder when initializing any run! | Default: ${ROOT} +--redirect-logs | When set, redirect logs for nodes (excluding workers) and archive to file instead of console output + | Default: ${REDIRECT_LOGS} -h |--help | Displays this help message Available logging levels: @@ -189,23 +209,25 @@ on-exit() { job_pids=() # 2. stop every non-seed nodes - stop-node "snark-coordinator" "$SNARK_COORDINATOR_PORT" & - job_pids+=("$!") + if [[ -n "${SNARK_COORDINATOR_PORT}" ]]; then + stop-node "snark-coordinator" "$SNARK_COORDINATOR_PORT" & + job_pids+=("$!") + fi for ((i=0; i"${FOLDER}"/log.txt & + else + exec-daemon $@ -config-directory "${FOLDER}" & + fi } # Spawns worker in background +# Optionally redirect worker logs to file if REDIRECT_WORKER_LOGS is true spawn-worker() { FOLDER=${1} shift # shellcheck disable=SC2068 - exec-worker-daemon $@ -config-directory "${FOLDER}" & + if [ "${REDIRECT_WORKER_LOGS}" = true ]; then + exec-worker-daemon $@ -config-directory "${FOLDER}" &>"${FOLDER}"/log.txt & + else + exec-worker-daemon $@ -config-directory "${FOLDER}" & + fi } # Spawns the Archive Node in background @@ -323,7 +385,22 @@ spawn-archive-node() { FOLDER=${1} shift # shellcheck disable=SC2068 - exec-archive-node $@ & + if [ "${REDIRECT_LOGS}" = true ]; then + exec-archive-node $@ &>"${FOLDER}"/log.txt & + else + exec-archive-node $@ & + fi +} + +spawn-rosetta-server() { + FOLDER=${1} + shift + # shellcheck disable=SC2068 + if [ "${REDIRECT_LOGS}" = true ]; then + exec-rosetta-node $@ &>"${FOLDER}"/log.txt & + else + exec-rosetta-node $@ & + fi } # Resets genesis ledger @@ -389,6 +466,8 @@ is_process_running() { kill -0 "$1" 2>/dev/null } +REDIRECT_WORKER_LOGS=true + # ================================================ # Parse inputs from arguments @@ -400,6 +479,9 @@ done while [[ "$#" -gt 0 ]]; do case ${1} in + --no-worker-log-redirect) + REDIRECT_WORKER_LOGS=false + ;; -w | --whales) WHALES="${2}" shift @@ -412,11 +494,21 @@ while [[ "$#" -gt 0 ]]; do NODES="${2}" shift ;; - -a | --archive) ARCHIVE=true ;; - -sp | --seed-start-port) - SEED_START_PORT="${2}" + -s | --seed) + SEED="${2}" + shift + ;; + -rmps | --rosetta-max-pool-size) + MINA_ROSETTA_MAX_DB_POOL_SIZE="${2}" shift ;; + -rp | --rosetta-port) + ROSETTA_PORT="${2}" + shift + ;; + -d | --demo) + DEMO_MODE=true + ;; -scp | --snark-coordinator-start-port) SNARK_COORDINATOR_PORT="${2}" shift @@ -496,7 +588,6 @@ while [[ "$#" -gt 0 ]]; do OVERRIDE_SLOT_TIME_MS="${2}" shift ;; - -d | --demo) DEMO_MODE=true ;; -ste | --slot-transaction-end) SLOT_TX_END="${2}" shift @@ -505,10 +596,25 @@ while [[ "$#" -gt 0 ]]; do SLOT_CHAIN_END="${2}" shift ;; + --itn-keys) + ITN_KEYS="${2}" + shift + ;; + -hfd |--hardfork-genesis-slot-delta) + HARDFORK_GENESIS_SLOT_DELTA="${2}" + shift + ;; + --hardfork-handling) + HARDFORK_HANDLING="${2}" + shift + ;; -r | --root) ROOT="${2}" shift ;; + --redirect-logs) + REDIRECT_LOGS=true + ;; *) echo "Unknown parameter passed: ${1}" @@ -538,7 +644,7 @@ EOF # Check the PostgreSQL configuration required # for Archive Node operation -if ${ARCHIVE}; then +if [[ -n "${ARCHIVE_SERVER_PORT}" ]]; then cat <&2 + exit 1 + else + echo "Inheriting config at ${replaced_config_file}:" + cat "${replaced_config_file}" + fi cp -f "${replaced_config_file}" "${config_file}" ;; esac @@ -755,6 +863,11 @@ load_config() { load_config "${CONFIG_MODE}" "${CONFIG}" +if [ -n "$OVERRIDE_GENSIS_LEDGER" ]; then + echo "Inherited genesis ledgers: " + ls -1 "$OVERRIDE_GENSIS_LEDGER" +fi + update_genesis_timestamp() { case "$1" in fixed:*) @@ -782,30 +895,33 @@ update_genesis_timestamp() { update_genesis_timestamp "${UPDATE_GENESIS_TIMESTAMP}" if [ ! -z "${OVERRIDE_SLOT_TIME_MS}" ]; then - echo 'Modifying configuration to override slot time...' + echo "Setting proof.block_window_duration_ms to ${OVERRIDE_SLOT_TIME_MS}..." jq-inplace ".proof.block_window_duration_ms=${OVERRIDE_SLOT_TIME_MS}" "${CONFIG}" fi if [ ! -z "${SLOT_TX_END}" ]; then - echo 'Modifying configuration to override slot transaction end...' + echo "Setting daemon.slot_tx_end to ${SLOT_TX_END}..." jq-inplace ".daemon.slot_tx_end=${SLOT_TX_END}" "${CONFIG}" fi if [ ! -z "${SLOT_CHAIN_END}" ]; then - echo 'Modifying configuration to override slot chain end...' + echo "Setting daemon.slot_chain_end to ${SLOT_CHAIN_END}..." jq-inplace ".daemon.slot_chain_end=${SLOT_CHAIN_END}" "${CONFIG}" fi +if [ ! -z "${HARDFORK_GENESIS_SLOT_DELTA}" ]; then + echo "Setting daemon.hard_fork_genesis_slot_delta to ${HARDFORK_GENESIS_SLOT_DELTA}..." + jq-inplace ".daemon.hard_fork_genesis_slot_delta=${HARDFORK_GENESIS_SLOT_DELTA}" "${CONFIG}" +fi + # ================================================ # Launch the Nodes NODES_FOLDER=${ROOT}/nodes mkdir -p ${NODES_FOLDER}/seed -if ! ${DEMO_MODE}; then - mkdir -p "${NODES_FOLDER}"/snark_coordinator - mkdir -p "${NODES_FOLDER}"/snark_workers -fi +mkdir -p "${NODES_FOLDER}"/snark_coordinator +mkdir -p "${NODES_FOLDER}"/snark_workers if ! config_mode_is_inherit "$CONFIG_MODE"; then clean-dir "${NODES_FOLDER}" @@ -816,7 +932,7 @@ fi # ---------- -if ${ARCHIVE}; then +if [[ -n "${ARCHIVE_SERVER_PORT}" ]]; then echo 'Starting the Archive Node...' printf "\n" @@ -826,33 +942,66 @@ if ${ARCHIVE}; then ARCHIVE_PID=$! fi -# ---------- +if [[ -n "${ROSETTA_PORT}" ]]; then + if [[ -z "${ARCHIVE_SERVER_PORT}" ]]; then + echo "Rosetta server requires Archive node to be running!" + printf "\n" -if ${DEMO_MODE}; then - echo "Running in demo mode, only seed node is going to be started." + exit 1 + fi + + echo 'Starting the Rosetta server...' printf "\n" - spawn-node ${NODES_FOLDER}/seed ${SEED_START_PORT} \ - -block-producer-key ${ROOT}/online_whale_keys/online_whale_account_0 \ - --run-snark-worker "$(cat ${ROOT}/snark_coordinator_keys/snark_coordinator_account.pub)" \ - --snark-worker-fee 0.001 \ - --demo-mode \ - --external-ip "$(hostname -i)" \ - --seed \ - ${ARCHIVE_ADDRESS_CLI_ARG} - -else - spawn-node "${NODES_FOLDER}"/seed "${SEED_START_PORT}" -seed -libp2p-keypair ${SEED_PEER_KEY} "${ARCHIVE_ADDRESS_CLI_ARG}" + mkdir -p "${NODES_FOLDER}"/rosetta + + spawn-rosetta-server "${NODES_FOLDER}"/rosetta + ROSETTA_PID=$! fi -SEED_PID=$! +# ---------- -echo 'Waiting for seed to go up...' -printf "\n" +SEED_PEER_ID= +case "${SEED}" in + spawn:*) + SEED_START_PORT="${SEED#spawn:}" + SEED_PEER_ID="/ip4/127.0.0.1/tcp/$((SEED_START_PORT + 2))/p2p/12D3KooWAFFq2yEQFFzhU5dt64AWqawRuomG9hL8rSmm5vxhAsgr" + if ${DEMO_MODE}; then + echo "Running in demo mode, an amalgamation node is going to be started." + printf "\n" + spawn-node ${NODES_FOLDER}/seed ${SEED_START_PORT} \ + -block-producer-key ${ROOT}/online_whale_keys/online_whale_account_0 \ + --run-snark-worker "$(cat ${ROOT}/snark_coordinator_keys/snark_coordinator_account.pub)" \ + --snark-worker-fee 0.001 \ + --demo-mode \ + --external-ip "$(hostname -i)" \ + --seed \ + ${ARCHIVE_ADDRESS_CLI_ARG} + else + spawn-node "${NODES_FOLDER}"/seed "${SEED_START_PORT}" -seed -libp2p-keypair ${SEED_PEER_KEY} "${ARCHIVE_ADDRESS_CLI_ARG}" + fi + SEED_PID=$! -until ${MINA_EXE} client status -daemon-port "${SEED_START_PORT}" &>/dev/null; do - sleep ${POLL_INTERVAL} -done + echo 'Waiting for seed to go up...' + printf "\n" + + until ${MINA_EXE} client status -daemon-port "${SEED_START_PORT}" &>/dev/null; do + sleep ${POLL_INTERVAL} + done + ;; + + at:*) + if ${DEMO_MODE}; then + echo "Running in demo mode, external seed is not supported!" >&2 + exit 1 + fi + + SEED_PEER_ID="${SEED#at:}" + echo "Listening to external seed node at ${SEED_PEER_ID}" + SEED_PID="" + ;; +esac +printf "$SEED_PEER_ID" > "${ROOT}/seed_peer_id.txt" #---------- Starting snark coordinator @@ -860,6 +1009,9 @@ if [ "${SNARK_WORKERS_COUNT}" -eq "0" ]; then echo "Skipping snark coordinator because SNARK_WORKERS_COUNT is 0" SNARK_COORDINATOR_PID="" +elif [[ -z "${SNARK_COORDINATOR_PORT}" ]]; then + echo "Skipping snark coordinator because no SNARK_COORDINATOR_PORT is provided" + SNARK_COORDINATOR_PID="" else SNARK_COORDINATOR_FLAGS="-snark-worker-fee ${SNARK_WORKER_FEE} -run-snark-coordinator ${SNARK_COORDINATOR_PUBKEY} -work-selection seq" @@ -889,7 +1041,7 @@ for ((i = 0; i < WHALES; i++)); do FOLDER=${NODES_FOLDER}/whale_${i} KEY_FILE=${ROOT}/online_whale_keys/online_whale_account_${i} mkdir -p "${FOLDER}" - spawn-node "${FOLDER}" $((WHALE_START_PORT + i * 5)) -peer ${SEED_PEER_ID} -block-producer-key ${KEY_FILE} \ + spawn-node "${FOLDER}" $((WHALE_START_PORT + i * 6)) -peer ${SEED_PEER_ID} -block-producer-key ${KEY_FILE} \ -libp2p-keypair "${ROOT}"/libp2p_keys/whale_${i} "${ARCHIVE_ADDRESS_CLI_ARG}" WHALE_PIDS[${i}]=$! done @@ -900,7 +1052,7 @@ for ((i = 0; i < FISH; i++)); do FOLDER=${NODES_FOLDER}/fish_${i} KEY_FILE=${ROOT}/online_fish_keys/online_fish_account_${i} mkdir -p "${FOLDER}" - spawn-node "${FOLDER}" $((FISH_START_PORT + i * 5)) -peer ${SEED_PEER_ID} -block-producer-key "${KEY_FILE}" \ + spawn-node "${FOLDER}" $((FISH_START_PORT + i * 6)) -peer ${SEED_PEER_ID} -block-producer-key "${KEY_FILE}" \ -libp2p-keypair "${ROOT}"/libp2p_keys/fish_${i} "${ARCHIVE_ADDRESS_CLI_ARG}" FISH_PIDS[${i}]=$! done @@ -910,7 +1062,7 @@ done for ((i = 0; i < NODES; i++)); do FOLDER=${NODES_FOLDER}/node_${i} mkdir -p "${FOLDER}" - spawn-node "${FOLDER}" $((NODE_START_PORT + i * 5)) -peer ${SEED_PEER_ID} \ + spawn-node "${FOLDER}" $((NODE_START_PORT + i * 6)) -peer ${SEED_PEER_ID} \ -libp2p-keypair "${ROOT}"/libp2p_keys/node_${i} "${ARCHIVE_ADDRESS_CLI_ARG}" NODE_PIDS[${i}]=$! done @@ -920,13 +1072,16 @@ done cat < precomputed_values diff --git a/src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml b/src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml index b420e2e7b1b4..35cb3e5afe39 100644 --- a/src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml +++ b/src/app/cli/src/cli_entrypoint/mina_cli_entrypoint.ml @@ -14,32 +14,6 @@ type mina_initialization = ; itn_graphql_port : int option } -(* keep this code in sync with Client.chain_id_inputs, Mina_commands.chain_id_inputs, and - Daemon_rpcs.Chain_id_inputs -*) -let chain_id ~constraint_system_digests ~genesis_state_hash ~genesis_constants - ~protocol_transaction_version ~protocol_network_version = - (* if this changes, also change Mina_commands.chain_id_inputs *) - let genesis_state_hash = State_hash.to_base58_check genesis_state_hash in - let genesis_constants_hash = Genesis_constants.hash genesis_constants in - let all_snark_keys = - List.map constraint_system_digests ~f:(fun (_, digest) -> Md5.to_hex digest) - |> String.concat ~sep:"" - in - let version_digest v = Int.to_string v |> Md5.digest_string |> Md5.to_hex in - let protocol_transaction_version_digest = - version_digest protocol_transaction_version - in - let protocol_network_version_digest = - version_digest protocol_network_version - in - let b2 = - Blake2.digest_string - ( genesis_state_hash ^ all_snark_keys ^ genesis_constants_hash - ^ protocol_transaction_version_digest ^ protocol_network_version_digest ) - in - Blake2.to_hex b2 - let plugin_flag = if Node_config.plugins then let open Command.Param in @@ -139,8 +113,7 @@ let load_config_files ~logger ~genesis_constants ~constraint_constants ~conf_dir let%map precomputed_values = match%map Genesis_ledger_helper.init_from_config_file ~cli_proof_level ~genesis_dir - ~logger ~genesis_constants ~constraint_constants ~proof_level - ~ledger_backing config + ~logger ~genesis_constants ~constraint_constants ~proof_level config with | Ok precomputed_values -> precomputed_values @@ -1332,11 +1305,14 @@ Pass one of -peer, -peer-list-file, -seed, -peer-list-url.|} ; let protocol_network_version = Protocol_version.(transaction current) in - chain_id ~genesis_state_hash - ~genesis_constants:precomputed_values.genesis_constants - ~constraint_system_digests: - (Lazy.force precomputed_values.constraint_system_digests) - ~protocol_transaction_version ~protocol_network_version + Chain_id.make + { genesis_state_hash + ; genesis_constants = precomputed_values.genesis_constants + ; constraint_system_digests = + Lazy.force precomputed_values.constraint_system_digests + ; protocol_transaction_version + ; protocol_network_version + } in [%log info] "Daemon will use chain id %s" chain_id ; [%log info] "Daemon running protocol version %s" @@ -1454,7 +1430,7 @@ Pass one of -peer, -peer-list-file, -seed, -peer-list-url.|} ; let%map mina = Mina_lib.create ~commit_id:Mina_version.commit_id ~wallets (Mina_lib.Config.make ~logger ~pids ~trust_system ~conf_dir - ~file_log_level ~log_level ~log_json ~chain_id ~is_seed + ~file_log_level ~log_level ~log_json ~chain_id ~disable_node_status ~demo_mode ~coinbase_receiver ~net_config ~gossip_net_params ~proposed_protocol_version_opt ~work_selection_method: @@ -2072,6 +2048,74 @@ let internal_commands logger ~itn_features = Format.eprintf "Failed to generate block@.%s@." (Yojson.Safe.to_string @@ Error_json.error_to_yojson err) ; exit 1) ) + ; ( "chain-id" + , Command.async + ~summary:"Print the chain_id that uniquely identifies the network" + (let open Command.Let_syntax in + let%map_open config_files = + flag "--config-file" ~aliases:[ "config-file" ] + ~doc: + "PATH path to a configuration file (overrides MINA_CONFIG_FILE, \ + default: /daemon.json). Pass multiple times to \ + override fields from earlier config files" + (listed string) + and conf_dir = Cli_lib.Flag.conf_dir + and genesis_dir = + flag "--genesis-ledger-dir" ~aliases:[ "genesis-ledger-dir" ] + ~doc:"DIR Directory that contains the genesis ledger" + (optional string) + in + fun () -> + let open Deferred.Let_syntax in + Parallel.init_master () ; + let logger = Logger.create () in + let conf_dir = Mina_lib.Conf_dir.compute_conf_dir conf_dir in + let genesis_constants = + Genesis_constants.Compiled.genesis_constants + in + let constraint_constants = + Genesis_constants.Compiled.constraint_constants + in + let proof_level = Genesis_constants.Proof_level.Full in + let config_files = + List.map config_files ~f:(fun config_file -> + (config_file, `Must_exist) ) + in + let%bind ( precomputed_values + , _config_jsons + , _config + , _chain_state_locations + , _ ) = + load_config_files ~logger ~conf_dir ~genesis_dir ~genesis_constants + ~constraint_constants ~proof_level ~cli_proof_level:None + ~hardfork_handling:Keep_running config_files + in + let chain_id = + let protocol_transaction_version = + Protocol_version.(transaction current) + in + (*TODO: this is wrong, should be `Protocol_version.network current`, but is + consistent with the computation made by the daemon's entrypoint. Fix this in + the PR for develop. + *) + let protocol_network_version = + Protocol_version.(transaction current) + in + let genesis_state_hash = + (Precomputed_values.genesis_state_hashes precomputed_values) + .state_hash + in + Chain_id.make + { genesis_state_hash + ; genesis_constants = precomputed_values.genesis_constants + ; constraint_system_digests = + Lazy.force precomputed_values.constraint_system_digests + ; protocol_transaction_version + ; protocol_network_version + } + in + let () = printf "%s" chain_id in + exit 0) ) ] let mina_commands logger ~itn_features = diff --git a/src/app/cli/src/init/client.ml b/src/app/cli/src/init/client.ml index f5ee4873671d..3b097aaf9e67 100644 --- a/src/app/cli/src/init/client.ml +++ b/src/app/cli/src/init/client.ml @@ -1854,7 +1854,7 @@ let compile_time_constants = >>| Option.value ~default:Runtime_config.default >>= Genesis_ledger_helper.init_from_config_file ~genesis_constants ~constraint_constants ~logger:(Logger.null ()) ~proof_level - ~cli_proof_level:None ~genesis_dir ~ledger_backing:Stable_db + ~cli_proof_level:None ~genesis_dir >>| Or_error.ok_exn in let all_constants = diff --git a/src/app/cli/src/init/mina_run.ml b/src/app/cli/src/init/mina_run.ml index b46d5f8b59be..656d0c30dfbc 100644 --- a/src/app/cli/src/init/mina_run.ml +++ b/src/app/cli/src/init/mina_run.ml @@ -379,7 +379,9 @@ let setup_local_server ?(client_trustlist = []) ~rest_server_port ; implement Daemon_rpcs.Reset_trust_status.rpc (fun () ip_address -> return (Mina_commands.reset_trust_status mina ip_address) ) ; implement Daemon_rpcs.Chain_id_inputs.rpc (fun () () -> - return (Mina_commands.chain_id_inputs mina) ) + return + ( Mina_commands.chain_id_inputs mina + |> Daemon_rpcs.Chain_id_inputs.of_inputs ) ) ; implement Daemon_rpcs.Verify_proof.rpc (fun () (aid, tx, proof) -> return ( Mina_commands.verify_payment mina aid tx proof diff --git a/src/app/cli/src/init/test_ledger_application.ml b/src/app/cli/src/init/test_ledger_application.ml index c052f7eadf2a..f8455f8f0867 100644 --- a/src/app/cli/src/init/test_ledger_application.ml +++ b/src/app/cli/src/init/test_ledger_application.ml @@ -215,7 +215,8 @@ let test ~privkey_path ~ledger_path ?prev_block_path ~first_partition_slots match prev_protocol_state with | None -> generate_protocol_state_stub ~consensus_constants ~constraint_constants - (module Test_genesis_ledger) + (Consensus.Genesis_data.Ledger.to_hashed + (module Test_genesis_ledger) ) | Some p -> p in diff --git a/src/app/cli/src/init/test_submit_to_archive.ml b/src/app/cli/src/init/test_submit_to_archive.ml index 184a6d66aa6e..3fa347d5a35d 100644 --- a/src/app/cli/src/init/test_submit_to_archive.ml +++ b/src/app/cli/src/init/test_submit_to_archive.ml @@ -101,6 +101,9 @@ module Block = struct let protocol_state t = Frontier_base.Breadcrumb.protocol_state t.breadcrumb + let consensus_state_with_hashes t = + Frontier_base.Breadcrumb.consensus_state_with_hashes t.breadcrumb + let state_timestamp t = Blockchain_state.timestamp @@ Protocol_state.blockchain_state @@ protocol_state t @@ -370,7 +373,7 @@ let build_breadcrumb ~transactions ~context ~precomputed_values ~verifier ~state_hash:(Some previous_state_hash) previous_protocol_state ) >>| V.skip_proof_validation `This_block_was_generated_internally >>= V.validate_frontier_dependencies ~to_header:Mina_block.header ~context - ~root_block:(Block.block_with_hash previous) + ~root_consensus_state:(Block.consensus_state_with_hashes previous) ~is_block_in_frontier:(State_hash.equal previous_state_hash) |> Result.map_error ~f:(const (Error.of_string "failed to validate just created block")) @@ -467,7 +470,7 @@ let load_and_initialize_config ~logger ~config_file = let proof_level = Genesis_constants.Compiled.proof_level in Genesis_ledger_helper.init_from_config_file ~genesis_constants ~constraint_constants ~logger ~proof_level ~cli_proof_level:None - ~genesis_dir:"genesis" ~ledger_backing:Stable_db runtime_config + ~genesis_dir:"genesis" runtime_config >>| Or_error.ok_exn let initialize_verifier_and_components ~logger diff --git a/src/app/delegation_verify/delegation_verify.ml b/src/app/delegation_verify/delegation_verify.ml index 4d0fc0405484..dc8b34c0e6ad 100644 --- a/src/app/delegation_verify/delegation_verify.ml +++ b/src/app/delegation_verify/delegation_verify.ml @@ -62,8 +62,7 @@ let instantiate_verify_functions ~logger ~genesis_constants @@ Runtime_config.of_yojson config_json in Genesis_ledger_helper.init_from_config_file ~logger ~proof_level - ~constraint_constants ~genesis_constants ~cli_proof_level - ~ledger_backing:Stable_db config + ~constraint_constants ~genesis_constants ~cli_proof_level config in let%map.Deferred precomputed_values = match precomputed_values with diff --git a/src/app/disk_caching_stats/disk_caching_stats.ml b/src/app/disk_caching_stats/disk_caching_stats.ml index 24a6fd8d6c50..7097037dbafa 100644 --- a/src/app/disk_caching_stats/disk_caching_stats.ml +++ b/src/app/disk_caching_stats/disk_caching_stats.ml @@ -364,10 +364,10 @@ module Values (S : Sample) = struct let base_work varying witness : Transaction_snark_scan_state.Transaction_with_witness.t = - { transaction_with_info = { previous_hash = field (); varying = varying () } - ; state_hash = (state_hash (), field ()) - ; statement = - (*Transaction_snark.Statement.Stable.V2.t*) + Transaction_snark_scan_state.Transaction_with_witness.create + ~transaction_with_info:{ previous_hash = field (); varying = varying () } + ~state_hash:(state_hash (), field ()) + ~statement: { source = { first_pass_ledger = field () ; second_pass_ledger = field () @@ -387,11 +387,10 @@ module Values (S : Sample) = struct ; fee_excess = fee_excess () ; sok_digest = () } - ; init_stack = Base (pending_coinbase_stack ()) - ; first_pass_ledger_witness = witness () - ; second_pass_ledger_witness = witness () - ; block_global_slot = global_slot_since_genesis () - } + ~init_stack:(Base (pending_coinbase_stack ())) + ~first_pass_ledger_witness:(witness ()) + ~second_pass_ledger_witness:(witness ()) + ~block_global_slot:(global_slot_since_genesis ()) let zkapp_command_base_work ~config () : Transaction_snark_scan_state.Transaction_with_witness.t = diff --git a/src/app/hardfork_test/src/internal/hardfork/network.go b/src/app/hardfork_test/src/internal/hardfork/network.go index 3064345385ce..6290fe76733a 100644 --- a/src/app/hardfork_test/src/internal/hardfork/network.go +++ b/src/app/hardfork_test/src/internal/hardfork/network.go @@ -28,14 +28,14 @@ func (t *HardforkTest) AllPortOfType(ty PortType) []int { all_ports := []int{t.Config.SeedStartPort, t.Config.SnarkCoordinatorPort} for i := 0; i < t.Config.NumWhales; i++ { - all_ports = append(all_ports, t.Config.WhaleStartPort+i*5) + all_ports = append(all_ports, t.Config.WhaleStartPort+i*6) } for i := 0; i < t.Config.NumFish; i++ { - all_ports = append(all_ports, t.Config.FishStartPort+i*5) + all_ports = append(all_ports, t.Config.FishStartPort+i*6) } for i := 0; i < t.Config.NumNodes; i++ { - all_ports = append(all_ports, t.Config.NodeStartPort+i*5) + all_ports = append(all_ports, t.Config.NodeStartPort+i*6) } for i := range all_ports { all_ports[i] += int(ty) @@ -55,7 +55,7 @@ func (t *HardforkTest) startLocalNetwork(minaExecutable string, profile string, t.Logger.Info("Starting network %s...", profile) cmd := exec.Command( filepath.Join(t.ScriptDir, "../mina-local-network/mina-local-network.sh"), - "--seed-start-port", strconv.Itoa(t.Config.SeedStartPort), + "--seed", fmt.Sprintf("spawn:%d", t.Config.SeedStartPort), "--snark-coordinator-start-port", strconv.Itoa(t.Config.SnarkCoordinatorPort), "--whale-start-port", strconv.Itoa(t.Config.WhaleStartPort), diff --git a/src/app/heap_usage/values.ml b/src/app/heap_usage/values.ml index 89f380fad8e0..a4b3a7ceb04c 100644 --- a/src/app/heap_usage/values.ml +++ b/src/app/heap_usage/values.ml @@ -127,14 +127,12 @@ let mk_scan_state_base_node { previous_hash; varying } in let job : Transaction_snark_scan_state.Transaction_with_witness.t = - { transaction_with_info - ; state_hash = (state_hash, state_body_hash) - ; statement - ; init_stack - ; first_pass_ledger_witness = ledger_witness - ; second_pass_ledger_witness = ledger_witness - ; block_global_slot = Mina_numbers.Global_slot_since_genesis.zero - } + Transaction_snark_scan_state.Transaction_with_witness.create + ~transaction_with_info + ~state_hash:(state_hash, state_body_hash) + ~statement ~init_stack ~first_pass_ledger_witness:ledger_witness + ~second_pass_ledger_witness:ledger_witness + ~block_global_slot:Mina_numbers.Global_slot_since_genesis.zero in let record : _ Parallel_scan.Base.Record.t = { job; seq_no = 1; status = Todo } @@ -249,8 +247,10 @@ let scan_state_merge_node ~proof_cache_db : { without_sok with sok_digest = Mina_base.Sok_message.digest sok_msg } in let ledger_proof = Transaction_snark.create ~statement ~proof in - ( Ledger_proof.Cached.write_proof_to_disk ~proof_cache_db ledger_proof - , sok_msg ) + Transaction_snark_scan_state.Ledger_proof_with_sok_message.create + ~proof: + (Ledger_proof.Cached.write_proof_to_disk ~proof_cache_db ledger_proof) + ~sok_msg in let right = let sok_msg : Mina_base.Sok_message.t = @@ -266,8 +266,10 @@ let scan_state_merge_node ~proof_cache_db : { without_sok with sok_digest = Mina_base.Sok_message.digest sok_msg } in let ledger_proof = Transaction_snark.create ~statement ~proof in - ( Ledger_proof.Cached.write_proof_to_disk ~proof_cache_db ledger_proof - , sok_msg ) + Transaction_snark_scan_state.Ledger_proof_with_sok_message.create + ~proof: + (Ledger_proof.Cached.write_proof_to_disk ~proof_cache_db ledger_proof) + ~sok_msg in Full { left; right; seq_no = 1; status = Todo } in diff --git a/src/app/reformat/reformat.ml b/src/app/reformat/reformat.ml index 57a73ebd1356..a568501fdf4f 100644 --- a/src/app/reformat/reformat.ml +++ b/src/app/reformat/reformat.ml @@ -43,9 +43,13 @@ let dirs_trustlist = ; ".direnv" ] +(* Global throttle to limit concurrent process executions *) +let process_throttle = + Throttle.create ~continue_on_error:true ~max_concurrent_jobs:8 + let rec fold_over_files ~path ~process_path ~f = let%bind all = Sys.ls_dir path in - Deferred.List.iter ~how:(`Max_concurrent_jobs 8) all ~f:(fun x -> + Deferred.List.iter all ~f:(fun x -> let full_path = path ^/ x in match%bind Sys.is_directory full_path with | `Yes when process_path `Dir full_path -> @@ -53,7 +57,7 @@ let rec fold_over_files ~path ~process_path ~f = | `Yes -> return () | _ when process_path `File full_path -> - f full_path + Throttle.enqueue process_throttle (fun () -> f full_path) | _ -> return () ) diff --git a/src/app/rosetta/docker-compose/example.env b/src/app/rosetta/docker-compose/example.env index c35aea9e2ca1..19e2686711ab 100644 --- a/src/app/rosetta/docker-compose/example.env +++ b/src/app/rosetta/docker-compose/example.env @@ -2,12 +2,12 @@ POSTGRES_DB=archive POSTGRES_USER=postgres POSTGRES_PASSWORD=secretpassword -MINA_DAEMON_IMAGE=gcr.io/o1labs-192920/mina-daemon:2.0.0berkeley-rc1-1551e2f-bullseye-berkeley +MINA_DAEMON_IMAGE=minaprotocol/mina-daemon:3.2.0-97ad487-bullseye-mainnet MINA_CLIENT_PORT=8301 MINA_P2P_PORT=8302 MINA_REST_PORT=3085 -MINA_PEERLIST_URL=https://storage.googleapis.com/seed-lists/berkeley_seeds.txt +MINA_PEERLIST_URL=https://storage.googleapis.com/seed-lists/devnet_seeds.txt MINA_LIBP2P_PASS= -MINA_ARCHIVE_IMAGE=gcr.io/o1labs-192920/mina-archive:2.0.0berkeley-rc1-1551e2f-bullseye +MINA_ARCHIVE_IMAGE=minaprotocol/mina-archive:3.2.0-97ad487-bullseye-mainnet MINA_ARCHIVE_PORT=5432 diff --git a/src/app/rosetta/scripts/berkeley.env b/src/app/rosetta/scripts/berkeley.env deleted file mode 100644 index d64c3057ffe2..000000000000 --- a/src/app/rosetta/scripts/berkeley.env +++ /dev/null @@ -1,5 +0,0 @@ -MINA_NETWORK=berkeley -PEER_LIST_URL=https://bootnodes.minaprotocol.com/networks/berkeley.txt -MINA_ARCHIVE_DUMP_URL=https://storage.googleapis.com/mina-archive-dumps -MINA_GENESIS_LEDGER_URL=https://673156464838-mina-genesis-ledgers.s3.us-west-2.amazonaws.com/berkeley/genesis_ledger.json -BLOCKS_BUCKET=https://storage.googleapis.com/mina_network_block_data diff --git a/src/app/zkapp_test_transaction/lib/commands.ml b/src/app/zkapp_test_transaction/lib/commands.ml index 9e19d98f9851..8625647e2e9a 100644 --- a/src/app/zkapp_test_transaction/lib/commands.ml +++ b/src/app/zkapp_test_transaction/lib/commands.ml @@ -108,8 +108,11 @@ let gen_proof ?(zkapp_account = None) (zkapp_command : Zkapp_command.t) let open Staged_ledger_diff in (*not using Precomputed_values.for_unit_test because of dependency cycle*) Mina_state.Genesis_protocol_state.t - ~genesis_ledger:Genesis_ledger.for_unit_tests - ~genesis_epoch_data:Consensus.Genesis_epoch_data.for_unit_tests + ~genesis_ledger: + (Consensus.Genesis_data.Ledger.to_hashed Genesis_ledger.for_unit_tests) + ~genesis_epoch_data: + (Consensus.Genesis_data.Epoch.to_hashed + Consensus.Genesis_data.Epoch.for_unit_tests ) ~constraint_constants ~consensus_constants ~genesis_body_reference in compile_time_genesis.data |> Mina_state.Protocol_state.body @@ -170,8 +173,11 @@ let generate_zkapp_txn (keypair : Signature_lib.Keypair.t) (ledger : Ledger.t) let compile_time_genesis = (*not using Precomputed_values.for_unit_test because of dependency cycle*) Mina_state.Genesis_protocol_state.t - ~genesis_ledger:Genesis_ledger.for_unit_tests - ~genesis_epoch_data:Consensus.Genesis_epoch_data.for_unit_tests + ~genesis_ledger: + (Consensus.Genesis_data.Ledger.to_hashed Genesis_ledger.for_unit_tests) + ~genesis_epoch_data: + (Consensus.Genesis_data.Epoch.to_hashed + Consensus.Genesis_data.Epoch.for_unit_tests ) ~constraint_constants ~consensus_constants ~genesis_body_reference in let protocol_state_predicate = diff --git a/src/lib/best_tip_prover/best_tip_prover.ml b/src/lib/best_tip_prover/best_tip_prover.ml index 82eed13fe0b4..4806237b4469 100644 --- a/src/lib/best_tip_prover/best_tip_prover.ml +++ b/src/lib/best_tip_prover/best_tip_prover.ml @@ -17,23 +17,20 @@ module Make (Inputs : Inputs_intf) : end module Merkle_list_prover = Merkle_list_prover.Make_ident (struct - type value = Mina_block.Validated.t + type value = Frontier_base.Breadcrumb.t type context = Transition_frontier.t type proof_elem = State_body_hash.t - let to_proof_elem = Mina_block.Validated.state_body_hash + let to_proof_elem b = + Frontier_base.Breadcrumb.protocol_state_with_hashes b + |> State_hash.With_state_hashes.state_body_hash + ~compute_hashes:Mina_state.Protocol_state.hashes let get_previous ~context transition = - let parent_hash = - transition |> Mina_block.Validated.header - |> Mina_block.Header.protocol_state - |> Protocol_state.previous_state_hash - in - let open Option.Let_syntax in - let%map breadcrumb = Transition_frontier.find context parent_hash in - Transition_frontier.Breadcrumb.validated_transition breadcrumb + let parent_hash = transition |> Frontier_base.Breadcrumb.parent_hash in + Transition_frontier.find context parent_hash end) module Merkle_list_verifier = Merkle_list_verifier.Make (struct @@ -65,16 +62,8 @@ module Make (Inputs : Inputs_intf) : () in let best_tip_breadcrumb = Transition_frontier.best_tip frontier in - let best_verified_tip = - Transition_frontier.Breadcrumb.validated_transition best_tip_breadcrumb - in - let best_tip = Mina_block.Validated.forget best_verified_tip in - let root = - Transition_frontier.root frontier - |> Transition_frontier.Breadcrumb.validated_transition - in let _, merkle_list = - Merkle_list_prover.prove ~context:frontier best_verified_tip + Merkle_list_prover.prove ~context:frontier best_tip_breadcrumb in [%log debug] ~metadata: @@ -83,9 +72,7 @@ module Make (Inputs : Inputs_intf) : ] "Best tip prover produced a merkle list of $merkle_list" ; Proof_carrying_data. - { data = best_tip - ; proof = (merkle_list, With_hash.data @@ Mina_block.Validated.forget root) - } + { data = best_tip_breadcrumb; proof = (merkle_list, root) } let validate_proof ~verifier ~genesis_state_hash (header_hashed : Mina_block.Header.with_hash) : diff --git a/src/lib/block_producer/block_producer.ml b/src/lib/block_producer/block_producer.ml index 55d02015c573..c13d63df75d7 100644 --- a/src/lib/block_producer/block_producer.ml +++ b/src/lib/block_producer/block_producer.ml @@ -912,9 +912,9 @@ let produce ~genesis_breadcrumb ~context:(module Context : CONTEXT) ~prover >>= Validation.validate_frontier_dependencies ~to_header:Mina_block.header ~context:(module Context) - ~root_block: + ~root_consensus_state: ( Transition_frontier.root frontier - |> Breadcrumb.block_with_hash ) + |> Breadcrumb.consensus_state_with_hashes ) ~is_block_in_frontier: (Fn.compose Option.is_some (Transition_frontier.find frontier) ) @@ -1487,9 +1487,9 @@ let run_precomputed ~context:(module Context : CONTEXT) ~verifier ~trust_system >>= Validation.validate_frontier_dependencies ~to_header:Mina_block.header ~context:(module Context) - ~root_block: + ~root_consensus_state: ( Transition_frontier.root frontier - |> Breadcrumb.block_with_hash ) + |> Breadcrumb.consensus_state_with_hashes ) ~is_block_in_frontier: (Fn.compose Option.is_some (Transition_frontier.find frontier) ) diff --git a/src/lib/blockchain_snark/blockchain_snark_state.ml b/src/lib/blockchain_snark/blockchain_snark_state.ml index 582113c2b326..95c847843f1a 100644 --- a/src/lib/blockchain_snark/blockchain_snark_state.ml +++ b/src/lib/blockchain_snark/blockchain_snark_state.ml @@ -454,20 +454,21 @@ end let verify ts ~key = Pickles.verify (module Nat.N2) (module Statement) key ts +(** Return the constraint system for the blockchain-step circuit. *) +let step_constraint_system ~proof_level ~constraint_constants = + let main x = + let open Tick in + let%map _ = + step ~proof_level ~constraint_constants ~logger:(Logger.create ()) x + in + () + in + Tick.constraint_system ~input_typ:Statement.typ ~return_typ:Tick.Typ.unit main + let constraint_system_digests ~proof_level ~constraint_constants () = let digest = Tick.R1CS_constraint_system.digest in [ ( "blockchain-step" - , digest - (let main x = - let open Tick in - let%map _ = - step ~proof_level ~constraint_constants ~logger:(Logger.create ()) - x - in - () - in - Tick.constraint_system ~input_typ:Statement.typ - ~return_typ:Tick.Typ.unit main ) ) + , digest (step_constraint_system ~proof_level ~constraint_constants) ) ] module Make (T : sig diff --git a/src/lib/blockchain_snark/blockchain_snark_state.mli b/src/lib/blockchain_snark/blockchain_snark_state.mli index 9df651f66402..d3af7ec083ce 100644 --- a/src/lib/blockchain_snark/blockchain_snark_state.mli +++ b/src/lib/blockchain_snark/blockchain_snark_state.mli @@ -1,3 +1,55 @@ +(** Blockchain SNARK circuits. + + This code is called in: + - [src/lib/prover/prover.ml] - block production + - [src/lib/verifier/verifier.ml] - proof verification + - [src/lib/genesis_proof/genesis_proof.ml] - genesis proof + + The blockchain SNARK has 1 circuit: + + - {b blockchain-step}: Proves a single step of the blockchain state + transition. Each step verifies that the protocol state was correctly + updated from the previous state by applying a valid block (including + its transaction snark proof). + + Constraint counts vary by profile due to different configuration parameters + (e.g., ledger depth). + + Note: These values are measured with proof_level=Full, which generates the + actual constraint system used in production. See {!Genesis_constants.Proof_level} + for details on proof levels. + + {b Dev profile:} + {v + | Circuit | Constraints | Public Input | Auxiliary Input | + |-----------------|-------------|--------------|-----------------| + | blockchain-step | 9,168 | 1 | 31,925 | + v} + + {b Devnet profile:} + {v + | Circuit | Constraints | Public Input | Auxiliary Input | + |-----------------|-------------|--------------|-----------------| + | blockchain-step | 10,224 | 1 | 39,397 | + v} + + {b Lightnet profile:} + {v + | Circuit | Constraints | Public Input | Auxiliary Input | + |-----------------|-------------|--------------|-----------------| + | blockchain-step | 10,126 | 1 | 38,359 | + v} + + {b Mainnet profile:} + {v + | Circuit | Constraints | Public Input | Auxiliary Input | + |-----------------|-------------|--------------|-----------------| + | blockchain-step | 10,224 | 1 | 39,397 | + v} + + If these values change, update the tables above and the expected values in + [tests/test_blockchain_snark.ml]. *) + open Mina_base open Mina_state open Core_kernel @@ -67,6 +119,12 @@ module Make (T : sig val proof_level : Genesis_constants.Proof_level.t end) : S +(** Return the constraint system for the blockchain-step circuit. *) +val step_constraint_system : + proof_level:Genesis_constants.Proof_level.t + -> constraint_constants:Genesis_constants.Constraint_constants.t + -> Snark_params.Tick.R1CS_constraint_system.t + val constraint_system_digests : proof_level:Genesis_constants.Proof_level.t -> constraint_constants:Genesis_constants.Constraint_constants.t diff --git a/src/lib/blockchain_snark/tests/dune b/src/lib/blockchain_snark/tests/dune index 907f65765675..4191d5ae6e8d 100644 --- a/src/lib/blockchain_snark/tests/dune +++ b/src/lib/blockchain_snark/tests/dune @@ -1,3 +1,11 @@ (tests (names test_blockchain_snark) - (libraries alcotest blockchain_snark core_kernel genesis_constants)) + (libraries + alcotest + blockchain_snark + core_kernel + genesis_constants + node_config + snark_params) + (preprocess + (pps ppx_jane))) diff --git a/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/.ocamlformat b/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/.ocamlformat index 8e0a87983aaf..cec86d3e6a99 120000 --- a/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/.ocamlformat +++ b/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/.ocamlformat @@ -1 +1 @@ -../../.ocamlformat \ No newline at end of file +./src/.ocamlformat \ No newline at end of file diff --git a/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/blockchain_snark_vk.json b/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/dev_blockchain_snark_vk.json similarity index 100% rename from src/lib/blockchain_snark/tests/print_blockchain_snark_vk/blockchain_snark_vk.json rename to src/lib/blockchain_snark/tests/print_blockchain_snark_vk/dev_blockchain_snark_vk.json diff --git a/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/devnet_blockchain_snark_vk.json b/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/devnet_blockchain_snark_vk.json new file mode 100644 index 000000000000..0bf7e2ec7d1a --- /dev/null +++ b/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/devnet_blockchain_snark_vk.json @@ -0,0 +1 @@ +{"commitments":{"sigma_comm":[["0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC","0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37"],["0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC","0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4"],["0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB","0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D"],["0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05","0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E"],["0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB","0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B"],["0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1","0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5"],["0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555","0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224"]],"coefficients_comm":[["0x14C61F2AE468C3865ECFC1293DBADE5FCB59D55CD1CC5E3B1D0309BCB4976038","0x09B59BDE3C4AAD7D6BB4DED48C8E5454DB9FD6ADDB889FB80E48B8740E3576A2"],["0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922","0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28"],["0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F","0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6"],["0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236","0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A"],["0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614","0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E"],["0x0D1E02D01DA0BA41883961A9B10DBE83F9692CB369566F05958A178274D646AF","0x0193D298C057535BAA09219D8028E32CFD19807915C62618BB1B970C8EBC69E6"],["0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121","0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E"],["0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA","0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B"],["0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F","0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89"],["0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766","0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE"],["0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036","0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455"],["0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103","0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4"],["0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E","0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645"],["0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF","0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF"],["0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39","0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567"]],"generic_comm":["0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B","0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C"],"psm_comm":["0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324","0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B"],"complete_add_comm":["0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B","0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688"],"mul_comm":["0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5","0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689"],"emul_comm":["0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9","0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9"],"endomul_scalar_comm":["0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD","0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244"]},"index":{"domain":{"log_size_of_group":14,"group_gen":"0x1E5587687024253BB079B38D9C5371594958E496C605D3BD898B34D068AFBEE7"},"max_poly_size":32768,"public":40,"prev_challenges":2,"srs":null,"evals":{"sigma_comm":[{"unshifted":[["Finite",["0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC","0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37"]]],"shifted":null},{"unshifted":[["Finite",["0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC","0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4"]]],"shifted":null},{"unshifted":[["Finite",["0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB","0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D"]]],"shifted":null},{"unshifted":[["Finite",["0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05","0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E"]]],"shifted":null},{"unshifted":[["Finite",["0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB","0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B"]]],"shifted":null},{"unshifted":[["Finite",["0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1","0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5"]]],"shifted":null},{"unshifted":[["Finite",["0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555","0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224"]]],"shifted":null}],"coefficients_comm":[{"unshifted":[["Finite",["0x14C61F2AE468C3865ECFC1293DBADE5FCB59D55CD1CC5E3B1D0309BCB4976038","0x09B59BDE3C4AAD7D6BB4DED48C8E5454DB9FD6ADDB889FB80E48B8740E3576A2"]]],"shifted":null},{"unshifted":[["Finite",["0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922","0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28"]]],"shifted":null},{"unshifted":[["Finite",["0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F","0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6"]]],"shifted":null},{"unshifted":[["Finite",["0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236","0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A"]]],"shifted":null},{"unshifted":[["Finite",["0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614","0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E"]]],"shifted":null},{"unshifted":[["Finite",["0x0D1E02D01DA0BA41883961A9B10DBE83F9692CB369566F05958A178274D646AF","0x0193D298C057535BAA09219D8028E32CFD19807915C62618BB1B970C8EBC69E6"]]],"shifted":null},{"unshifted":[["Finite",["0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121","0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E"]]],"shifted":null},{"unshifted":[["Finite",["0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA","0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B"]]],"shifted":null},{"unshifted":[["Finite",["0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F","0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89"]]],"shifted":null},{"unshifted":[["Finite",["0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766","0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE"]]],"shifted":null},{"unshifted":[["Finite",["0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036","0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455"]]],"shifted":null},{"unshifted":[["Finite",["0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103","0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4"]]],"shifted":null},{"unshifted":[["Finite",["0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E","0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645"]]],"shifted":null},{"unshifted":[["Finite",["0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF","0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF"]]],"shifted":null},{"unshifted":[["Finite",["0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39","0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567"]]],"shifted":null}],"generic_comm":{"unshifted":[["Finite",["0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B","0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C"]]],"shifted":null},"psm_comm":{"unshifted":[["Finite",["0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324","0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B"]]],"shifted":null},"complete_add_comm":{"unshifted":[["Finite",["0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B","0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688"]]],"shifted":null},"mul_comm":{"unshifted":[["Finite",["0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5","0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689"]]],"shifted":null},"emul_comm":{"unshifted":[["Finite",["0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9","0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9"]]],"shifted":null},"endomul_scalar_comm":{"unshifted":[["Finite",["0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD","0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244"]]],"shifted":null},"xor_comm":null,"range_check0_comm":null,"range_check1_comm":null,"foreign_field_add_comm":null,"foreign_field_mul_comm":null,"rot_comm":null},"shifts":["0x0000000000000000000000000000000000000000000000000000000000000001","0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3","0x007CF68160D84012626E0046A932AD12E68B3394D6E2A001A537FFB40D3527C6","0x0077D45AECB939AE97A3952B48189964AA209609F19BE4A4B89F339A33440F6D","0x0077C7E54505D4771F6AF1FED2195500481EF1F3C0397B0AC819E678BD2309B4","0x00B3AF68ECC6AE7A4727F0708EDF4736BE1C99281FA380846E42264C62407484","0x00381CA4536FC0ED935D50A74A87136F1A0675B618898DBCE67E564AB20174A1"],"lookup_index":null,"zk_rows":3},"data":{"constraints":16384}} \ No newline at end of file diff --git a/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/dune b/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/dune index ad5287fc4fdf..2c9d5646d398 100644 --- a/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/dune +++ b/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/dune @@ -1,14 +1,17 @@ (executable (name print_blockchain_snark_vk) - (libraries blockchain_snark genesis_constants) + (libraries blockchain_snark genesis_constants mina_node_config) (instrumentation (backend bisect_ppx)) (preprocess (pps ppx_version))) +; Generate the verification key JSON file for the current profile. +; The output file name includes the profile to allow profile-specific regression testing. + (rule (deps print_blockchain_snark_vk.exe) - (targets blockchain_snark_vk.json.computed) + (targets %{profile}_blockchain_snark_vk.json.computed) (action (with-stdout-to %{targets} @@ -16,8 +19,8 @@ (rule (deps - (:orig blockchain_snark_vk.json) - (:computed blockchain_snark_vk.json.computed)) + (:orig %{profile}_blockchain_snark_vk.json) + (:computed %{profile}_blockchain_snark_vk.json.computed)) (alias runtest) (action (diff %{orig} %{computed}))) diff --git a/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/mainnet_blockchain_snark_vk.json b/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/mainnet_blockchain_snark_vk.json new file mode 100644 index 000000000000..a6a5d1abff2f --- /dev/null +++ b/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/mainnet_blockchain_snark_vk.json @@ -0,0 +1 @@ +{"commitments":{"sigma_comm":[["0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC","0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37"],["0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC","0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4"],["0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB","0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D"],["0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05","0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E"],["0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB","0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B"],["0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1","0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5"],["0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555","0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224"]],"coefficients_comm":[["0x11EA0C72044E35492A4888859F1B7E157A5AACC030E8DBF3E801A3AFD72C59BC","0x26576ABAC7698A704F8060DB6B7625BDA384F05C2855E9067C622E2D4394258C"],["0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922","0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28"],["0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F","0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6"],["0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236","0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A"],["0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614","0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E"],["0x31468F74B4EF877D55AF22B7AF2F831CBECD6610768BF6F526182387A5ECEE56","0x35EDDF62AB669BB710EC12CD933E7879DCDB776B3C56CE1B3C92FEC57B4CDEF9"],["0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121","0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E"],["0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA","0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B"],["0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F","0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89"],["0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766","0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE"],["0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036","0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455"],["0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103","0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4"],["0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E","0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645"],["0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF","0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF"],["0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39","0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567"]],"generic_comm":["0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B","0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C"],"psm_comm":["0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324","0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B"],"complete_add_comm":["0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B","0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688"],"mul_comm":["0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5","0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689"],"emul_comm":["0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9","0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9"],"endomul_scalar_comm":["0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD","0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244"]},"index":{"domain":{"log_size_of_group":14,"group_gen":"0x1E5587687024253BB079B38D9C5371594958E496C605D3BD898B34D068AFBEE7"},"max_poly_size":32768,"public":40,"prev_challenges":2,"srs":null,"evals":{"sigma_comm":[{"unshifted":[["Finite",["0x16A2CBB00F33D627AAEFB19EAF5424680EF37F77C87558AF424130A927D08BAC","0x089F70D3C7690C8421C293C01F7A67EB2997E5B96AF11408D88884A6AD328E37"]]],"shifted":null},{"unshifted":[["Finite",["0x22CFAD2E118F91BE8E133664585947E25A282017E007700D67F0D72999639BCC","0x31AA847B558743C3CAD651B085327F0B67E1C1BFEA2FF472976589ADD952E6D4"]]],"shifted":null},{"unshifted":[["Finite",["0x02FB6661EE11262AFC7C8B0389A9B1E4ED18263C3F2468AAF035A07ECC61C9EB","0x30705D77AB82D6BAAC8E23640BBAB40F7E7FB53826CD5011575CAE52C6D0517D"]]],"shifted":null},{"unshifted":[["Finite",["0x0FD615E77CF392BE8285848DF60D4F87350ABCD65200FC4932E309133D145D05","0x3E75EA0E3810A97D8F1D1F8A6B0F9AE5D0F68AE34A4D0EFC29F00AB3BF6D480E"]]],"shifted":null},{"unshifted":[["Finite",["0x20C89F37CF8E43831F077DFF9AB9A676907BF9A0F64E418A643667808AB72DAB","0x389F98A86437D8A7F667ABB9B0B0DEACBD7E420B583B795363EBCECDBF1C187B"]]],"shifted":null},{"unshifted":[["Finite",["0x13548AEE4F67B7B90418512F400B79A69E156A801DE46233C756F9B67A9ABDD1","0x25F561C9531A0C83099AC722322A39DC653BC314D63A971624D1D3315B3DA0D5"]]],"shifted":null},{"unshifted":[["Finite",["0x20216D064B7466C42626F66F3F141997E6F29D17CC6EBA8FF91E1E03D31FE555","0x0082380869AFA6A961738C93BCEEA3042F3ECEA143A585B565A2BF6BD78A1224"]]],"shifted":null}],"coefficients_comm":[{"unshifted":[["Finite",["0x11EA0C72044E35492A4888859F1B7E157A5AACC030E8DBF3E801A3AFD72C59BC","0x26576ABAC7698A704F8060DB6B7625BDA384F05C2855E9067C622E2D4394258C"]]],"shifted":null},{"unshifted":[["Finite",["0x08060FD15238AE40E726A04EA5C1AE41D8A1D267C9AF7355A8D6C70607139922","0x13D36CAD9C78FD0AF514AB7ECAC433592389AE84283024B1D4C85D2E8C952B28"]]],"shifted":null},{"unshifted":[["Finite",["0x3AE007735587246066F71A1F09801C359E393CBF49DBDFEDD01E61AA88ECAF0F","0x15882EBC62C0E9BC93A14F2CB2ECE43402063B50C09CE735E56D51447689D2C6"]]],"shifted":null},{"unshifted":[["Finite",["0x3DCBFD7F258F598AEFB560A1B3BCE632B4AC20534FEFF3B35C82082FE708B236","0x254668B50AB44E074902E0DB981FDF045FC614C1E61EBDDA27C06DF9131FC71A"]]],"shifted":null},{"unshifted":[["Finite",["0x364F1609C5A72CC0A6F5966400AE1A5AA4B7684805B46D0EE09001F7618DD614","0x0F3E45A3DEC2B73BEC5E91ED78BB750B87C02A2339E5A40C2D51FAA0EE1D5B7E"]]],"shifted":null},{"unshifted":[["Finite",["0x31468F74B4EF877D55AF22B7AF2F831CBECD6610768BF6F526182387A5ECEE56","0x35EDDF62AB669BB710EC12CD933E7879DCDB776B3C56CE1B3C92FEC57B4CDEF9"]]],"shifted":null},{"unshifted":[["Finite",["0x3E32E6702761E653043644E9DC5D75FE7A351B764CD90D72DD1176DB1A541121","0x0454C684E407E066394B31CFCCBAF22844B7E17D162EFE860030960A38AD2B2E"]]],"shifted":null},{"unshifted":[["Finite",["0x1AE2CE814A97742F41565FEB5881767A2BCF55981A3C8ED33BAE069CBE652FCA","0x14DC3F97387117CCA4884F28DCC82C9CF1B7101623B481FD3D1588F568B3E26B"]]],"shifted":null},{"unshifted":[["Finite",["0x0A10FA40BB6C61E8185412EE2BAE86C51D19EA7276593DFA7FA3FABB0345521F","0x3A8ACF73B5EF4E52ED5DC96404A60C69A067B84FE77211C5407A48437BD5CF89"]]],"shifted":null},{"unshifted":[["Finite",["0x21B2C2D62891139A91056B9D298DA8713B7ADA51963B864A5A2376771A1AA766","0x1AC7782A588865397F219624D70D11A109283E82B9CD50FFEE23753461E755FE"]]],"shifted":null},{"unshifted":[["Finite",["0x2763E7A5B2C387147A0381B50D5C504A5012B7F7CA474C2B4A351011B9BBD036","0x13DEA6F4AEBDC606331746A886756C7EA266A52F60B45DE5544A04BFDB277455"]]],"shifted":null},{"unshifted":[["Finite",["0x32596E43A053571EE478A3106CABFE9ECB29437F78A978409B4DDE33FE637103","0x3D76AF5EE3EFF37E666087AC2827A8BD0D9690BF440FF24434DA3E6AFF7A2AF4"]]],"shifted":null},{"unshifted":[["Finite",["0x1D73FE7224F38A37B2C69E22FA6750BABAED17B0F9998877B33E488D9063CE8E","0x3E24CEADB1BDA92A0DBDA0F90DF3B8FBD7C6F7ABCC039E9D41AB6916A799F645"]]],"shifted":null},{"unshifted":[["Finite",["0x2FDF5D887BC70465AFAC06B7A43632732B5AF0B933EA045D35E99D532BD44CAF","0x211A76FD7B76DF3E693CAA0BBB5C178D5DDE827AB6A902AF04AB39D8040E29DF"]]],"shifted":null},{"unshifted":[["Finite",["0x0D29BA887D54D915CFB321573463A3CAF5C354848A51FFD6D4FFC0E0B4464D39","0x232829C5C662E87CD033AFB3E84E86EC342F4942AC9D75123A21172EE06CF567"]]],"shifted":null}],"generic_comm":{"unshifted":[["Finite",["0x363662743B4E693E18C0CF5FB651DF1205BB27FABCD93ADF54ECD973B21B921B","0x116FBA051A4A146C88BCB0F2B56309429CD63514EEEFBE6EA0B39927E72BB20C"]]],"shifted":null},"psm_comm":{"unshifted":[["Finite",["0x0A8B3EF5670C6367C721EDAA40AF511C18B1602A4732FEA01124D5D949304324","0x1DBE04516C4A33CDFBBD1F54F413B9F21B5D41B6CD668B249879A2688693E51B"]]],"shifted":null},"complete_add_comm":{"unshifted":[["Finite",["0x1E859218F11F787CE75C06FD5303457CBD307BDEEB693CC66A235CB85B314D4B","0x228167E190903072E8F34BD7AF61A0C02DE0BC3D54FF8760A2BCBFDD6A880688"]]],"shifted":null},"mul_comm":{"unshifted":[["Finite",["0x3EC97D3A8CD405A92B31B67184817925B99B1527065A28677AEAAEC37CC7B9C5","0x3844006206FF29A55DBB44A3D06E46610639E24E960B4BC32A663EEC4D04C689"]]],"shifted":null},"emul_comm":{"unshifted":[["Finite",["0x114772020FAF5E6660D7D75B666B7121829027A866A8214B42899E824D820CB9","0x01F7FC015E2F0C5E02E34F0FD6FBA0FCE01E40EA183F0F6F7C197553524A96B9"]]],"shifted":null},"endomul_scalar_comm":{"unshifted":[["Finite",["0x04C30A9B6412594ECD5EEFCA20D4B759BBC52B08868E01F74FDC82B557A76ADD","0x019413D8112950CB93D20BA29452DC281FFE1A692706C34BD148E331F844D244"]]],"shifted":null},"xor_comm":null,"range_check0_comm":null,"range_check1_comm":null,"foreign_field_add_comm":null,"foreign_field_mul_comm":null,"rot_comm":null},"shifts":["0x0000000000000000000000000000000000000000000000000000000000000001","0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3","0x007CF68160D84012626E0046A932AD12E68B3394D6E2A001A537FFB40D3527C6","0x0077D45AECB939AE97A3952B48189964AA209609F19BE4A4B89F339A33440F6D","0x0077C7E54505D4771F6AF1FED2195500481EF1F3C0397B0AC819E678BD2309B4","0x00B3AF68ECC6AE7A4727F0708EDF4736BE1C99281FA380846E42264C62407484","0x00381CA4536FC0ED935D50A74A87136F1A0675B618898DBCE67E564AB20174A1"],"lookup_index":null,"zk_rows":3},"data":{"constraints":16384}} \ No newline at end of file diff --git a/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/print_blockchain_snark_vk.ml b/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/print_blockchain_snark_vk.ml index 2a8cbc4d908d..8a609c8b812d 100644 --- a/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/print_blockchain_snark_vk.ml +++ b/src/lib/blockchain_snark/tests/print_blockchain_snark_vk/print_blockchain_snark_vk.ml @@ -1,6 +1,13 @@ +(** Print the blockchain snark verification key as JSON. + + This is used to generate reference verification key files for each profile. + The output file is named based on the current profile (dev, devnet, lightnet, + mainnet). *) + open Core_kernel let () = + Format.eprintf "Profile: %s@." Node_config.profile ; Async.Thread_safe.block_on_async_exn (fun () -> let () = Format.eprintf "Generating transaction snark circuit..@." in let module Transaction_snark_instance = Transaction_snark.Make (struct diff --git a/src/lib/blockchain_snark/tests/test_blockchain_snark.ml b/src/lib/blockchain_snark/tests/test_blockchain_snark.ml index 7e6295a15fd0..d867bc2587db 100644 --- a/src/lib/blockchain_snark/tests/test_blockchain_snark.ml +++ b/src/lib/blockchain_snark/tests/test_blockchain_snark.ml @@ -1,27 +1,109 @@ +(** Tests for the blockchain SNARK. + + This includes constraint count, public input size, auxiliary input size, + and digest tests. + + In production, the blockchain-step circuit is compiled via [Pickles.compile] + in [Blockchain_snark_state.Make]. The test helpers here use [Tick.constraint_system] + via [step_constraint_system] to extract the circuit's constraint system, + which produces the same constraints as the production compilation. + + IMPORTANT: If the constraint count, public input size, auxiliary input size, + or digest tests fail due to changed values, update the expected values below + AND the table in [blockchain_snark_state.mli] to keep the documentation + in sync. + + NOTE: Expected values vary by profile (dev, devnet, lightnet, mainnet) as + constraint counts depend on configuration parameters like ledger depth. *) + open Core_kernel -let regtest_digest_blockchain_snark () = - let expected_digest = "36786c300e37c2a2f1341ad6374aa113" in +(** Expected values for the blockchain-step circuit *) +type circuit_stats = + { constraints : int + ; public_input_size : int + ; auxiliary_input_size : int + ; digest : string + } + +let dev_expected_values = + { constraints = 9168 + ; public_input_size = 1 + ; auxiliary_input_size = 31925 + ; digest = "36786c300e37c2a2f1341ad6374aa113" + } + +let devnet_expected_values = + { constraints = 10224 + ; public_input_size = 1 + ; auxiliary_input_size = 39397 + ; digest = "bb70c6cd1767f3a723cf7edd4cc77355" + } + +let lightnet_expected_values = + { constraints = 10126 + ; public_input_size = 1 + ; auxiliary_input_size = 38359 + ; digest = "c480c7b16d46d52d439c93a9a84a5848" + } + +let mainnet_expected_values = + { constraints = 10224 + ; public_input_size = 1 + ; auxiliary_input_size = 39397 + ; digest = "bb70c6cd1767f3a723cf7edd4cc77355" + } + +let expected_values = + match Node_config.profile with + | "dev" -> + dev_expected_values + | "devnet" -> + devnet_expected_values + | "lightnet" -> + lightnet_expected_values + | "mainnet" -> + mainnet_expected_values + | p -> + failwithf "Unknown profile: %s" p () + +(** Test blockchain-step circuit stats *) +let test_blockchain_step () = let constraint_constants = Genesis_constants.Compiled.constraint_constants in - let proof_levels = - [ Genesis_constants.Proof_level.Full - ; Genesis_constants.Proof_level.Check - ; Genesis_constants.Proof_level.No_check - ] + let proof_level = Genesis_constants.Proof_level.Full in + let cs = + Blockchain_snark.Blockchain_snark_state.step_constraint_system ~proof_level + ~constraint_constants + in + let actual_constraints = + Snark_params.Tick.R1CS_constraint_system.get_rows_len cs + in + let actual_public_input_size = + Set_once.get_exn + (Snark_params.Tick.R1CS_constraint_system.get_public_input_size cs) + [%here] + in + let actual_auxiliary_input_size = + Set_once.get_exn + (Snark_params.Tick.R1CS_constraint_system.get_auxiliary_input_size cs) + [%here] + in + let actual_digest = + Md5_lib.to_hex (Snark_params.Tick.R1CS_constraint_system.digest cs) in - List.iter proof_levels ~f:(fun proof_level -> - let output = - Blockchain_snark.Blockchain_snark_state.constraint_system_digests - ~proof_level ~constraint_constants () - in - assert (List.length output = 1) ; - let _name, digest = List.hd_exn output in - Alcotest.(check string) - "Blockchain SNARK digest for regtest" expected_digest - (Md5_lib.to_hex digest) ) + Alcotest.(check int) + "blockchain-step constraint count" expected_values.constraints + actual_constraints ; + Alcotest.(check int) + "blockchain-step public input size" expected_values.public_input_size + actual_public_input_size ; + Alcotest.(check int) + "blockchain-step auxiliary input size" expected_values.auxiliary_input_size + actual_auxiliary_input_size ; + Alcotest.(check string) + "blockchain-step digest" expected_values.digest actual_digest let () = let open Alcotest in run "Blockchain Snark Tests" - [ ("Regtest", [ test_case "Digest" `Quick regtest_digest_blockchain_snark ]) - ] + [ ("blockchain-step", [ test_case "stats" `Slow test_blockchain_step ]) ] diff --git a/src/lib/bootstrap_controller/bootstrap_controller.ml b/src/lib/bootstrap_controller/bootstrap_controller.ml index 9fea0140e643..dddb68649135 100644 --- a/src/lib/bootstrap_controller/bootstrap_controller.ml +++ b/src/lib/bootstrap_controller/bootstrap_controller.ml @@ -279,6 +279,129 @@ let download_snarked_ledger ~trust_system ~preferred_peers ~transition_graph Sync_ledger.Root.destroy root_sync_ledger ; data ) +let handle_scan_state_and_aux ~logger ~expected_staged_ledger_hash + ~temp_snarked_ledger ~verifier ~constraint_constants ~signature_kind + ~proof_cache_db t + ( scan_state_uncached + , expected_merkle_root + , pending_coinbases + , protocol_states ) = + let%map staged_ledger_construction_result = + O1trace.thread "construct_root_staged_ledger" (fun () -> + let open Deferred.Or_error.Let_syntax in + let received_staged_ledger_hash = + Staged_ledger_hash.of_aux_ledger_and_coinbase_hash + (Staged_ledger.Scan_state.Stable.Latest.hash scan_state_uncached) + expected_merkle_root pending_coinbases + in + [%log debug] + ~metadata: + [ ( "expected_staged_ledger_hash" + , Staged_ledger_hash.to_yojson expected_staged_ledger_hash ) + ; ( "received_staged_ledger_hash" + , Staged_ledger_hash.to_yojson received_staged_ledger_hash ) + ] + "Comparing $expected_staged_ledger_hash to \ + $received_staged_ledger_hash" ; + let%bind new_root = + t.current_root + |> Mina_block.Validation.skip_frontier_dependencies_validation + `This_block_belongs_to_a_detached_subtree + |> Mina_block.Validation.validate_staged_ledger_hash + (`Staged_ledger_already_materialized received_staged_ledger_hash) + |> Result.map_error ~f:(fun _ -> + Error.of_string "received faulty scan state from peer" ) + |> Deferred.return + in + let protocol_states = + List.map protocol_states + ~f:(With_hash.of_data ~hash_data:Protocol_state.hashes) + in + let scan_state = + Staged_ledger.Scan_state.write_all_proofs_to_disk ~signature_kind + ~proof_cache_db scan_state_uncached + in + let%bind protocol_states = + Staged_ledger.Scan_state.check_required_protocol_states scan_state + ~protocol_states + |> Deferred.return + in + let protocol_states_map = + protocol_states + |> List.map ~f:(fun ps -> + (State_hash.With_state_hashes.state_hash ps, ps) ) + |> State_hash.Map.of_alist_exn + in + let get_state hash = + match Map.find protocol_states_map hash with + | None -> + let new_state_hash = + State_hash.With_state_hashes.state_hash (fst new_root) + in + [%log error] + ~metadata: + [ ("new_root", State_hash.to_yojson new_state_hash) + ; ("state_hash", State_hash.to_yojson hash) + ] + "Protocol state (for scan state transactions) for $state_hash \ + not found when bootstrapping to the new root $new_root" ; + Or_error.errorf + !"Protocol state (for scan state transactions) for \ + %{sexp:State_hash.t} not found when bootstrapping to the new \ + root %{sexp:State_hash.t}" + hash new_state_hash + | Some protocol_state -> + Ok (With_hash.data protocol_state) + in + (* step 3. Construct staged ledger from snarked ledger, scan state + and pending coinbases. *) + (* Construct the staged ledger before constructing the transition + * frontier in order to verify the scan state we received. + * TODO: reorganize the code to avoid doing this twice (#3480) *) + let open Deferred.Let_syntax in + let%map staged_ledger_construction_time, construction_result = + time_deferred + (let open Deferred.Let_syntax in + let temp_mask = Root_ledger.as_masked temp_snarked_ledger in + (* [of_scan_state_pending_coinbases_and_snarked_ledger] is called here + * to verify the scan state we received. We ignore the resulting staged + * ledger (from [temp_mask]). Later we call [Transition_frontier.load] + * which will indirectly invoke + * [of_scan_state_pending_coinbases_and_snarked_ledger_unchecked] + * repeating the same computation (except for proof verification + * which is skipped). Chain of calls: + * [Transition_frontier.load] -> .. -> [load_from_persistence_and_start] + * -> [load_full_frontier] -> [construct_staged_ledger_at_root] -> + * -> [of_scan_state_pending_coinbases_and_snarked_ledger_unchecked] + *) + let%map result = + Staged_ledger.of_scan_state_pending_coinbases_and_snarked_ledger + ~logger + ~snarked_local_state: + Mina_block.( + t.current_root |> Validation.block |> header + |> Header.protocol_state |> Protocol_state.blockchain_state + |> Blockchain_state.snarked_local_state) + ~verifier ~constraint_constants ~scan_state + ~snarked_ledger:temp_mask ~expected_merkle_root + ~pending_coinbases ~get_state ~signature_kind + in + ignore + ( Ledger.Maskable.unregister_mask_exn ~loc:__LOC__ temp_mask + : Ledger.unattached_mask ) ; + Result.map result + ~f: + (const + (scan_state, pending_coinbases, new_root, protocol_states) )) + in + Ok (staged_ledger_construction_time, construction_result) ) + in + match staged_ledger_construction_result with + | Error err -> + (None, Error err) + | Ok (staged_ledger_construction_time, result) -> + (Some staged_ledger_construction_time, result) + (** Run one bootstrap cycle *) let run_cycle ~context:(module Context : CONTEXT) ~trust_system ~verifier ~network ~consensus_local_state ~network_transition_pipe ~preferred_peers @@ -332,8 +455,7 @@ let run_cycle ~context:(module Context : CONTEXT) ~trust_system ~verifier (Float.of_int t.num_of_root_snarked_ledger_retargeted)) ; (* step 2. Download scan state and pending coinbases. *) let%bind ( staged_ledger_data_download_time - , staged_ledger_construction_time - , staged_ledger_aux_result ) = + , (staged_ledger_construction_time, staged_ledger_aux_result) ) = let%bind ( staged_ledger_data_download_time , staged_ledger_data_download_result ) = time_deferred @@ -342,138 +464,14 @@ let run_cycle ~context:(module Context : CONTEXT) ~trust_system ~verifier in match staged_ledger_data_download_result with | Error err -> - Deferred.return (staged_ledger_data_download_time, None, Error err) - | Ok - ( scan_state_uncached - , expected_merkle_root - , pending_coinbases - , protocol_states ) -> ( - let%map staged_ledger_construction_result = - O1trace.thread "construct_root_staged_ledger" (fun () -> - let open Deferred.Or_error.Let_syntax in - let received_staged_ledger_hash = - Staged_ledger_hash.of_aux_ledger_and_coinbase_hash - (Staged_ledger.Scan_state.Stable.Latest.hash - scan_state_uncached ) - expected_merkle_root pending_coinbases - in - [%log debug] - ~metadata: - [ ( "expected_staged_ledger_hash" - , Staged_ledger_hash.to_yojson expected_staged_ledger_hash - ) - ; ( "received_staged_ledger_hash" - , Staged_ledger_hash.to_yojson received_staged_ledger_hash - ) - ] - "Comparing $expected_staged_ledger_hash to \ - $received_staged_ledger_hash" ; - let%bind new_root = - t.current_root - |> Mina_block.Validation.skip_frontier_dependencies_validation - `This_block_belongs_to_a_detached_subtree - |> Mina_block.Validation.validate_staged_ledger_hash - (`Staged_ledger_already_materialized - received_staged_ledger_hash ) - |> Result.map_error ~f:(fun _ -> - Error.of_string "received faulty scan state from peer" ) - |> Deferred.return - in - let protocol_states = - List.map protocol_states - ~f:(With_hash.of_data ~hash_data:Protocol_state.hashes) - in - let scan_state = - Staged_ledger.Scan_state.write_all_proofs_to_disk - ~signature_kind ~proof_cache_db scan_state_uncached - in - let%bind protocol_states = - Staged_ledger.Scan_state.check_required_protocol_states - scan_state ~protocol_states - |> Deferred.return - in - let protocol_states_map = - protocol_states - |> List.map ~f:(fun ps -> - (State_hash.With_state_hashes.state_hash ps, ps) ) - |> State_hash.Map.of_alist_exn - in - let get_state hash = - match Map.find protocol_states_map hash with - | None -> - let new_state_hash = - State_hash.With_state_hashes.state_hash (fst new_root) - in - [%log error] - ~metadata: - [ ("new_root", State_hash.to_yojson new_state_hash) - ; ("state_hash", State_hash.to_yojson hash) - ] - "Protocol state (for scan state transactions) for \ - $state_hash not found when bootstrapping to the new \ - root $new_root" ; - Or_error.errorf - !"Protocol state (for scan state transactions) for \ - %{sexp:State_hash.t} not found when bootstrapping to \ - the new root %{sexp:State_hash.t}" - hash new_state_hash - | Some protocol_state -> - Ok (With_hash.data protocol_state) - in - (* step 3. Construct staged ledger from snarked ledger, scan state - and pending coinbases. *) - (* Construct the staged ledger before constructing the transition - * frontier in order to verify the scan state we received. - * TODO: reorganize the code to avoid doing this twice (#3480) *) - let open Deferred.Let_syntax in - let%map staged_ledger_construction_time, construction_result = - time_deferred - (let open Deferred.Let_syntax in - let temp_mask = Root_ledger.as_masked temp_snarked_ledger in - (* [of_scan_state_pending_coinbases_and_snarked_ledger] is called here - * to verify the scan state we received. We ignore the resulting staged - * ledger (from [temp_mask]). Later we call [Transition_frontier.load] - * which will indirectly invoke - * [of_scan_state_pending_coinbases_and_snarked_ledger_unchecked] - * repeating the same computation (except for proof verification - * which is skipped). Chain of calls: - * [Transition_frontier.load] -> .. -> [load_from_persistence_and_start] - * -> [load_full_frontier] -> [construct_staged_ledger_at_root] -> - * -> [of_scan_state_pending_coinbases_and_snarked_ledger_unchecked] - *) - let%map result = - Staged_ledger - .of_scan_state_pending_coinbases_and_snarked_ledger ~logger - ~snarked_local_state: - Mina_block.( - t.current_root |> Validation.block |> header - |> Header.protocol_state - |> Protocol_state.blockchain_state - |> Blockchain_state.snarked_local_state) - ~verifier ~constraint_constants ~scan_state - ~snarked_ledger:temp_mask ~expected_merkle_root - ~pending_coinbases ~get_state ~signature_kind - in - ignore - ( Ledger.Maskable.unregister_mask_exn ~loc:__LOC__ temp_mask - : Ledger.unattached_mask ) ; - Result.map result - ~f: - (const - ( scan_state - , pending_coinbases - , new_root - , protocol_states ) )) - in - Ok (staged_ledger_construction_time, construction_result) ) + Deferred.return (staged_ledger_data_download_time, (None, Error err)) + | Ok result -> + let%map res = + handle_scan_state_and_aux ~logger ~expected_staged_ledger_hash + ~temp_snarked_ledger ~verifier ~constraint_constants ~signature_kind + ~proof_cache_db t result in - match staged_ledger_construction_result with - | Error err -> - (staged_ledger_data_download_time, None, Error err) - | Ok (staged_ledger_construction_time, result) -> - ( staged_ledger_data_download_time - , Some staged_ledger_construction_time - , result ) ) + (staged_ledger_data_download_time, res) in Transition_frontier.Persistent_root.Instance.close temp_persistent_root_instance ; diff --git a/src/lib/consensus/genesis_data.ml b/src/lib/consensus/genesis_data.ml new file mode 100644 index 000000000000..fada48d29814 --- /dev/null +++ b/src/lib/consensus/genesis_data.ml @@ -0,0 +1,63 @@ +let genesis_ledger_total_currency ~ledger = + Mina_ledger.Ledger.foldi ~init:Currency.Amount.zero (Lazy.force ledger) + ~f:(fun _addr sum (account : Mina_base.Account.t) -> + (* only default token matters for total currency used to determine stake *) + if Mina_base.(Token_id.equal account.token_id Token_id.default) then + Currency.Amount.add sum (Currency.Balance.to_amount @@ account.balance) + |> Base.Option.value_exn ?here:None ?error:None + ~message:"failed to calculate total currency in genesis ledger" + else sum ) + +let genesis_ledger_hash ~ledger = + Mina_ledger.Ledger.merkle_root (Lazy.force ledger) + |> Mina_base.Frozen_ledger_hash.of_ledger_hash + +module Hashed = struct + type t = + { total_currency : Currency.Amount.t + ; hash : Mina_base.Frozen_ledger_hash.t + } + + let hash t = t.hash +end + +module Epoch = struct + module Data = struct + type 'ledger t = { ledger : 'ledger; seed : Mina_base.Epoch_seed.t } + + let to_hashed (t : Genesis_ledger.Packed.t t) : Hashed.t t = + let total_currency = + genesis_ledger_total_currency ~ledger:(Genesis_ledger.Packed.t t.ledger) + in + let hash = + genesis_ledger_hash ~ledger:(Genesis_ledger.Packed.t t.ledger) + in + { ledger = { hash; total_currency }; seed = t.seed } + end + + type 'ledger tt = { staking : 'ledger Data.t; next : 'ledger Data.t option } + + type 'ledger t = 'ledger tt option + + let for_unit_tests : Genesis_ledger.Packed.t t = None + + let compiled : Genesis_ledger.Packed.t t = None + + let to_hashed (ledger : Genesis_ledger.Packed.t t) : Hashed.t t = + Option.map + (fun l -> + let staking = Data.to_hashed l.staking in + let next = Option.map Data.to_hashed l.next in + { staking; next } ) + ledger +end + +module Ledger = struct + type t = Genesis_ledger.Packed.t + + let to_hashed (t : t) : Hashed.t = + { hash = genesis_ledger_hash ~ledger:(Genesis_ledger.Packed.t t) + ; total_currency = + genesis_ledger_total_currency ~ledger:(Genesis_ledger.Packed.t t) + } +end diff --git a/src/lib/consensus/genesis_epoch_data.ml b/src/lib/consensus/genesis_epoch_data.ml deleted file mode 100644 index 6f82f8e6077f..000000000000 --- a/src/lib/consensus/genesis_epoch_data.ml +++ /dev/null @@ -1,11 +0,0 @@ -module Data = struct - type t = { ledger : Genesis_ledger.Packed.t; seed : Mina_base.Epoch_seed.t } -end - -type tt = { staking : Data.t; next : Data.t option } - -type t = tt option - -let for_unit_tests : t = None - -let compiled : t = None diff --git a/src/lib/consensus/intf.ml b/src/lib/consensus/intf.ml index 4dcbc9c1cb3f..6fd1ed63450e 100644 --- a/src/lib/consensus/intf.ml +++ b/src/lib/consensus/intf.ml @@ -295,19 +295,37 @@ module type S = sig -> t end - module Genesis_epoch_data : sig - module Data : sig - type t = - { ledger : Genesis_ledger.Packed.t; seed : Mina_base.Epoch_seed.t } + module Genesis_data : sig + module Hashed : sig + type t + + val hash : t -> Mina_base.Frozen_ledger_hash.t end - type tt = { staking : Data.t; next : Data.t option } + module Epoch : sig + module Data : sig + type 'ledger t = { ledger : 'ledger; seed : Mina_base.Epoch_seed.t } + + val to_hashed : Genesis_ledger.Packed.t t -> Hashed.t t + end + + type 'ledger tt = + { staking : 'ledger Data.t; next : 'ledger Data.t option } + + type 'ledger t = 'ledger tt option - type t = tt option + val for_unit_tests : Genesis_ledger.Packed.t t - val for_unit_tests : t + val compiled : Genesis_ledger.Packed.t t - val compiled : t + val to_hashed : Genesis_ledger.Packed.t t -> Hashed.t t + end + + module Ledger : sig + type t = Genesis_ledger.Packed.t + + val to_hashed : t -> Hashed.t + end end module Data : sig @@ -331,7 +349,7 @@ module type S = sig val create : context:(module CONTEXT) -> genesis_ledger:Genesis_ledger.Packed.t - -> genesis_epoch_data:Genesis_epoch_data.t + -> genesis_epoch_data:Genesis_ledger.Packed.t Genesis_data.Epoch.t -> epoch_ledger_location:string -> genesis_state_hash:State_hash.t -> epoch_ledger_backing_type:Root_ledger.Config.backing_type @@ -509,8 +527,8 @@ module type S = sig -> (var, Value.t) Snark_params.Tick.Typ.t val negative_one : - genesis_ledger:Genesis_ledger.Packed.t - -> genesis_epoch_data:Genesis_epoch_data.t + genesis_ledger:Genesis_data.Hashed.t + -> genesis_epoch_data:Genesis_data.Hashed.t Genesis_data.Epoch.t -> constants:Constants.t -> constraint_constants:Genesis_constants.Constraint_constants.t -> Value.t @@ -518,16 +536,16 @@ module type S = sig val create_genesis_from_transition : negative_one_protocol_state_hash:Mina_base.State_hash.t -> consensus_transition:Consensus_transition.Value.t - -> genesis_ledger:Genesis_ledger.Packed.t - -> genesis_epoch_data:Genesis_epoch_data.t + -> genesis_ledger:Genesis_data.Hashed.t + -> genesis_epoch_data:Genesis_data.Hashed.t Genesis_data.Epoch.t -> constraint_constants:Genesis_constants.Constraint_constants.t -> constants:Constants.t -> Value.t val create_genesis : negative_one_protocol_state_hash:Mina_base.State_hash.t - -> genesis_ledger:Genesis_ledger.Packed.t - -> genesis_epoch_data:Genesis_epoch_data.t + -> genesis_ledger:Genesis_data.Hashed.t + -> genesis_epoch_data:Genesis_data.Hashed.t Genesis_data.Epoch.t -> constraint_constants:Genesis_constants.Constraint_constants.t -> constants:Constants.t -> Value.t diff --git a/src/lib/consensus/proof_of_stake.ml b/src/lib/consensus/proof_of_stake.ml index c4f877d831a3..4ad8fe542929 100644 --- a/src/lib/consensus/proof_of_stake.ml +++ b/src/lib/consensus/proof_of_stake.ml @@ -43,20 +43,6 @@ module Make_str (A : Wire_types.Concrete) = struct let name = "proof_of_stake" - let genesis_ledger_total_currency ~ledger = - Mina_ledger.Ledger.foldi ~init:Amount.zero (Lazy.force ledger) - ~f:(fun _addr sum (account : Mina_base.Account.t) -> - (* only default token matters for total currency used to determine stake *) - if Mina_base.(Token_id.equal account.token_id Token_id.default) then - Amount.add sum (Balance.to_amount @@ account.balance) - |> Option.value_exn ?here:None ?error:None - ~message:"failed to calculate total currency in genesis ledger" - else sum ) - - let genesis_ledger_hash ~ledger = - Mina_ledger.Ledger.merkle_root (Lazy.force ledger) - |> Mina_base.Frozen_ledger_hash.of_ledger_hash - let compute_delegatee_table keys ~iter_accounts = let open Mina_base in let outer_table = Public_key.Compressed.Table.create () in @@ -143,7 +129,7 @@ module Make_str (A : Wire_types.Concrete) = struct end module Constants = Constants - module Genesis_epoch_data = Genesis_epoch_data + module Genesis_data = Genesis_data module Data = struct module Epoch_seed = struct @@ -477,7 +463,7 @@ module Make_str (A : Wire_types.Concrete) = struct let genesis_epoch_ledger_staking, genesis_epoch_ledger_next = Option.value_map genesis_epoch_data ~default:(genesis_ledger, genesis_ledger) - ~f:(fun { Genesis_epoch_data.staking; next } -> + ~f:(fun { Genesis_data.Epoch.staking; next } -> ( staking.ledger , Option.value_map next ~default:staking.ledger ~f:(fun next -> next.ledger ) ) ) @@ -674,10 +660,8 @@ module Make_str (A : Wire_types.Concrete) = struct module Epoch_ledger = struct include Mina_base.Epoch_ledger - let genesis ~ledger = - { Poly.hash = genesis_ledger_hash ~ledger - ; total_currency = genesis_ledger_total_currency ~ledger - } + let genesis ~(ledger : Genesis_data.Hashed.t) = + { Poly.hash = ledger.hash; total_currency = ledger.total_currency } end module Vrf = struct @@ -978,9 +962,10 @@ module Make_str (A : Wire_types.Concrete) = struct ; field (Mina_base.State_hash.var_to_hash_packed lock_checkpoint) ] - let genesis ~(genesis_epoch_data : Genesis_epoch_data.Data.t) = - let ledger = Genesis_ledger.Packed.t genesis_epoch_data.ledger in - { Poly.ledger = Epoch_ledger.genesis ~ledger + let genesis + ~(genesis_epoch_data : + Genesis_data.Hashed.t Genesis_data.Epoch.Data.t ) = + { Poly.ledger = Epoch_ledger.genesis ~ledger:genesis_epoch_data.ledger ; seed = genesis_epoch_data.seed ; start_checkpoint = Mina_base.State_hash.(of_hash zero) ; lock_checkpoint = Lock_checkpoint.null @@ -1976,8 +1961,8 @@ module Make_str (A : Wire_types.Concrete) = struct let same_checkpoint_window ~constants ~prev ~next = same_checkpoint_window ~constants ~prev ~next - let negative_one ~genesis_ledger - ~(genesis_epoch_data : Genesis_epoch_data.t) + let negative_one ~(genesis_ledger : Genesis_data.Hashed.t) + ~(genesis_epoch_data : Genesis_data.Hashed.t Genesis_data.Epoch.t) ~(constants : Constants.t) ~(constraint_constants : Genesis_constants.Constraint_constants.t) = let max_sub_window_density = constants.slots_per_sub_window in @@ -1991,9 +1976,15 @@ module Make_str (A : Wire_types.Concrete) = struct For reviewers, should this be incremented by 1 because it's technically a new block? we don't really know how many slots passed since the fork point*) (blockchain_length, global_slot_since_genesis) in - let default_epoch_data = - Genesis_epoch_data.Data. - { ledger = genesis_ledger; seed = Epoch_seed.initial } + let default_epoch_data : Genesis_data.Hashed.t Genesis_data.Epoch.Data.t + = + Genesis_data.Epoch.Data. + { ledger = + { hash = genesis_ledger.hash + ; total_currency = genesis_ledger.total_currency + } + ; seed = Epoch_seed.initial + } in let genesis_epoch_data_staking, genesis_epoch_data_next = Option.value_map genesis_epoch_data @@ -2010,9 +2001,7 @@ module Make_str (A : Wire_types.Concrete) = struct (Length.to_int constants.sub_windows_per_window - 1) ~f:(Fn.const max_sub_window_density) ; last_vrf_output = Vrf.Output.Truncated.dummy - ; total_currency = - genesis_ledger_total_currency - ~ledger:(Genesis_ledger.Packed.t genesis_ledger) + ; total_currency = genesis_ledger.total_currency ; curr_global_slot_since_hard_fork = Global_slot.zero ~constants ; global_slot_since_genesis ; staking_epoch_data = @@ -2028,9 +2017,9 @@ module Make_str (A : Wire_types.Concrete) = struct } let create_genesis_from_transition ~negative_one_protocol_state_hash - ~consensus_transition ~genesis_ledger - ~(genesis_epoch_data : Genesis_epoch_data.t) ~constraint_constants - ~constants : Value.t = + ~consensus_transition ~(genesis_ledger : Genesis_data.Hashed.t) + ~(genesis_epoch_data : Genesis_data.Hashed.t Genesis_data.Epoch.t) + ~constraint_constants ~constants : Value.t = let staking_seed = Option.value_map genesis_epoch_data ~default:Epoch_seed.initial ~f:(fun data -> data.staking.seed) @@ -2043,11 +2032,7 @@ module Make_str (A : Wire_types.Concrete) = struct ; delegator = 0 } in - let snarked_ledger_hash = - Genesis_ledger.Packed.t genesis_ledger - |> Lazy.force |> Mina_ledger.Ledger.merkle_root - |> Mina_base.Frozen_ledger_hash.of_ledger_hash - in + let snarked_ledger_hash = genesis_ledger.hash in let genesis_winner_pk = fst Vrf.Precomputed.genesis_winner in (* no coinbases for genesis block, so CLI flag for coinbase receiver not relevant @@ -2658,7 +2643,7 @@ module Make_str (A : Wire_types.Concrete) = struct O1trace.sync_thread "root_ledger_of_snapshot" (fun () -> match snapshot.ledger with | Ledger_snapshot.Ledger_root ledger -> - Ok ledger + ledger |> Deferred.Or_error.return | Ledger_snapshot.Genesis_epoch_ledger packed -> Genesis_ledger.Packed.create_root packed ~config:snapshot_config @@ -2666,14 +2651,11 @@ module Make_str (A : Wire_types.Concrete) = struct in match snapshot_id with | Staking_epoch_snapshot -> - return - @@ root_ledger_of_snapshot - !local_state.staking_epoch_snapshot - (staking_epoch_ledger_config local_state) + root_ledger_of_snapshot !local_state.staking_epoch_snapshot + (staking_epoch_ledger_config local_state) | Next_epoch_snapshot -> - return - @@ root_ledger_of_snapshot !local_state.next_epoch_snapshot - (next_epoch_ledger_config local_state) + root_ledger_of_snapshot !local_state.next_epoch_snapshot + (next_epoch_ledger_config local_state) in let sync_ledger = Mina_ledger.Sync_ledger.Root.create @@ -3105,8 +3087,12 @@ module Make_str (A : Wire_types.Concrete) = struct let%test "Receive a valid consensus_state with a bit of delay" = let constants = Lazy.force Constants.for_unit_tests in - let genesis_ledger = Genesis_ledger.for_unit_tests in - let genesis_epoch_data = Genesis_epoch_data.for_unit_tests in + let genesis_ledger = + Genesis_data.Ledger.to_hashed Genesis_ledger.for_unit_tests + in + let genesis_epoch_data = + Genesis_data.Epoch.to_hashed Genesis_data.Epoch.for_unit_tests + in let negative_one = Consensus_state.negative_one ~genesis_ledger ~genesis_epoch_data ~constants @@ -3128,8 +3114,12 @@ module Make_str (A : Wire_types.Concrete) = struct let%test "Receive an invalid consensus_state" = let epoch = Epoch.of_int 5 in let constants = Lazy.force Constants.for_unit_tests in - let genesis_ledger = Genesis_ledger.for_unit_tests in - let genesis_epoch_data = Genesis_epoch_data.for_unit_tests in + let genesis_ledger = + Genesis_data.Ledger.to_hashed Genesis_ledger.for_unit_tests + in + let genesis_epoch_data = + Genesis_data.Epoch.to_hashed Genesis_data.Epoch.for_unit_tests + in let negative_one = Consensus_state.negative_one ~genesis_ledger ~genesis_epoch_data ~constants @@ -3408,7 +3398,8 @@ module Make_str (A : Wire_types.Concrete) = struct let constants = Lazy.force Constants.for_unit_tests - let genesis_epoch_data = Genesis_epoch_data.for_unit_tests + let genesis_epoch_data = + Genesis_data.Epoch.to_hashed Genesis_data.Epoch.for_unit_tests module Genesis_ledger = (val Genesis_ledger.for_unit_tests) @@ -3427,11 +3418,13 @@ module Make_str (A : Wire_types.Concrete) = struct (Ledger.merkle_root (Lazy.force Genesis_ledger.t)) in let previous_protocol_state_hash = State_hash.(of_hash zero) in + let genesis_ledger = + Genesis_data.Ledger.to_hashed (module Genesis_ledger) + in let previous_consensus_state = Consensus_state.create_genesis ~negative_one_protocol_state_hash:previous_protocol_state_hash - ~genesis_ledger:(module Genesis_ledger) - ~genesis_epoch_data ~constraint_constants ~constants + ~genesis_ledger ~genesis_epoch_data ~constraint_constants ~constants in (*If this is a fork then check blockchain length and global_slot_since_genesis have been set correctly*) ( match constraint_constants.fork with @@ -3645,19 +3638,19 @@ module Make_str (A : Wire_types.Concrete) = struct let previous_protocol_state_hash = Mina_base.State_hash.(of_hash zero) in + let genesis_ledger = + Genesis_data.Ledger.to_hashed (module Genesis_ledger) + in let previous_consensus_state = Consensus_state.create_genesis ~negative_one_protocol_state_hash:previous_protocol_state_hash - ~genesis_ledger:(module Genesis_ledger) - ~genesis_epoch_data ~constraint_constants ~constants + ~genesis_ledger ~genesis_epoch_data ~constraint_constants ~constants in let seed = previous_consensus_state.staking_epoch_data.seed in let maybe_sk, account = Genesis_ledger.largest_account_exn () in let private_key = Option.value_exn maybe_sk in let public_key_compressed = Account.public_key account in - let total_stake = - genesis_ledger_total_currency ~ledger:Genesis_ledger.t - in + let total_stake = genesis_ledger.total_currency in let block_producer_pubkeys = Public_key.Compressed.Set.of_list [ public_key_compressed ] in diff --git a/src/lib/bignum_bigint/bignum_bigint.ml b/src/lib/crypto/bignum_bigint/bignum_bigint.ml similarity index 100% rename from src/lib/bignum_bigint/bignum_bigint.ml rename to src/lib/crypto/bignum_bigint/bignum_bigint.ml diff --git a/src/lib/bignum_bigint/dune b/src/lib/crypto/bignum_bigint/dune similarity index 100% rename from src/lib/bignum_bigint/dune rename to src/lib/crypto/bignum_bigint/dune diff --git a/src/lib/blake2/blake2.ml b/src/lib/crypto/blake2/blake2.ml similarity index 100% rename from src/lib/blake2/blake2.ml rename to src/lib/crypto/blake2/blake2.ml diff --git a/src/lib/blake2/blake2.mli b/src/lib/crypto/blake2/blake2.mli similarity index 100% rename from src/lib/blake2/blake2.mli rename to src/lib/crypto/blake2/blake2.mli diff --git a/src/lib/blake2/dune b/src/lib/crypto/blake2/dune similarity index 100% rename from src/lib/blake2/dune rename to src/lib/crypto/blake2/dune diff --git a/src/lib/blake2/intf.ml b/src/lib/crypto/blake2/intf.ml similarity index 100% rename from src/lib/blake2/intf.ml rename to src/lib/crypto/blake2/intf.ml diff --git a/src/lib/bowe_gabizon_hash/bowe_gabizon_hash.ml b/src/lib/crypto/bowe_gabizon_hash/bowe_gabizon_hash.ml similarity index 100% rename from src/lib/bowe_gabizon_hash/bowe_gabizon_hash.ml rename to src/lib/crypto/bowe_gabizon_hash/bowe_gabizon_hash.ml diff --git a/src/lib/bowe_gabizon_hash/bowe_gabizon_hash.mli b/src/lib/crypto/bowe_gabizon_hash/bowe_gabizon_hash.mli similarity index 100% rename from src/lib/bowe_gabizon_hash/bowe_gabizon_hash.mli rename to src/lib/crypto/bowe_gabizon_hash/bowe_gabizon_hash.mli diff --git a/src/lib/bowe_gabizon_hash/dune b/src/lib/crypto/bowe_gabizon_hash/dune similarity index 100% rename from src/lib/bowe_gabizon_hash/dune rename to src/lib/crypto/bowe_gabizon_hash/dune diff --git a/src/lib/bowe_gabizon_hash/inputs_intf.ml b/src/lib/crypto/bowe_gabizon_hash/inputs_intf.ml similarity index 100% rename from src/lib/bowe_gabizon_hash/inputs_intf.ml rename to src/lib/crypto/bowe_gabizon_hash/inputs_intf.ml diff --git a/src/lib/crypto_params/crypto_params.ml b/src/lib/crypto/crypto_params/crypto_params.ml similarity index 100% rename from src/lib/crypto_params/crypto_params.ml rename to src/lib/crypto/crypto_params/crypto_params.ml diff --git a/src/lib/crypto_params/dune b/src/lib/crypto/crypto_params/dune similarity index 100% rename from src/lib/crypto_params/dune rename to src/lib/crypto/crypto_params/dune diff --git a/src/lib/crypto_params/gen/dune b/src/lib/crypto/crypto_params/gen/dune similarity index 100% rename from src/lib/crypto_params/gen/dune rename to src/lib/crypto/crypto_params/gen/dune diff --git a/src/lib/crypto_params/gen/gen.ml b/src/lib/crypto/crypto_params/gen/gen.ml similarity index 100% rename from src/lib/crypto_params/gen/gen.ml rename to src/lib/crypto/crypto_params/gen/gen.ml diff --git a/src/lib/key_gen/dune b/src/lib/crypto/key_gen/dune similarity index 100% rename from src/lib/key_gen/dune rename to src/lib/crypto/key_gen/dune diff --git a/src/lib/key_gen/sample_keypairs.ml b/src/lib/crypto/key_gen/sample_keypairs.ml similarity index 100% rename from src/lib/key_gen/sample_keypairs.ml rename to src/lib/crypto/key_gen/sample_keypairs.ml diff --git a/src/lib/crypto/kimchi_backend/gadgets/bitwise.ml b/src/lib/crypto/kimchi_backend/gadgets/bitwise.ml index 2223f952e414..8ecb8a6e503f 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/bitwise.ml +++ b/src/lib/crypto/kimchi_backend/gadgets/bitwise.ml @@ -5,11 +5,7 @@ open Kimchi_backend_common.Plonk_constraint_system.Plonk_constraint module Bignum_bigint = Snarky_backendless.Backend_extended.Bignum_bigint module Circuit = Kimchi_pasta_snarky_backend.Step_impl -let tests_enabled = true - -(* Auxiliary functions *) - -(* returns a field containing the all one word of length bits *) +(** Returns a field containing the all one word of length bits. *) let all_ones_field (length : int) = Common.bignum_bigint_to_field @@ Bignum_bigint.(pow (of_int 2) (of_int length) - one) @@ -21,12 +17,11 @@ let fits_in_bits_as_prover (word : Circuit.Field.t) (length : int) = field_to_bignum_bigint (cvar_field_to_field_as_prover word) < pow (of_int 2) (of_int length)) ) -(* ROT64 *) - -(* Side of rotation *) +(** Side of rotation. *) type rot_mode = Left | Right -(* Performs the 64bit rotation and returns rotated word, excess, and shifted *) +(** Performs the 64-bit rotation and returns rotated word, excess, and + shifted. *) let rot_aux ?(check64 = false) (word : Circuit.Field.t) (bits : int) (mode : rot_mode) : Circuit.Field.t * Circuit.Field.t * Circuit.Field.t = let open Circuit in @@ -118,53 +113,53 @@ let rot_aux ?(check64 = false) (word : Circuit.Field.t) (bits : int) (rotated, excess, shifted) -(* 64-bit Rotation of rot_bits to the `mode` side - * Inputs - * - check: whether to check the input word is at most 64 bits (default is false) - * - word of maximum 64 bits to be rotated - * - rot_bits: number of bits to be rotated - * - mode: Left or Right - * Output: rotated word - *) +(** 64-bit rotation of [rot_bits] to the [mode] side. + + @param check64 whether to check the input word is at most 64 bits + (default is false) + @param word word of maximum 64 bits to be rotated + @param rot_bits number of bits to be rotated + @param mode Left or Right + @return rotated word *) let rot64 ?(check64 : bool = false) (word : Circuit.Field.t) (rot_bits : int) (mode : rot_mode) : Circuit.Field.t = let rotated, _excess, _shifted = rot_aux ~check64 word rot_bits mode in rotated -(* 64-bit bitwise logical shift of bits to the left side - * Inputs - * - check64: whether to check the input word is at most 64 bits (default is false) - * - word of maximum 64 bits to be shifted - * - bits: number of bits to be shifted - * Output: left shifted word (with bits 0s at the least significant positions) - *) +(** 64-bit bitwise logical shift of bits to the left side. + + @param check64 whether to check the input word is at most 64 bits + (default is false) + @param word word of maximum 64 bits to be shifted + @param bits number of bits to be shifted + @return left shifted word (with 0s at the least significant positions) *) let lsl64 ?(check64 : bool = false) (word : Circuit.Field.t) (bits : int) : Circuit.Field.t = let _rotated, _excess, shifted = rot_aux ~check64 word bits Left in shifted -(* 64-bit bitwise logical shift of bits to the right side - * Inputs - * - check64: whether to check the input word is at most 64 bits (default is false) - * - word of maximum 64 bits to be shifted - * - bits: number of bits to be shifted - * Output: right shifted word (with bits 0s at the most significant positions) -*) +(** 64-bit bitwise logical shift of bits to the right side. + + @param check64 whether to check the input word is at most 64 bits + (default is false) + @param word word of maximum 64 bits to be shifted + @param bits number of bits to be shifted + @return right shifted word (with 0s at the most significant positions) *) let lsr64 ?(check64 : bool = false) (word : Circuit.Field.t) (bits : int) : Circuit.Field.t = let _rotated, excess, _shifted = rot_aux ~check64 word bits Right in excess -(* XOR *) +(** Boolean XOR of [length] bits. -(* Boolean Xor of length bits - * input1 and input2 are the inputs to the Xor gate - * length is the number of bits to Xor - * len_xor is the number of bits of the lookup table (default is 4) - *) + @param len_xor number of bits of the lookup table (default is 4) + @param input1 first input to the XOR gate + @param input2 second input to the XOR gate + @param length number of bits to XOR + @return XOR of input1 and input2 *) let bxor ?(len_xor = 4) (input1 : Circuit.Field.t) (input2 : Circuit.Field.t) (length : int) : Circuit.Field.t = (* Auxiliar function to compute the next variable for the chain of Xors *) @@ -343,31 +338,27 @@ let bxor ?(len_xor = 4) (input1 : Circuit.Field.t) (input2 : Circuit.Field.t) (* Convert back to field *) output_xor -(* Boolean Xor of 16 bits - * This is a special case of Xor for 16 bits for Xor lookup table of 4 bits of inputs. - * Receives two input words to Xor together, of maximum 16 bits each. - * Returns the Xor of the two words. - *) +(** Boolean XOR of 16 bits. This is a special case of XOR for 16 bits using a + 4-bit lookup table. Receives two input words of maximum 16 bits each. + Returns the XOR of the two words. *) let bxor16 (input1 : Circuit.Field.t) (input2 : Circuit.Field.t) : Circuit.Field.t = bxor input1 input2 16 ~len_xor:4 -(* Boolean Xor of 64 bits - * This is a special case of Xor for 64 bits for Xor lookup table of 4 bits of inputs. - * Receives two input words to Xor together, of maximum 64 bits each. - * Returns the Xor of the two words. - *) +(** Boolean XOR of 64 bits. This is a special case of XOR for 64 bits using a + 4-bit lookup table. Receives two input words of maximum 64 bits each. + Returns the XOR of the two words. *) let bxor64 (input1 : Circuit.Field.t) (input2 : Circuit.Field.t) : Circuit.Field.t = bxor input1 input2 64 ~len_xor:4 -(* AND *) +(** Boolean AND of [length] bits. -(* Boolean And of length bits - * input1 and input2 are the two inputs to AND - * length is the number of bits to AND - * len_xor is the number of bits of the inputs of the Xor lookup table (default is 4) - *) + @param len_xor number of bits of the XOR lookup table (default is 4) + @param input1 first input to AND + @param input2 second input to AND + @param length number of bits to AND + @return AND of input1 and input2 *) let band ?(len_xor = 4) (input1 : Circuit.Field.t) (input2 : Circuit.Field.t) (length : int) : Circuit.Field.t = let open Circuit in @@ -399,23 +390,22 @@ let band ?(len_xor = 4) (input1 : Circuit.Field.t) (input2 : Circuit.Field.t) and_output -(* Boolean And of 64 bits - * This is a special case of And for 64 bits for Xor lookup table of 4 bits of inputs. - * Receives two input words to And together, of maximum 64 bits each. - * Returns the And of the two words. - *) +(** Boolean AND of 64 bits. This is a special case of AND for 64 bits using a + 4-bit XOR lookup table. Receives two input words of maximum 64 bits each. + Returns the AND of the two words. *) let band64 (input1 : Circuit.Field.t) (input2 : Circuit.Field.t) : Circuit.Field.t = band input1 input2 64 -(* NOT *) +(** Boolean NOT of [length] bits with checked length (uses XOR gadgets inside + to constrain the length). + + Note: the length must be less than the bit length of the field. -(* Boolean Not of length bits for checked length (uses Xor gadgets inside to constrain the length) - * - input of word to negate - * - length of word to negate - * - len_xor is the length of the Xor lookup table to use beneath (default 4) - * Note that the length needs to be less than the bit length of the field. - *) + @param len_xor length of the XOR lookup table to use (default 4) + @param input word to negate + @param length number of bits + @return negated word *) let bnot_checked ?(len_xor = 4) (input : Circuit.Field.t) (length : int) : Circuit.Field.t = let open Circuit in @@ -433,17 +423,21 @@ let bnot_checked ?(len_xor = 4) (input : Circuit.Field.t) (length : int) : out_not -(* Negates a word of 64 bits with checked length of 64 bits. - * This means that the bound in lenght is constrained in the circuit. *) +(** Negates a word of 64 bits with checked length of 64 bits. This means that + the bound in length is constrained in the circuit. *) let bnot64_checked (input : Circuit.Field.t) : Circuit.Field.t = bnot_checked input 64 -(* Boolean Not of length bits for unchecked length (uses Generic subtractions inside) - * - input of word to negate - * - length of word to negate - * (Note that this can negate two words per row, but it inputs need to be a copy of another - * variable with a correct length in order to make sure that the length is correct) - *) +(** Boolean NOT of [length] bits with unchecked length (uses Generic + subtractions inside). + + Note: this can negate two words per row, but inputs need to be a copy of + another variable with a correct length in order to ensure the length is + correct. + + @param input word to negate + @param length number of bits + @return negated word *) let bnot_unchecked (input : Circuit.Field.t) (length : int) : Circuit.Field.t = let open Circuit in (* Check it is not 255 or else 2^255-1 will not fit in Pallas *) @@ -464,347 +458,7 @@ let bnot_unchecked (input : Circuit.Field.t) (length : int) : Circuit.Field.t = (* [2^len - 1] - input = not (input) *) Generic.sub all_ones_var input -(* Negates a word of 64 bits, but its length goes unconstrained in the circuit - (unless it is copied from a checked length value) *) +(** Negates a word of 64 bits, but its length goes unconstrained in the circuit + (unless it is copied from a checked length value). *) let bnot64_unchecked (input : Circuit.Field.t) : Circuit.Field.t = bnot_unchecked input 64 - -(**************) -(* UNIT TESTS *) -(**************) - -let%test_unit "bitwise rotation gadget" = - if tests_enabled then ( - let (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner in - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - in - - (* Helper to test ROT gadget - * Input operands and expected output: word len mode rotated - * Returns unit if constraints are satisfied, error otherwise. - *) - let test_rot ?cs word length mode result = - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> - let open Runner.Impl in - (* Set up snarky variables for inputs and output *) - let word = - exists Field.typ ~compute:(fun () -> - Field.Constant.of_string word ) - in - let result = - exists Field.typ ~compute:(fun () -> - Field.Constant.of_string result ) - in - (* Use the rot gate gadget *) - let output_rot = rot64 word length mode in - Field.Assert.equal output_rot result - (* Pad with a "dummy" constraint b/c Kimchi requires at least 2 *) ) - in - cs - in - (* Positive tests *) - let _cs = test_rot "0" 0 Left "0" in - let _cs = test_rot "0" 32 Right "0" in - let _cs = test_rot "1" 1 Left "2" in - let _cs = test_rot "1" 63 Left "9223372036854775808" in - let cs = test_rot "256" 4 Right "16" in - (* 0x5A5A5A5A5A5A5A5A is 0xA5A5A5A5A5A5A5A5 both when rotate 4 bits Left or Right*) - let _cs = - test_rot ~cs "6510615555426900570" 4 Right "11936128518282651045" - in - let _cs = test_rot "6510615555426900570" 4 Left "11936128518282651045" in - let cs = test_rot "1234567890" 32 Right "5302428712241725440" in - let _cs = test_rot ~cs "2651214356120862720" 32 Right "617283945" in - let _cs = test_rot ~cs "1153202983878524928" 32 Right "268500993" in - - (* Negatve tests *) - assert (Common.is_error (fun () -> test_rot "0" 1 Left "1")) ; - assert (Common.is_error (fun () -> test_rot "1" 64 Left "1")) ; - assert (Common.is_error (fun () -> test_rot ~cs "0" 0 Left "0")) ) ; - () - -let%test_unit "bitwise shift gadgets" = - if tests_enabled then ( - let (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner in - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - in - - (* Helper to test LSL and LSR gadgets - * Input operands and expected output: word len mode shifted - * Returns unit if constraints are satisfied, error otherwise. - *) - let test_shift ?cs word length mode result = - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> - let open Runner.Impl in - (* Set up snarky variables for inputs and output *) - let word = - exists Field.typ ~compute:(fun () -> - Field.Constant.of_string word ) - in - let result = - exists Field.typ ~compute:(fun () -> - Field.Constant.of_string result ) - in - (* Use the xor gate gadget *) - let output_shift = - match mode with - | Left -> - lsl64 word length - | Right -> - lsr64 word length - in - Field.Assert.equal output_shift result ) - in - cs - in - (* Positive tests *) - let cs1l = test_shift "0" 1 Left "0" in - let cs1r = test_shift "0" 1 Right "0" in - let _cs = test_shift ~cs:cs1l "1" 1 Left "2" in - let _cs = test_shift ~cs:cs1r "1" 1 Right "0" in - let _cs = test_shift "256" 4 Right "16" in - let _cs = test_shift "256" 20 Right "0" in - let _cs = test_shift "6510615555426900570" 16 Right "99344109427290" in - (* All 1's word *) - let cs_allones = - test_shift "18446744073709551615" 15 Left "18446744073709518848" - in - (* Random value ADCC7E30EDCAC126 -> ADCC7E30 -> EDCAC12600000000*) - let _cs = test_shift "12523523412423524646" 32 Right "2915860016" in - let _cs = - test_shift "12523523412423524646" 32 Left "17134720101237391360" - in - - (* Negatve tests *) - assert (Common.is_error (fun () -> test_shift "0" 1 Left "1")) ; - assert (Common.is_error (fun () -> test_shift "1" 64 Left "1")) ; - assert (Common.is_error (fun () -> test_shift ~cs:cs_allones "0" 0 Left "0")) - ) ; - () - -let%test_unit "bitwise xor gadget" = - if tests_enabled then ( - let (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner in - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - in - - (* Helper to test XOR gadget - * Inputs operands and expected output: left_input xor right_input - * Returns true if constraints are satisfied, false otherwise. - *) - let test_xor ?cs left_input right_input output_xor length = - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> - let open Runner.Impl in - (* Set up snarky variables for inputs and output *) - let left_input = - exists Field.typ ~compute:(fun () -> - Common.field_of_hex left_input ) - in - let right_input = - exists Field.typ ~compute:(fun () -> - Common.field_of_hex right_input ) - in - let output_xor = - exists Field.typ ~compute:(fun () -> - Common.field_of_hex output_xor ) - in - (* Use the xor gate gadget *) - let result = bxor left_input right_input length in - - (* Check that the result is equal to the expected output *) - Field.Assert.equal output_xor result ) - in - cs - in - - (* Positive tests *) - let cs16 = test_xor "1" "0" "1" 16 in - let _cs = test_xor ~cs:cs16 "0" "1" "1" 16 in - let _cs = test_xor ~cs:cs16 "2" "1" "3" 16 in - let _cs = test_xor ~cs:cs16 "a8ca" "ddd5" "751f" 16 in - let _cs = test_xor ~cs:cs16 "0" "0" "0" 8 in - let _cs = test_xor ~cs:cs16 "0" "0" "0" 1 in - let _cs = test_xor ~cs:cs16 "1" "0" "1" 1 in - let _cs = test_xor ~cs:cs16 "0" "0" "0" 4 in - let _cs = test_xor ~cs:cs16 "1" "1" "0" 4 in - let cs32 = test_xor "bb5c6" "edded" "5682b" 20 in - let cs64 = - test_xor "5a5a5a5a5a5a5a5a" "a5a5a5a5a5a5a5a5" "ffffffffffffffff" 64 - in - let _cs = - test_xor ~cs:cs64 "f1f1f1f1f1f1f1f1" "0f0f0f0f0f0f0f0f" "fefefefefefefefe" - 64 - in - let _cs = - test_xor ~cs:cs64 "cad1f05900fcad2f" "deadbeef010301db" "147c4eb601ffacf4" - 64 - in - - (* Negatve tests *) - assert ( - Common.is_error (fun () -> - (* Reusing right CS with bad witness *) - test_xor ~cs:cs32 "ed1ed1" "ed1ed1" "010101" 20 ) ) ; - assert ( - Common.is_error (fun () -> - (* Reusing wrong CS with right witness *) - test_xor ~cs:cs32 "1" "1" "0" 16 ) ) ; - - assert (Common.is_error (fun () -> test_xor ~cs:cs16 "1" "0" "1" 0)) ; - assert (Common.is_error (fun () -> test_xor ~cs:cs16 "1" "0" "0" 1)) ; - assert (Common.is_error (fun () -> test_xor ~cs:cs16 "1111" "2222" "0" 16)) ; - assert (Common.is_error (fun () -> test_xor "0" "0" "0" 256)) ; - assert (Common.is_error (fun () -> test_xor "0" "0" "0" (-4))) ; - assert ( - Common.is_error (fun () -> test_xor ~cs:cs32 "bb5c6" "edded" "ed1ed1" 20) ) - ) ; - () - -let%test_unit "bitwise and gadget" = - if tests_enabled then ( - let (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner in - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - in - (* Helper to test AND gadget - * Inputs operands and expected output: left_input and right_input = output - * Returns true if constraints are satisfied, false otherwise. - *) - let test_and ?cs left_input right_input output_and length = - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> - let open Runner.Impl in - (* Set up snarky variables for inputs and outputs *) - let left_input = - exists Field.typ ~compute:(fun () -> - Common.field_of_hex left_input ) - in - let right_input = - exists Field.typ ~compute:(fun () -> - Common.field_of_hex right_input ) - in - let output_and = - exists Field.typ ~compute:(fun () -> - Common.field_of_hex output_and ) - in - (* Use the and gate gadget *) - let result = band left_input right_input length in - Field.Assert.equal output_and result ) - in - cs - in - - (* Positive tests *) - let cs = test_and "0" "0" "0" 16 in - let _cs = test_and ~cs "457" "8ae" "6" 16 in - let _cs = test_and ~cs "a8ca" "ddd5" "88c0" 16 in - let _cs = test_and "0" "0" "0" 8 in - let cs = test_and "1" "1" "1" 1 in - let _cs = test_and ~cs "1" "0" "0" 1 in - let _cs = test_and ~cs "0" "1" "0" 1 in - let _cs = test_and ~cs "0" "0" "0" 1 in - let _cs = test_and "f" "f" "f" 4 in - let _cs = test_and "bb5c6" "edded" "a95c4" 20 in - let cs = test_and "5a5a5a5a5a5a5a5a" "a5a5a5a5a5a5a5a5" "0" 64 in - let cs = - test_and ~cs "385e243cb60654fd" "010fde9342c0d700" "e041002005400" 64 - in - (* Negatve tests *) - assert ( - Common.is_error (fun () -> - (* Reusing right CS with wrong witness *) test_and ~cs "1" "1" "0" 20 ) ) ; - assert ( - Common.is_error (fun () -> - (* Reusing wrong CS with right witness *) test_and ~cs "1" "1" "1" 1 ) ) ; - assert (Common.is_error (fun () -> test_and "1" "1" "0" 1)) ; - assert (Common.is_error (fun () -> test_and "ff" "ff" "ff" 7)) ; - assert (Common.is_error (fun () -> test_and "1" "1" "1" (-1))) ) ; - () - -let%test_unit "bitwise not gadget" = - if tests_enabled then ( - let (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner in - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - in - (* Helper to test NOT gadget with both checked and unchecked length procedures - * Input and expected output and desired length : not(input) = output - * Returns true if constraints are satisfied, false otherwise. - *) - let test_not ?cs input output length = - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> - let open Runner.Impl in - (* Set up snarky variables for input and output *) - let input = - exists Field.typ ~compute:(fun () -> Common.field_of_hex input) - in - - let output = - exists Field.typ ~compute:(fun () -> Common.field_of_hex output) - in - - (* Use the not gate gadget *) - let result_checked = bnot_checked input length in - let result_unchecked = bnot_unchecked input length in - Field.Assert.equal output result_checked ; - Field.Assert.equal output result_unchecked ) - in - cs - in - - (* Positive tests *) - let _cs = test_not "0" "1" 1 in - let _cs = test_not "0" "f" 4 in - let _cs = test_not "0" "ff" 8 in - let _cs = test_not "0" "7ff" 11 in - let cs16 = test_not "0" "ffff" 16 in - let _cs = test_not ~cs:cs16 "a8ca" "5735" 16 in - let _cs = test_not "bb5c6" "44a39" 20 in - let cs64 = test_not "a5a5a5a5a5a5a5a5" "5a5a5a5a5a5a5a5a" 64 in - let _cs = test_not ~cs:cs64 "5a5a5a5a5a5a5a5a" "a5a5a5a5a5a5a5a5" 64 in - let _cs = test_not ~cs:cs64 "7b3f28d7496d75f0" "84c0d728b6928a0f" 64 in - let _cs = test_not ~cs:cs64 "ffffffffffffffff" "0" 64 in - let _cs = test_not ~cs:cs64 "00000fffffffffff" "fffff00000000000" 64 in - let _cs = test_not ~cs:cs64 "fffffffffffff000" "fff" 64 in - let _cs = test_not ~cs:cs64 "0" "ffffffffffffffff" 64 in - let _cs = test_not ~cs:cs64 "0" "ffffffffffffffff" 64 in - let _cs = - test_not - "3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" "0" - 254 - in - - (* Negative tests *) - assert ( - Common.is_error (fun () -> - (* Reusing right CS with bad witness *) - test_not ~cs:cs64 "0" "ff" 64 ) ) ; - assert ( - Common.is_error (fun () -> - (* Reusing wrong CS with right witness *) - test_not ~cs:cs16 "1" "0" 1 ) ) ; - assert (Common.is_error (fun () -> test_not "0" "0" 1)) ; - assert (Common.is_error (fun () -> test_not "ff" "0" 4)) ; - assert ( - Common.is_error (fun () -> - test_not - "7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - "0" 255 ) ) ) ; - () diff --git a/src/lib/crypto/kimchi_backend/gadgets/bitwise.mli b/src/lib/crypto/kimchi_backend/gadgets/bitwise.mli index 71891045fd95..05bbfc095e94 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/bitwise.mli +++ b/src/lib/crypto/kimchi_backend/gadgets/bitwise.mli @@ -1,15 +1,16 @@ module Circuit := Kimchi_pasta_snarky_backend.Step_impl -(* Side of rotation *) +(** Side of rotation. *) type rot_mode = Left | Right -(** 64-bit rotation of rot_bits to the `mode` side - * @param check64 whether to check the input word is at most 64 bits (default is false) - * @param word word of maximum 64 bits to be rotated - * @param bits number of bits to be rotated - * @param mode Left or Right - * Returns rotated word - *) +(** 64-bit rotation of [rot_bits] to the [mode] side. + + @param check64 whether to check the input word is at most 64 bits + (default is false) + @param word word of maximum 64 bits to be rotated + @param bits number of bits to be rotated + @param mode Left or Right + @return rotated word *) val rot64 : ?check64:bool (* false *) -> Circuit.Field.t @@ -17,83 +18,88 @@ val rot64 : -> rot_mode -> Circuit.Field.t -(** 64-bit bitwise logical shift left of bits to the `mode` side - * Inputs - * @param check64 whether to check the input word is at most 64 bits (default is false) - * @param word word of maximum 64 bits to be shifted - * @param bits number of bits to be shifted - * Output: left shifted word (with bits 0s at the least significant positions) - *) +(** 64-bit bitwise logical shift of bits to the left side. + + @param check64 whether to check the input word is at most 64 bits + (default is false) + @param word word of maximum 64 bits to be shifted + @param bits number of bits to be shifted + @return left shifted word (with 0s at the least significant positions) *) val lsl64 : ?check64:bool (* false *) -> Circuit.Field.t -> int -> Circuit.Field.t -(** 64-bit bitwise logical shift of bits to the right side - * Inputs - * @param check64 whether to check the input word is at most 64 bits (default is false) - * @param word word of maximum 64 bits to be shifted - * @param bits number of bits to be shifted - * Output: right shifted word (with bits 0s at the most significant positions) - *) +(** 64-bit bitwise logical shift of bits to the right side. + + @param check64 whether to check the input word is at most 64 bits + (default is false) + @param word word of maximum 64 bits to be shifted + @param bits number of bits to be shifted + @return right shifted word (with 0s at the most significant positions) *) val lsr64 : ?check64:bool (* false *) -> Circuit.Field.t -> int -> Circuit.Field.t -(** Boolean Xor of length bits - * input1 and input2 are the inputs to the Xor gate - * length is the number of bits to Xor - * len_xor is the number of bits of the lookup table (default is 4) - *) +(** Boolean XOR of [length] bits. + + @param len_xor number of bits of the lookup table (default is 4) + @param input1 first input to the XOR gate + @param input2 second input to the XOR gate + @param length number of bits to XOR + @return XOR of input1 and input2 *) val bxor : ?len_xor:int -> Circuit.Field.t -> Circuit.Field.t -> int -> Circuit.Field.t -(** Boolean Xor of 16 bits - * This is a special case of Xor for 16 bits for Xor lookup table of 4 bits of inputs. - * Receives two input words to Xor together, of maximum 16 bits each. - * Returns the Xor of the two words. -*) +(** Boolean XOR of 16 bits. This is a special case of XOR for 16 bits using a + 4-bit lookup table. Receives two input words of maximum 16 bits each. + Returns the XOR of the two words. *) val bxor16 : Circuit.Field.t -> Circuit.Field.t -> Circuit.Field.t -(** Boolean Xor of 64 bits - * This is a special case of Xor for 64 bits for Xor lookup table of 4 bits of inputs. * Receives two input words to Xor together, of maximum 64 bits each. - * Returns the Xor of the two words. -*) +(** Boolean XOR of 64 bits. This is a special case of XOR for 64 bits using a + 4-bit lookup table. Receives two input words of maximum 64 bits each. + Returns the XOR of the two words. *) val bxor64 : Circuit.Field.t -> Circuit.Field.t -> Circuit.Field.t -(** Boolean And of length bits - * input1 and input2 are the two inputs to AND - * length is the number of bits to AND - * len_xor is the number of bits of the inputs of the Xor lookup table (default is 4) -*) +(** Boolean AND of [length] bits. + + @param len_xor number of bits of the XOR lookup table (default is 4) + @param input1 first input to AND + @param input2 second input to AND + @param length number of bits to AND + @return AND of input1 and input2 *) val band : ?len_xor:int -> Circuit.Field.t -> Circuit.Field.t -> int -> Circuit.Field.t -(** Boolean And of 64 bits - * This is a special case of And for 64 bits for Xor lookup table of 4 bits of inputs. - * Receives two input words to And together, of maximum 64 bits each. - * Returns the And of the two words. - *) +(** Boolean AND of 64 bits. This is a special case of AND for 64 bits using a + 4-bit XOR lookup table. Receives two input words of maximum 64 bits each. + Returns the AND of the two words. *) val band64 : Circuit.Field.t -> Circuit.Field.t -> Circuit.Field.t -(** Boolean Not of length bits for checked length (uses Xor gadgets inside to constrain the length) - * - input of word to negate - * - length of word to negate - * - len_xor is the length of the Xor lookup table to use beneath (default 4) - * Note that the length needs to be less than the bit length of the field. - *) +(** Boolean NOT of [length] bits with checked length (uses XOR gadgets inside + to constrain the length). + + Note: the length must be less than the bit length of the field. + + @param len_xor length of the XOR lookup table to use (default 4) + @param input word to negate + @param length number of bits + @return negated word *) val bnot_checked : ?len_xor:int -> Circuit.Field.t -> int -> Circuit.Field.t -(** Negates a word of 64 bits with checked length of 64 bits. - * This means that the bound in lenght is constrained in the circuit. *) +(** Negates a word of 64 bits with checked length of 64 bits. This means that + the bound in length is constrained in the circuit. *) val bnot64_checked : Circuit.Field.t -> Circuit.Field.t -(** Boolean Not of length bits for unchecked length (uses Generic subtractions inside) - * - input of word to negate - * - length of word to negate - * (Note that this can negate two words per row, but it inputs need to be a copy of another - variable with a correct length in order to make sure that the length is correct ) - * Note that the length needs to be less than the bit length of the field. - *) +(** Boolean NOT of [length] bits with unchecked length (uses Generic + subtractions inside). + + Note: this can negate two words per row, but inputs need to be a copy of + another variable with a correct length in order to ensure the length is + correct. The length must be less than the bit length of the field. + + @param input word to negate + @param length number of bits + @return negated word *) val bnot_unchecked : Circuit.Field.t -> int -> Circuit.Field.t (** Negates a word of 64 bits, but its length goes unconstrained in the circuit - (unless it is copied from a checked length value) *) + (unless it is copied from a checked length value). *) val bnot64_unchecked : Circuit.Field.t -> Circuit.Field.t diff --git a/src/lib/crypto/kimchi_backend/gadgets/common.ml b/src/lib/crypto/kimchi_backend/gadgets/common.ml index 6db9b47274f8..afbf3e1246b6 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/common.ml +++ b/src/lib/crypto/kimchi_backend/gadgets/common.ml @@ -1,11 +1,9 @@ -(* Common gadget helpers *) +(** Common gadget helpers. *) open Core_kernel module Bignum_bigint = Snarky_backendless.Backend_extended.Bignum_bigint module Circuit = Kimchi_pasta_snarky_backend.Step_impl -let tests_enabled = true - let tuple3_of_array array = match array with [| a1; a2; a3 |] -> (a1, a2, a3) | _ -> assert false @@ -16,48 +14,50 @@ let tuple4_of_array array = | _ -> assert false -(* Foreign field element limb size *) +(** Foreign field element limb size. *) let limb_bits = 88 -(* Foreign field element limb size 2^L where L=88 *) +(** Foreign field element limb size 2^L where L=88. *) let two_to_limb = Bignum_bigint.(pow (of_int 2) (of_int limb_bits)) -(* 2^3L *) +(** 2^3L. *) let two_to_3limb = Bignum_bigint.(pow two_to_limb (of_int 3)) -(* Length of Bignum_bigint.t in bits *) +(** Length of Bignum_bigint.t in bits. *) let bignum_bigint_bit_length (bigint : Bignum_bigint.t) : int = if Bignum_bigint.(equal bigint zero) then 1 else Z.log2 (Bignum_bigint.to_zarith_bigint bigint) + 1 -(* Conventions used in this interface - * 1. Functions prefixed with "as_prover_" only happen during proving - * and not during circuit creation - * * These functions are called twice (once during creation of - * the circuit and once during proving). Inside the definition - * of these functions, whatever resides within the exists is not executed - * during circuit creation, though there could be some - * code outside the exists (such as error checking code) that is - * run during the creation of the circuit. - * * The value returned by exists depends on what mode it is called in - * * In circuit generation mode it allocates a cvar without any backing memory - * * In proof generation mode it allocates a cvar with backing memory to store - * the values associated with the cvar. The prover can then access these - * with As_prover.read. - * 2. Functions suffixed with "_as_prover" can only be called outside - * the circuit. Specifically, this means within an exists, within - * an as_prover or in an "as_prover_" prefixed function) - *) - -(* Convert cvar field element (i.e. Field.t) to field *) +(** Conventions used in this interface: + + 1. Functions prefixed with "as_prover_" only happen during proving and not + during circuit creation. + - These functions are called twice (once during creation of the circuit + and once during proving). Inside the definition of these functions, + whatever resides within the [exists] is not executed during circuit + creation, though there could be some code outside [exists] (such as + error checking code) that is run during circuit creation. + - The value returned by [exists] depends on what mode it is called in: + - In circuit generation mode it allocates a cvar without any backing + memory. + - In proof generation mode it allocates a cvar with backing memory to + store the values associated with the cvar. The prover can then + access these with [As_prover.read]. + + 2. Functions suffixed with "_as_prover" can only be called outside the + circuit. Specifically, this means within an [exists], within an + [as_prover] or in an "as_prover_" prefixed function. *) + +(** Convert cvar field element (i.e. Field.t) to field. *) let cvar_field_to_field_as_prover (field_element : Circuit.Field.t) = Circuit.As_prover.read Circuit.Field.typ field_element -(* Convert cvar bool element (i.e. Boolean.t) to field *) +(** Convert cvar bool element (i.e. Boolean.var) to bool. *) let cvar_bool_to_bool_as_prover (b : Circuit.Boolean.var) : bool = Circuit.As_prover.read Circuit.Boolean.typ b -(* Combines bits of two cvars with a given boolean function and returns the resulting field element *) +(** Combines bits of two cvars with a given boolean function and returns the + resulting field element. *) let cvar_field_bits_combine_as_prover (input1 : Circuit.Field.t) (input2 : Circuit.Field.t) (bfun : bool -> bool -> bool) = let open Circuit in @@ -69,22 +69,21 @@ let cvar_field_bits_combine_as_prover (input1 : Circuit.Field.t) in Field.Constant.project @@ List.map2_exn list1 list2 ~f:bfun -(* field_bits_le_to_field - Create a field element from contiguous bits of another - * - * Inputs: - * field_element: source field element - * start: zero-indexed starting bit offset - * stop: zero-indexed stopping bit index (or -1 to denote the last bit) - * - * Output: - * New field element created from bits [start, stop) of field_element input, - * placed into the lowest possible bit position, like so - * - * start stop - * \ / - * [......xxx.....] field_element - * [xxx...........] output - * lsb msb *) +(** Creates a field element from contiguous bits of another. + + @param field_element source field element + @param start zero-indexed starting bit offset + @param stop zero-indexed stopping bit index (or -1 to denote the last bit) + @return new field element created from bits [start, stop) of field_element + input, placed into the lowest possible bit position: + + {v + start stop + \ / + [......xxx.....] field_element + [xxx...........] output + lsb msb + v} *) let field_bits_le_to_field field_element (start : int) (stop : int) = let open Circuit in (* Check range is valid *) @@ -100,8 +99,8 @@ let field_bits_le_to_field field_element (start : int) (stop : int) = (* Convert bits range (boolean list) to field element *) Field.Constant.project @@ List.slice bits start stop -(* Create cvar field element from contiguous bits of another - See field_bits_le_to_field for more information *) +(** Creates cvar field element from contiguous bits of another. See + [field_bits_le_to_field] for more information. *) let as_prover_cvar_field_bits_le_to_cvar_field (field_element : Circuit.Field.t) (start : int) (stop : int) : Circuit.Field.t = let open Circuit in @@ -114,38 +113,39 @@ let as_prover_cvar_field_bits_le_to_cvar_field (field_element : Circuit.Field.t) (cvar_field_to_field_as_prover field_element) start stop ) -(* Create field element from base10 string *) +(** Creates field element from base10 string. *) let field_of_base10 (base10 : string) = let open Circuit in Field.Constant.of_string base10 -(* Create cvar field element from base10 string *) +(** Creates cvar field element from base10 string. *) let as_prover_cvar_field_of_base10 (base10 : string) = let open Circuit in exists Field.typ ~compute:(fun () -> field_of_base10 base10) -(* Convert field element to bigint *) +(** Converts field element to bigint. *) let field_to_bignum_bigint field_element : Bignum_bigint.t = (* Bigint doesn't have bigint operators defined for it, so we must use Bignum_bigint *) Circuit.Bigint.(to_bignum_bigint (of_field field_element)) -(* Convert bigint to field element *) +(** Converts bigint to field element. *) let bignum_bigint_to_field (bigint : Bignum_bigint.t) = Circuit.Bigint.(to_field (of_bignum_bigint bigint)) -(* Returns (quotient, remainder) such that numerator = quotient * denominator + remainder - * where quotient, remainder \in [0, denominator) *) +(** Returns (quotient, remainder) such that + numerator = quotient * denominator + remainder + where quotient, remainder are in [0, denominator). *) let bignum_bigint_div_rem (numerator : Bignum_bigint.t) (denominator : Bignum_bigint.t) : Bignum_bigint.t * Bignum_bigint.t = let quotient = Bignum_bigint.(numerator / denominator) in let remainder = Bignum_bigint.(numerator - (denominator * quotient)) in (quotient, remainder) -(* Bignum_bigint to bytes *) +(** Bignum_bigint to bytes. *) let bignum_bigint_unpack_bytes (bignum : Bignum_bigint.t) : string = Z.to_bits @@ Bignum_bigint.to_zarith_bigint bignum -(* Bignum_bigint to bool list *) +(** Bignum_bigint to bool list. *) let bignum_bigint_unpack ?(remove_trailing = false) (bignum : Bignum_bigint.t) : bool list = (* Helper to remove trailing false values *) @@ -190,7 +190,8 @@ let bignum_bigint_unpack_as_unchecked_vars ?(remove_trailing = false) (bignum : Bignum_bigint.t) : Circuit.Boolean.var list = bignum_bigint_unpack_as ~remove_trailing bignum Circuit.Boolean.typ_unchecked -(* Bignum_bigint to constants Boolean.var list (without creating boolean constraints) *) +(** Bignum_bigint to constants Boolean.var list (without creating boolean + constraints). *) let bignum_bigint_unpack_as_unchecked_consts ?(remove_trailing = false) (bignum : Bignum_bigint.t) : Circuit.Boolean.var list = let open Circuit in @@ -198,27 +199,26 @@ let bignum_bigint_unpack_as_unchecked_consts ?(remove_trailing = false) (bignum_bigint_unpack ~remove_trailing bignum) ~f:Boolean.var_of_value -(* Bignum_bigint to hex *) +(** Bignum_bigint to hex. *) let bignum_bigint_to_hex (bignum : Bignum_bigint.t) : string = Z.format "%x" @@ Bignum_bigint.to_zarith_bigint bignum -(* Create Bignum_bigint.t from binary string *) +(** Creates Bignum_bigint.t from binary string. *) let bignum_bigint_of_bin (bin : string) : Bignum_bigint.t = Bignum_bigint.of_zarith_bigint @@ Z.of_bits bin -(* Bignum_bigint.t of hex *) +(** Bignum_bigint.t of hex. *) let bignum_bigint_of_hex (hex : string) : Bignum_bigint.t = Bignum_bigint.of_zarith_bigint @@ Z.of_string_base 16 hex -(* Convert cvar field element (i.e. Field.t) to Bignum_bigint.t *) +(** Converts cvar field element (i.e. Field.t) to Bignum_bigint.t. *) let cvar_field_to_bignum_bigint_as_prover (field_element : Circuit.Field.t) : Bignum_bigint.t = let open Circuit in field_to_bignum_bigint @@ As_prover.read Field.typ field_element -(* Compute modular square root using Tonelli-Shanks algorithm - * See https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm - *) +(** Computes modular square root using Tonelli-Shanks algorithm. + See https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm *) let bignum_bigint_sqrt_mod (x : Bignum_bigint.t) (modulus : Bignum_bigint.t) : Bignum_bigint.t = let open Z in @@ -298,26 +298,26 @@ let bignum_bigint_sqrt_mod (x : Bignum_bigint.t) (modulus : Bignum_bigint.t) : Bignum_bigint.of_zarith_bigint @@ loop m c t r -(* Compute square root of Bignum_bigint value x *) +(** Computes square root of Bignum_bigint value x. *) let bignum_bigint_sqrt (x : Bignum_bigint.t) : Bignum_bigint.t = Bignum_bigint.of_zarith_bigint @@ Z.sqrt @@ Bignum_bigint.to_zarith_bigint x -(* Compute the inverse of Bignum_bigint value x with modulus *) +(** Computes the inverse of Bignum_bigint value x with modulus. *) let bignum_bigint_inverse (x : Bignum_bigint.t) (modulus : Bignum_bigint.t) : Bignum_bigint.t = let x = Bignum_bigint.to_zarith_bigint x in let modulus = Bignum_bigint.to_zarith_bigint modulus in Bignum_bigint.of_zarith_bigint @@ Z.invert x modulus -(* Field to hex *) +(** Field to hex. *) let field_to_hex field_element : string = bignum_bigint_to_hex @@ field_to_bignum_bigint field_element -(* Field of hex *) +(** Field of hex. *) let field_of_hex (hex : string) = bignum_bigint_to_field @@ bignum_bigint_of_hex hex -(* List of field elements for each byte of hexadecimal input*) +(** List of field elements for each byte of hexadecimal input. *) let field_bytes_of_hex (hex : string) : Circuit.Field.Constant.t list = let chars = String.to_list hex in let list_pairs = List.groupi chars ~break:(fun i _ _ -> i mod 2 = 0) in @@ -328,95 +328,15 @@ let field_bytes_of_hex (hex : string) : Circuit.Field.Constant.t list = in list_bytes -(* List of field elements of at most 1 byte to a Bignum_bigint *) +(** List of field elements of at most 1 byte to a Bignum_bigint. *) let cvar_field_bytes_to_bignum_bigint_as_prover (bytestring : Circuit.Field.t list) : Bignum_bigint.t = List.fold bytestring ~init:Bignum_bigint.zero ~f:(fun acc x -> Bignum_bigint.((acc * of_int 2) + cvar_field_to_bignum_bigint_as_prover x) ) -(* Negative test helper *) +(** Negative test helper. *) let is_error (func : unit -> _) = Result.is_error (Or_error.try_with func) -(* Two to the power of n as a field element *) +(** Two to the power of n as a field element. *) let two_pow (n : int) = bignum_bigint_to_field Bignum_bigint.(pow (of_int 2) (of_int n)) - -(*********) -(* Tests *) -(*********) - -let%test_unit "helper field_bits_le_to_field" = - ( if tests_enabled then - let (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner in - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - in - - let _cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof (fun () -> - let open Runner.Impl in - let of_bits = as_prover_cvar_field_bits_le_to_cvar_field in - let of_base10 = as_prover_cvar_field_of_base10 in - - (* Test value *) - let field_element = - of_base10 - "25138500177533925254565157548260087092526215225485178888176592492127995051965" - in - - (* Test extracting all bits as field element *) - Field.Assert.equal (of_bits field_element 0 (-1)) field_element ; - - (* Test extracting 1st bit as field element *) - Field.Assert.equal (of_bits field_element 0 1) (of_base10 "1") ; - - (* Test extracting last bit as field element *) - Field.Assert.equal (of_bits field_element 254 255) (of_base10 "0") ; - - (* Test extracting first 12 bits as field element *) - Field.Assert.equal (of_bits field_element 0 12) (of_base10 "4029") ; - - (* Test extracting third 16 bits as field element *) - Field.Assert.equal (of_bits field_element 32 48) (of_base10 "15384") ; - - (* Test extracting 1st 4 bits as field element *) - Field.Assert.equal (of_bits field_element 0 4) (of_base10 "13") ; - - (* Test extracting 5th 4 bits as field element *) - Field.Assert.equal (of_bits field_element 20 24) (of_base10 "1") ; - - (* Test extracting first 88 bits as field element *) - Field.Assert.equal - (of_bits field_element 0 88) - (of_base10 "155123280218940970272309181") ; - - (* Test extracting second 88 bits as field element *) - Field.Assert.equal - (of_bits field_element 88 176) - (of_base10 "293068737190883252403551981") ; - - (* Test extracting last crumb as field element *) - Field.Assert.equal (of_bits field_element 254 255) (of_base10 "0") ; - - (* Test extracting 2nd to last crumb as field element *) - Field.Assert.equal (of_bits field_element 252 254) (of_base10 "3") ; - - (* Test extracting 3rd to last crumb as field element *) - Field.Assert.equal (of_bits field_element 250 252) (of_base10 "1") ; - - (* Assert litttle-endian order *) - Field.Assert.equal - (of_bits (of_base10 "18446744073709551616" (* 2^64 *)) 64 65) - (of_base10 "1") ; - - (* Test invalid range is denied *) - assert (is_error (fun () -> of_bits field_element 2 2)) ; - assert (is_error (fun () -> of_bits field_element 2 1)) ; - - (* Padding *) - Boolean.Assert.is_true (Field.equal field_element field_element) ) - in - () ) ; - () diff --git a/src/lib/crypto/kimchi_backend/gadgets/generic.ml b/src/lib/crypto/kimchi_backend/gadgets/generic.ml index 1f2810e288d0..726df13cb013 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/generic.ml +++ b/src/lib/crypto/kimchi_backend/gadgets/generic.ml @@ -2,9 +2,8 @@ open Kimchi_backend_common.Plonk_constraint_system.Plonk_constraint module Circuit = Kimchi_pasta_snarky_backend.Step_impl -let tests_enabled = true - -(* Generic addition gate gadget *) +(** Generic addition gate gadget. Constrains left_input + right_input = sum. + Returns the sum. *) let add (left_input : Circuit.Field.t) (right_input : Circuit.Field.t) : Circuit.Field.t = let open Circuit in @@ -29,7 +28,8 @@ let add (left_input : Circuit.Field.t) (right_input : Circuit.Field.t) : } ) ; sum ) -(* Generic subtraction gate gadget *) +(** Generic subtraction gate gadget. Constrains left_input - right_input = + difference. Returns the difference. *) let sub (left_input : Circuit.Field.t) (right_input : Circuit.Field.t) : Circuit.Field.t = let open Circuit in @@ -56,7 +56,8 @@ let sub (left_input : Circuit.Field.t) (right_input : Circuit.Field.t) : } ) ; difference ) -(* Generic multiplication gate gadget *) +(** Generic multiplication gate gadget. Constrains left_input * right_input = + product. Returns the product. *) let mul (left_input : Circuit.Field.t) (right_input : Circuit.Field.t) : Circuit.Field.t = let open Circuit in @@ -80,135 +81,3 @@ let mul (left_input : Circuit.Field.t) (right_input : Circuit.Field.t) : ; c = Field.Constant.zero } ) ; prod ) - -(*********) -(* Tests *) -(*********) - -let%test_unit "generic gadgets" = - if tests_enabled then ( - let (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner in - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - in - - (* Helper to test generic add gate gadget - * Inputs operands and expected output: left_input + right_input = sum - * Returns true if constraints are satisfied, false otherwise. - *) - let test_generic_add ?cs left_input right_input sum = - (* Generate and verify proof *) - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> - let open Runner.Impl in - (* Set up snarky variables for inputs and outputs *) - let left_input = - exists Field.typ ~compute:(fun () -> - Field.Constant.of_int left_input ) - in - let right_input = - exists Field.typ ~compute:(fun () -> - Field.Constant.of_int right_input ) - in - let sum = - exists Field.typ ~compute:(fun () -> Field.Constant.of_int sum) - in - (* Use the generic add gate gadget *) - let result = add left_input right_input in - Field.Assert.equal sum result ; - (* Pad with a "dummy" constraint b/c Kimchi requires at least 2 *) - Boolean.Assert.is_true (Field.equal sum sum) ) - in - - cs - in - - (* Helper to test generic sub gate gadget - * Inputs operands and expected output: left_input - right_input = difference - * Returns true if constraints are satisfied, false otherwise. - *) - let test_generic_sub ?cs left_input right_input difference = - (* Generate and verify proof *) - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> - let open Runner.Impl in - (* Set up snarky variables for inputs and outputs *) - let left_input = - exists Field.typ ~compute:(fun () -> - Field.Constant.of_int left_input ) - in - let right_input = - exists Field.typ ~compute:(fun () -> - Field.Constant.of_int right_input ) - in - let difference = - exists Field.typ ~compute:(fun () -> - Field.Constant.of_int difference ) - in - (* Use the generic sub gate gadget *) - let result = sub left_input right_input in - Field.Assert.equal difference result ; - (* Pad with a "dummy" constraint b/c Kimchi requires at least 2 *) - Boolean.Assert.is_true (Field.equal difference difference) ) - in - - cs - in - - (* Helper to test generic multimplication gate gadget - * Inputs operands and expected output: left_input * right_input = prod - * Returns true if constraints are satisfied, false otherwise. - *) - let test_generic_mul ?cs left_input right_input prod = - (* Generate and verify proof *) - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> - let open Runner.Impl in - (* Set up snarky variables for inputs and outputs *) - let left_input = - exists Field.typ ~compute:(fun () -> - Field.Constant.of_int left_input ) - in - let right_input = - exists Field.typ ~compute:(fun () -> - Field.Constant.of_int right_input ) - in - let prod = - exists Field.typ ~compute:(fun () -> Field.Constant.of_int prod) - in - (* Use the generic mul gate gadget *) - let result = mul left_input right_input in - Field.Assert.equal prod result ; - (* Pad with a "dummy" constraint b/c Kimchi requires at least 2 *) - Boolean.Assert.is_true (Field.equal prod prod) ) - in - - cs - in - - (* TEST generic add gadget *) - (* Positive tests *) - let cs = test_generic_add 0 0 0 in - let _cs = test_generic_add ~cs 1 2 3 in - (* Negatve tests *) - assert (Common.is_error (fun () -> test_generic_add ~cs 1 0 0)) ; - assert (Common.is_error (fun () -> test_generic_add ~cs 2 4 7)) ; - - (* TEST generic sub gadget *) - (* Positive tests *) - let cs = test_generic_sub 0 0 0 in - let _cs = test_generic_sub ~cs 2 1 1 in - (* Negatve tests *) - assert (Common.is_error (fun () -> test_generic_sub ~cs 4 2 1)) ; - assert (Common.is_error (fun () -> test_generic_sub ~cs 13 4 10)) ; - - (* TEST generic mul gadget *) - (* Positive tests *) - let cs = test_generic_mul 0 0 0 in - let _cs = test_generic_mul ~cs 1 2 2 in - (* Negatve tests *) - assert (Common.is_error (fun () -> test_generic_mul ~cs 1 0 1)) ; - assert (Common.is_error (fun () -> test_generic_mul ~cs 2 4 7)) ) ; - () diff --git a/src/lib/crypto/kimchi_backend/gadgets/generic.mli b/src/lib/crypto/kimchi_backend/gadgets/generic.mli index e73f6a66f06a..f05af13487a3 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/generic.mli +++ b/src/lib/crypto/kimchi_backend/gadgets/generic.mli @@ -1,29 +1,23 @@ module Circuit := Kimchi_pasta_snarky_backend.Step_impl -(** Generic addition gate gadget - * Constrains left_input + right_input = sum - * Returns sum - *) +(** Generic addition gate gadget. Constrains left_input + right_input = sum. + Returns the sum. *) val add : Circuit.Field.t (* left_input *) -> Circuit.Field.t (* right_input *) -> Circuit.Field.t (* sum *) -(** Generic subtraction gate gadget - * Constrains left_input - right_input = difference - * Returns difference - *) +(** Generic subtraction gate gadget. Constrains left_input - right_input = + difference. Returns the difference. *) val sub : Circuit.Field.t (* left_input *) -> Circuit.Field.t (* right_input *) -> Circuit.Field.t (* difference *) -(** Generic multiplication gate gadget - * Constrains left_input * right_input = product - * Returns product - *) +(** Generic multiplication gate gadget. Constrains left_input * right_input = + product. Returns the product. *) val mul : Circuit.Field.t (* left_input *) -> Circuit.Field.t (* right_input *) diff --git a/src/lib/crypto/kimchi_backend/gadgets/keccak.ml b/src/lib/crypto/kimchi_backend/gadgets/keccak.ml index f88cc2b25e14..ea120c2094d4 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/keccak.ml +++ b/src/lib/crypto/kimchi_backend/gadgets/keccak.ml @@ -3,40 +3,41 @@ module Bignum_bigint = Snarky_backendless.Backend_extended.Bignum_bigint module Snark_intf = Snarky_backendless.Snark_intf module Circuit = Kimchi_pasta_snarky_backend.Step_impl -let tests_enabled = true - -(* Endianness type *) +(** Endianness type. *) type endianness = Big | Little -(* DEFINITIONS OF CONSTANTS FOR KECCAK *) - -(* Length of the square matrix side of Keccak states *) +(** Length of the square matrix side of Keccak states. *) let keccak_dim = 5 -(* value `l` in Keccak, ranges from 0 to 6 (7 possible values) *) +(** Value [l] in Keccak, ranges from 0 to 6 (7 possible values). *) let keccak_ell = 6 -(* width of the lane of the state, meaning the length of each word in bits (64) *) +(** Width of the lane of the state, meaning the length of each word in bits + (64). *) let keccak_word = Int.pow 2 keccak_ell -(* number of bytes that fit in a word (8) *) +(** Number of bytes that fit in a word (8). *) let bytes_per_word = keccak_word / 8 -(* length of the state in bits, meaning the 5x5 matrix of words in bits (1600) *) +(** Length of the state in bits, meaning the 5x5 matrix of words in bits + (1600). *) let keccak_state_length = Int.pow keccak_dim 2 * keccak_word -(* number of rounds of the Keccak permutation function depending on the value `l` (24) *) +(** Number of rounds of the Keccak permutation function depending on the value + [l] (24). *) let keccak_rounds = 12 + (2 * keccak_ell) -(* Creates the 5x5 table of rotation offset for Keccak modulo 64 - * | x \ y | 0 | 1 | 2 | 3 | 4 | - * | ----- | -- | -- | -- | -- | -- | - * | 0 | 0 | 36 | 3 | 41 | 18 | - * | 1 | 1 | 44 | 10 | 45 | 2 | - * | 2 | 62 | 6 | 43 | 15 | 61 | - * | 3 | 28 | 55 | 25 | 21 | 56 | - * | 4 | 27 | 20 | 39 | 8 | 14 | -*) +(** Creates the 5x5 table of rotation offset for Keccak modulo 64. + + {v + | x \ y | 0 | 1 | 2 | 3 | 4 | + | ----- | -- | -- | -- | -- | -- | + | 0 | 0 | 36 | 3 | 41 | 18 | + | 1 | 1 | 44 | 10 | 45 | 2 | + | 2 | 62 | 6 | 43 | 15 | 61 | + | 3 | 28 | 55 | 25 | 21 | 56 | + | 4 | 27 | 20 | 39 | 8 | 14 | + v} *) let rot_table = [| [| 0; 36; 3; 41; 18 |] ; [| 1; 44; 10; 45; 2 |] @@ -72,7 +73,7 @@ let round_consts = ; "8000000080008008" |] -(* Auxiliary function to check composition of 8 bytes into a 64-bit word *) +(** Auxiliary function to check composition of 8 bytes into a 64-bit word. *) let check_bytes_to_word (word : Circuit.Field.t) (word_bytes : Circuit.Field.t array) = let open Circuit in @@ -83,12 +84,12 @@ let check_bytes_to_word (word : Circuit.Field.t) in Field.Assert.equal word composition -(* Internal struct for Keccak State *) +(** Internal struct for Keccak State. *) module State = struct type 'a matrix = 'a array array - (* Creates a state formed by a matrix of 5x5 Cvar zeros *) + (** Creates a state formed by a matrix of 5x5 Cvar zeros. *) let zeros () : Circuit.Field.t matrix = let open Circuit in let state = @@ -96,13 +97,13 @@ module State = struct in state - (* Updates the cells of a state with new values *) + (** Updates the cells of a state with new values. *) let update ~(prev : Circuit.Field.t matrix) ~(next : Circuit.Field.t matrix) = for x = 0 to keccak_dim - 1 do prev.(x) <- next.(x) done - (* Converts a list of bytes to a matrix of Field elements *) + (** Converts a list of bytes to a matrix of Field elements. *) let of_bytes (bytestring : Circuit.Field.t list) : Circuit.Field.t matrix = let open Circuit in assert (List.length bytestring = 200) ; @@ -129,7 +130,8 @@ module State = struct state - (* Converts a state of cvars to a list of bytes as cvars and creates constraints for it *) + (** Converts a state of cvars to a list of bytes as cvars and creates + constraints for it. *) let as_prover_to_bytes (state : Circuit.Field.t matrix) : Circuit.Field.t list = let open Circuit in @@ -183,19 +185,17 @@ module State = struct Array.map2_exn input1 input2 ~f:(Array.map2_exn ~f:Bitwise.bxor64) end -(* KECCAK HASH FUNCTION IMPLEMENTATION *) - -(* Computes the number of required extra bytes to pad a message of length bytes *) +(** Computes the number of required extra bytes to pad a message of length + bytes. *) let bytes_to_pad (rate : int) (length : int) = (rate / 8) - (length mod (rate / 8)) -(* Pads a message M as: - * M || pad[x](|M|) - * Padding rule 0x06 ..0*..1. - * The padded message vector will start with the message vector - * followed by the 0*1 rule to fulfil a length that is a multiple of rate (in bytes) - * (This means a 0110 sequence, followed with as many 0s as needed, and a final 1 bit) - *) +(** Pads a message M as: M || pad[x](|M|) + + Padding rule 0x06 ..0*..1. The padded message vector will start with the + message vector followed by the 0*1 rule to fulfil a length that is a + multiple of rate (in bytes). This means a 0110 sequence, followed with as + many 0s as needed, and a final 1 bit. *) let pad_nist (message : Circuit.Field.t list) (rate : int) : Circuit.Field.t list = let open Circuit in @@ -214,13 +214,12 @@ let pad_nist (message : Circuit.Field.t list) (rate : int) : (* Return the padded message *) message @ pad -(* Pads a message M as: - * M || pad[x](|M|) - * Padding rule 10*1. - * The padded message vector will start with the message vector - * followed by the 10*1 rule to fulfil a length that is a multiple of rate (in bytes) - * (This means a 1 bit, followed with as many 0s as needed, and a final 1 bit) -*) +(** Pads a message M as: M || pad[x](|M|) + + Padding rule 10*1. The padded message vector will start with the message + vector followed by the 10*1 rule to fulfil a length that is a multiple of + rate (in bytes). This means a 1 bit, followed with as many 0s as needed, + and a final 1 bit. *) let pad_101 (message : Circuit.Field.t list) (rate : int) : Circuit.Field.t list = let open Circuit in @@ -238,14 +237,15 @@ let pad_101 (message : Circuit.Field.t list) (rate : int) : Circuit.Field.t list (* Return the padded message *) message @ Array.to_list pad -(* - * First algrithm in the compression step of Keccak for 64-bit words. - * C[x] = A[x,0] xor A[x,1] xor A[x,2] xor A[x,3] xor A[x,4] - * D[x] = C[x-1] xor ROT(C[x+1], 1) - * E[x,y] = A[x,y] xor D[x] - * In the Keccak reference, it corresponds to the `theta` algorithm. - * We use the first index of the state array as the x coordinate and the second index as the y coordinate. - *) +(** First algorithm in the compression step of Keccak for 64-bit words. + + - C[x] = A[x,0] xor A[x,1] xor A[x,2] xor A[x,3] xor A[x,4] + - D[x] = C[x-1] xor ROT(C[x+1], 1) + - E[x,y] = A[x,y] xor D[x] + + In the Keccak reference, this corresponds to the [theta] algorithm. We use + the first index of the state array as the x coordinate and the second index + as the y coordinate. *) let theta (state : Circuit.Field.t State.matrix) : Circuit.Field.t State.matrix = let state_a = state in @@ -266,31 +266,13 @@ let theta (state : Circuit.Field.t State.matrix) : Circuit.Field.t State.matrix Array.map2_exn state_a state_d ~f:(fun state_a state_d -> Array.map state_a ~f:(Bitwise.bxor64 state_d) ) -(* - * Second and third steps in the compression step of Keccak for 64-bit words. - * B[y,2x+3y] = ROT(E[x,y], r[x,y]) - * which is equivalent to the `rho` algorithm followed by the `pi` algorithm in the Keccak reference as follows: - * rho: - * A[0,0] = a[0,0] - * | x | = | 1 | - * | y | = | 0 | - * for t = 0 to 23 do - * A[x,y] = ROT(a[x,y], (t+1)(t+2)/2 mod 64))) - * | x | = | 0 1 | | x | - * | | = | | * | | - * | y | = | 2 3 | | y | - * end for - * pi: - * for x = 0 to 4 do - * for y = 0 to 4 do - * | X | = | 0 1 | | x | - * | | = | | * | | - * | Y | = | 2 3 | | y | - * A[X,Y] = a[x,y] - * end for - * end for - * We use the first index of the state array as the x coordinate and the second index as the y coordinate. - *) +(** Second and third steps in the compression step of Keccak for 64-bit words. + + B[y,2x+3y] = ROT(E[x,y], r[x,y]) + + This is equivalent to the [rho] algorithm followed by the [pi] algorithm in + the Keccak reference. We use the first index of the state array as the x + coordinate and the second index as the y coordinate. *) let pi_rho (state : Circuit.Field.t State.matrix) : Circuit.Field.t State.matrix = let state_e = state in @@ -305,16 +287,11 @@ let pi_rho (state : Circuit.Field.t State.matrix) : Circuit.Field.t State.matrix done ; state_b -(* - * Fourth step of the compression function of Keccak for 64-bit words. - * F[x,y] = B[x,y] xor ((not B[x+1,y]) and B[x+2,y]) - * It corresponds to the chi algorithm in the Keccak reference. - * for y = 0 to 4 do - * for x = 0 to 4 do - * A[x,y] = a[x,y] xor ((not a[x+1,y]) and a[x+2,y]) - * end for - * end for - *) +(** Fourth step of the compression function of Keccak for 64-bit words. + + F[x,y] = B[x,y] xor ((not B[x+1,y]) and B[x+2,y]) + + This corresponds to the [chi] algorithm in the Keccak reference. *) let chi (state : Circuit.Field.t State.matrix) : Circuit.Field.t State.matrix = let state_b = state in let state_f = State.zeros () in @@ -334,10 +311,9 @@ let chi (state : Circuit.Field.t State.matrix) : Circuit.Field.t State.matrix = 64 bits thanks to the fact that it is the output of a previous Xor64 *) state_f -(* - * Fifth step of the permutation function of Keccak for 64-bit words. - * It takes the word located at the position (0,0) of the state and XORs it with the round constant. - *) +(** Fifth step of the permutation function of Keccak for 64-bit words. Takes + the word located at position (0,0) of the state and XORs it with the round + constant. *) let iota (state : Circuit.Field.t State.matrix) (rc : Circuit.Field.t) : Circuit.Field.t State.matrix = (* Round constants for this round for the iota algorithm *) @@ -346,12 +322,9 @@ let iota (state : Circuit.Field.t State.matrix) (rc : Circuit.Field.t) : (* Check it is the right round constant is implicit from reusing the right cvar *) state_g -(* The round applies the lambda function and then chi and iota - * It consists of the concatenation of the theta, rho, and pi algorithms. - * lambda = pi o rho o theta - * Thus: - * iota o chi o pi o rho o theta - *) +(** The round applies the lambda function and then chi and iota. It consists of + the concatenation of the theta, rho, and pi algorithms: + lambda = pi o rho o theta, thus: iota o chi o pi o rho o theta. *) let round (state : Circuit.Field.t State.matrix) (rc : Circuit.Field.t) : Circuit.Field.t State.matrix = let state_a = state in @@ -361,7 +334,7 @@ let round (state : Circuit.Field.t State.matrix) (rc : Circuit.Field.t) : let state_d = iota state_f rc in state_d -(* Keccak permutation function with a constant number of rounds *) +(** Keccak permutation function with a constant number of rounds. *) let permutation (state : Circuit.Field.t State.matrix) (rc : Circuit.Field.t array) : Circuit.Field.t State.matrix = for i = 0 to keccak_rounds - 1 do @@ -371,7 +344,7 @@ let permutation (state : Circuit.Field.t State.matrix) done ; state -(* Absorb padded message into a keccak state with given rate and capacity *) +(** Absorbs padded message into a keccak state with given rate and capacity. *) let absorb (padded_message : Circuit.Field.t list) ~(capacity : int) ~(rate : int) ~(rc : Circuit.Field.t array) : Circuit.Field.t State.matrix = let open Circuit in @@ -399,7 +372,7 @@ let absorb (padded_message : Circuit.Field.t list) ~(capacity : int) state -(* Squeeze state until it has a desired length in bits *) +(** Squeezes state until it has a desired length in bits. *) let squeeze (state : Circuit.Field.t State.matrix) ~(length : int) ~(rate : int) ~(rc : Circuit.Field.t array) : Circuit.Field.t list = let copy (bytestring : Circuit.Field.t list) @@ -440,9 +413,8 @@ let squeeze (state : Circuit.Field.t State.matrix) ~(length : int) ~(rate : int) Array.to_list hashed -(* Keccak sponge function for 1600 bits of state width - * Need to split the message into blocks of 1088 bits. - *) +(** Keccak sponge function for 1600 bits of state width. Splits the message + into blocks of 1088 bits. *) let sponge (padded_message : Circuit.Field.t list) ~(length : int) ~(capacity : int) ~(rate : int) : Circuit.Field.t list = let open Circuit in @@ -459,7 +431,7 @@ let sponge (padded_message : Circuit.Field.t list) ~(length : int) let hashed = squeeze state ~length ~rate ~rc in hashed -(* Checks in the circuit that a list of cvars are at most 8 bits each *) +(** Checks in the circuit that a list of cvars are at most 8 bits each. *) let check_bytes (inputs : Circuit.Field.t list) : unit = let open Circuit in (* Create a second list of shifted inputs with 4 more bits*) @@ -489,13 +461,13 @@ let check_bytes (inputs : Circuit.Field.t list) : unit = done ; () -(* -* Keccak hash function with input message passed as list of Cvar bytes. -* The message will be parsed as follows: -* - the first byte of the message will be the least significant byte of the first word of the state (A[0][0]) -* - the 10*1 pad will take place after the message, until reaching the bit length rate. -* - then, {0} pad will take place to finish the 1600 bits of the state. -*) +(** Keccak hash function with input message passed as list of Cvar bytes. The + message will be parsed as follows: + - the first byte of the message will be the least significant byte of the + first word of the state (A[0][0]) + - the 10*1 pad will take place after the message, until reaching the bit + length rate + - then, \{0\} pad will take place to finish the 1600 bits of the state *) let hash ?(inp_endian = Big) ?(out_endian = Big) ?(byte_checks = false) (message : Circuit.Field.t list) ~(length : int) ~(capacity : int) (nist_version : bool) : Circuit.Field.t list = @@ -525,9 +497,8 @@ let hash ?(inp_endian = Big) ?(out_endian = Big) ?(byte_checks = false) (* Check each cvar output is 8 bits at most *) hash -(* Gagdet for NIST SHA-3 function for output lengths 224/256/384/512. - * Input and output endianness can be specified. Default is big endian. - *) +(** Gadget for NIST SHA-3 function for output lengths 224/256/384/512. Input + and output endianness can be specified. Default is big endian. *) let nist_sha3 ?(inp_endian = Big) ?(out_endian = Big) ?(byte_checks = false) (len : int) (message : Circuit.Field.t list) : Circuit.Field.t list = let hash = @@ -549,18 +520,17 @@ let nist_sha3 ?(inp_endian = Big) ?(out_endian = Big) ?(byte_checks = false) in hash -(* Gadget for Keccak hash function for the parameters used in Ethereum. - * Input and output endianness can be specified. Default is big endian. - *) +(** Gadget for Keccak hash function for the parameters used in Ethereum. Input + and output endianness can be specified. Default is big endian. *) let ethereum ?(inp_endian = Big) ?(out_endian = Big) ?(byte_checks = false) (message : Circuit.Field.t list) : Circuit.Field.t list = hash message ~length:256 ~capacity:512 false ~inp_endian ~out_endian ~byte_checks -(* Gagdet for pre-NIST SHA-3 function for output lengths 224/256/384/512. - * Input and output endianness can be specified. Default is big endian. - * Note that when calling with output length 256 this is equivalent to the ethereum function - *) +(** Gadget for pre-NIST SHA-3 function for output lengths 224/256/384/512. + Input and output endianness can be specified. Default is big endian. Note + that when calling with output length 256 this is equivalent to the + [ethereum] function. *) let pre_nist ?(inp_endian = Big) ?(out_endian = Big) ?(byte_checks = false) (len : int) (message : Circuit.Field.t list) : Circuit.Field.t list = match len with @@ -577,201 +547,3 @@ let pre_nist ?(inp_endian = Big) ?(out_endian = Big) ?(byte_checks = false) ~byte_checks | _ -> assert false - -(* KECCAK GADGET TESTS *) - -let%test_module "keccak gadget" = - ( module struct - (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner - - let () = Backtrace.elide := false - - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - - let test_keccak ?cs ?inp_endian ?out_endian ~nist ~len message expected = - if tests_enabled then - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> - let open Runner.Impl in - assert (String.length message % 2 = 0) ; - let message = - Array.to_list - @@ exists - (Typ.array ~length:(String.length message / 2) Field.typ) - ~compute:(fun () -> - Array.of_list @@ Common.field_bytes_of_hex message ) - in - let hashed = - Array.of_list - @@ - match nist with - | true -> - nist_sha3 len message ?inp_endian ?out_endian - ~byte_checks:true - | false -> - pre_nist len message ?inp_endian ?out_endian - ~byte_checks:true - in - - let expected = - Array.of_list @@ Common.field_bytes_of_hex expected - in - (* Check expected hash output *) - as_prover (fun () -> - for i = 0 to Array.length hashed - 1 do - let byte_hash = - Common.cvar_field_to_bignum_bigint_as_prover hashed.(i) - in - let byte_exp = Common.field_to_bignum_bigint expected.(i) in - assert (Bignum_bigint.(byte_hash = byte_exp)) - done ; - () ) ; - () ) - in - Some cs - else None - - (* Positive tests *) - let cs_eth256_1byte = - lazy - (test_keccak ~nist:false ~len:256 "30" - "044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d" ) - - let%test_unit "eth256_1byte" = Lazy.force cs_eth256_1byte |> fun _ -> () - - let cs_nist512_1byte = - lazy - (test_keccak ~nist:true ~len:512 "30" - "2d44da53f305ab94b6365837b9803627ab098c41a6013694f9b468bccb9c13e95b3900365eb58924de7158a54467e984efcfdabdbcc9af9a940d49c51455b04c" ) - - let%test_unit "nist512_1byte" = Lazy.force cs_nist512_1byte |> fun _ -> () - - let%test_unit "I own an NFT with id X on Ethereum" = - let _cs = - test_keccak ~nist:false ~len:256 - "4920616d20746865206f776e6572206f6620746865204e465420776974682069642058206f6e2074686520457468657265756d20636861696e" - "63858e0487687c3eeb30796a3e9307680e1b81b860b01c88ff74545c2c314e36" - in - let _cs = - test_keccak ~nist:false ~len:512 - "4920616d20746865206f776e6572206f6620746865204e465420776974682069642058206f6e2074686520457468657265756d20636861696e" - "848cf716c2d64444d2049f215326b44c25a007127d2871c1b6004a9c3d102f637f31acb4501e59f3a0160066c8814816f4dc58a869f37f740e09b9a8757fa259" - in - () - - let%test_unit "Two blocks" = - (* The following two tests use 2 blocks instead *) - (* For Keccak *) - let _cs = - test_keccak ~nist:false ~len:256 - "044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116df9e2eaaa42d9fe9e558a9b8ef1bf366f190aacaa83bad2641ee106e9041096e42d44da53f305ab94b6365837b9803627ab098c41a6013694f9b468bccb9c13e95b3900365eb58924de7158a54467e984efcfdabdbcc9af9a940d49c51455b04c63858e0487687c3eeb30796a3e9307680e1b81b860b01c88ff74545c2c314e36" - "560deb1d387f72dba729f0bd0231ad45998dda4b53951645322cf95c7b6261d9" - in - (* For NIST *) - let _cs = - test_keccak ~nist:true ~len:256 - "044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116df9e2eaaa42d9fe9e558a9b8ef1bf366f190aacaa83bad2641ee106e9041096e42d44da53f305ab94b6365837b9803627ab098c41a6013694f9b468bccb9c13e95b3900365eb58924de7158a54467e984efcfdabdbcc9af9a940d49c51455b04c63858e0487687c3eeb30796a3e9307680e1b81b860b01c88ff74545c2c314e36" - "1784354c4bbfa5f54e5db23041089e65a807a7b970e3cfdba95e2fbe63b1c0e4" - in - () - - (* Padding of input 1080 bits and 1088 bits *) - let cs135 = - lazy - (test_keccak ~nist:false ~len:256 - "391ccf9b5de23bb86ec6b2b142adb6e9ba6bee8519e7502fb8be8959fbd2672934cc3e13b7b45bf2b8a5cb48881790a7438b4a326a0c762e31280711e6b64fcc2e3e4e631e501d398861172ea98603618b8f23b91d0208b0b992dfe7fdb298b6465adafbd45e4f88ee9dc94e06bc4232be91587f78572c169d4de4d8b95b714ea62f1fbf3c67a4" - "7d5655391ede9ca2945f32ad9696f464be8004389151ce444c89f688278f2e1d" ) - - let%test_unit "135 bits, uses the following single padded byte as 0x81" = - Lazy.force cs135 |> fun _ -> () - - (* 136 bits, 2 blocks and second is just padding *) - let cs136 = - lazy - (test_keccak ~nist:false ~len:256 - "ff391ccf9b5de23bb86ec6b2b142adb6e9ba6bee8519e7502fb8be8959fbd2672934cc3e13b7b45bf2b8a5cb48881790a7438b4a326a0c762e31280711e6b64fcc2e3e4e631e501d398861172ea98603618b8f23b91d0208b0b992dfe7fdb298b6465adafbd45e4f88ee9dc94e06bc4232be91587f78572c169d4de4d8b95b714ea62f1fbf3c67a4" - "37694fd4ba137be747eb25a85b259af5563e0a7a3010d42bd15963ac631b9d3f" ) - - let%test_unit "136 bits, 2 blocks and second is just padding" = - Lazy.force cs136 |> fun _ -> () - - let%test_unit "135 bits, input already looks padded" = - test_keccak ?cs:(Lazy.force cs135) ~nist:false ~len:256 - "800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - "0edbbae289596c7da9fafe65931c5dce3439fb487b8286d6c1970e44eea39feb" - |> fun _ -> () - - let%test_unit "136 bits, input already looks padded" = - test_keccak ?cs:(Lazy.force cs136) ~nist:false ~len:256 - "80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - "bbf1f49a2cc5678aa62196d0c3108d89425b81780e1e90bcec03b4fb5f834714" - |> fun _ -> () - - let%test_unit "reuse eth256_1byte" = - test_keccak - ?cs:(Lazy.force cs_eth256_1byte) - ~nist:false ~len:256 "00" - "bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" - |> fun _ -> () - - let cs2 = - lazy - (test_keccak ~nist:false ~len:256 "a2c0" - "9856642c690c036527b8274db1b6f58c0429a88d9f3b9298597645991f4f58f0" ) - - let%test_unit "reuse" = - let _cs = - test_keccak ?cs:(Lazy.force cs2) ~nist:false ~len:256 "0a2c" - "295b48ad49eff61c3abfd399c672232434d89a4ef3ca763b9dbebb60dbb32a8b" - in - () - - (* Endianness *) - let%test_unit "endianness" = - test_keccak ~nist:false ~len:256 ~inp_endian:Little ~out_endian:Little - "2c0a" - "8b2ab3db60bbbe9d3b76caf34e9ad834242372c699d3bf3a1cf6ef49ad485b29" - |> fun _ -> () - - (* Negative tests *) - - let%test_unit "bad hex input" = - assert ( - Common.is_error (fun () -> - test_keccak ~nist:false ~len:256 "a2c" - "07f02d241eeba9c909a1be75e08d9e8ac3e61d9e24fa452a6785083e1527c467" ) ) - - (* Check cannot use bad hex inputs *) - let%test_unit "bad hex input 2" = - assert ( - Common.is_error (fun () -> - test_keccak ~nist:true ~len:256 "0" - "f39f4526920bb4c096e5722d64161ea0eb6dbd0b4ff0d812f31d56fb96142084" ) ) - - let%test_unit "inconsistent output length reuse" = - assert ( - Common.is_error (fun () -> - test_keccak - ?cs:(Lazy.force cs_nist512_1byte) - ~nist:true ~len:256 "30" - "f9e2eaaa42d9fe9e558a9b8ef1bf366f190aacaa83bad2641ee106e9041096e4" ) ) - - let%test_unit "inconsistent padding reuse" = - assert ( - Common.is_error (fun () -> - test_keccak - ?cs:(Lazy.force cs_eth256_1byte) - ~nist:true ~len:256 - "4920616d20746865206f776e6572206f6620746865204e465420776974682069642058206f6e2074686520457468657265756d20636861696e" - "63858e0487687c3eeb30796a3e9307680e1b81b860b01c88ff74545c2c314e36" ) ) - - let%test_unit "inconsistent endianess reuse" = - assert ( - Common.is_error (fun () -> - test_keccak ?cs:(Lazy.force cs2) ~nist:false ~len:256 - ~inp_endian:Little ~out_endian:Little "2c0a" - "8b2ab3db60bbbe9d3b76caf34e9ad834242372c699d3bf3a1cf6ef49ad485b29" ) ) - end ) diff --git a/src/lib/crypto/kimchi_backend/gadgets/keccak.mli b/src/lib/crypto/kimchi_backend/gadgets/keccak.mli index decd93fa72ae..3feb5386a225 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/keccak.mli +++ b/src/lib/crypto/kimchi_backend/gadgets/keccak.mli @@ -1,18 +1,19 @@ module Circuit := Kimchi_pasta_snarky_backend.Step_impl -(* Endianness type *) +(** Endianness type. *) type endianness = Big | Little -(** Gagdet for NIST SHA-3 function for output lengths 224/256/384/512 - * Input: - * - Endianness of the input (default is Big). - * - Endianness of the output (default is Big). - * - Flag to enable input byte checks (default is false). Outputs are always constrained. - * - int representing the output length of the hash function (224|256|384|512) - * - Arbitrary length list of Cvars representing the input to the hash function where each of them is a byte - * Output: - * - List of `int` Cvars representing the output of the hash function where each of them is a byte - *) +(** Gadget for NIST SHA-3 function for output lengths 224/256/384/512. + + @param inp_endian Endianness of the input (default is Big) + @param out_endian Endianness of the output (default is Big) + @param byte_checks Flag to enable input byte checks (default is false). + Outputs are always constrained. + @param len Output length of the hash function (224|256|384|512) + @param message Arbitrary length list of Cvars representing the input to + the hash function where each of them is a byte + @return List of Cvars representing the output of the hash function where + each of them is a byte *) val nist_sha3 : ?inp_endian:endianness -> ?out_endian:endianness @@ -21,15 +22,16 @@ val nist_sha3 : -> Circuit.Field.t list -> Circuit.Field.t list -(** Gadget for Keccak hash function for the parameters used in Ethereum - * Input: - * - Endianness of the input (default is Big). - * - Endianness of the output (default is Big). - * - Flag to enable input byte checks (default is false). Outputs are always constrained. - * - Arbitrary length list of Cvars representing the input to the hash function where each of them is a byte - * Output: - * - List of 256 Cvars representing the output of the hash function where each of them is a byte - *) +(** Gadget for Keccak hash function for the parameters used in Ethereum. + + @param inp_endian Endianness of the input (default is Big) + @param out_endian Endianness of the output (default is Big) + @param byte_checks Flag to enable input byte checks (default is false). + Outputs are always constrained. + @param message Arbitrary length list of Cvars representing the input to + the hash function where each of them is a byte + @return List of 256 Cvars representing the output of the hash function + where each of them is a byte *) val ethereum : ?inp_endian:endianness -> ?out_endian:endianness @@ -37,17 +39,19 @@ val ethereum : -> Circuit.Field.t list -> Circuit.Field.t list -(*** Gagdet for pre-NIST SHA-3 function for output lengths 224/256/384/512. - * Note that when calling with output length 256 this is equivalent to the ethereum function - * Input: - * - Endianness of the input (default is Big). - * - Endianness of the output (default is Big). - * - Flag to enable input byte checks (default is false). Outputs are always constrained. - * - int representing the output length of the hash function (224|256|384|512) - * - Arbitrary length list of Cvars Cvars representing the input to the hash function where each of them is a byte - * Output: - * - List of `int` Cvars representing the output of the hash function where each of them is a byte - *) +(** Gadget for pre-NIST SHA-3 function for output lengths 224/256/384/512. + Note that when calling with output length 256 this is equivalent to the + [ethereum] function. + + @param inp_endian Endianness of the input (default is Big) + @param out_endian Endianness of the output (default is Big) + @param byte_checks Flag to enable input byte checks (default is false). + Outputs are always constrained. + @param len Output length of the hash function (224|256|384|512) + @param message Arbitrary length list of Cvars representing the input to + the hash function where each of them is a byte + @return List of Cvars representing the output of the hash function where + each of them is a byte *) val pre_nist : ?inp_endian:endianness -> ?out_endian:endianness diff --git a/src/lib/crypto/kimchi_backend/gadgets/lookup.ml b/src/lib/crypto/kimchi_backend/gadgets/lookup.ml index 3a705e635787..8640c7e33e22 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/lookup.ml +++ b/src/lib/crypto/kimchi_backend/gadgets/lookup.ml @@ -2,11 +2,10 @@ open Kimchi_backend_common.Plonk_constraint_system.Plonk_constraint module Circuit = Kimchi_pasta_snarky_backend.Step_impl -let tests_enabled = true +(** Looks up three values (at most 12 bits each). -(* Looks up three values (at most 12 bits each) - * BEWARE: it needs in the circuit at least one gate (even if dummy) that uses the 12-bit lookup table for it to work - *) + BEWARE: it needs in the circuit at least one gate (even if dummy) that uses + the 12-bit lookup table for it to work. *) let three_12bit (v0 : Circuit.Field.t) (v1 : Circuit.Field.t) (v2 : Circuit.Field.t) : unit = let open Circuit in @@ -23,9 +22,10 @@ let three_12bit (v0 : Circuit.Field.t) (v1 : Circuit.Field.t) } ) ) ; () -(* Check that one value is at most X bits (at most 12), default is 12. - * BEWARE: it needs in the circuit at least one gate (even if dummy) that uses the 12-bit lookup table for it to work - *) +(** Check that one value is at most X bits (at most 12), default is 12. + + BEWARE: it needs in the circuit at least one gate (even if dummy) that uses + the 12-bit lookup table for it to work. *) let less_than_bits ?(bits = 12) (value : Circuit.Field.t) : unit = let open Circuit in assert (bits > 0 && bits <= 12) ; @@ -40,56 +40,3 @@ let less_than_bits ?(bits = 12) (value : Circuit.Field.t) : unit = in three_12bit value Field.(value * shift) Field.zero ; () - -(*********) -(* Tests *) -(*********) - -let%test_unit "lookup gadget" = - if tests_enabled then ( - let (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner in - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - in - - (* Helper to test lookup less than gadget for both variables and constants - * Inputs value to be checked and number of bits - * Returns true if constraints are satisfied, false otherwise. - *) - let test_lookup ?cs ~bits value = - (* Generate and verify proof *) - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> - let open Runner.Impl in - (* Set up snarky constant *) - let const = Field.constant @@ Field.Constant.of_int value in - (* Set up snarky variable *) - let value = - exists Field.typ ~compute:(fun () -> Field.Constant.of_int value) - in - (* Use the lookup gadget *) - less_than_bits ~bits value ; - less_than_bits ~bits const ; - (* Use a dummy range check to load the table *) - Range_check.bits64 Field.zero ; - () ) - in - cs - in - - (* TEST generic mul gadget *) - (* Positive tests *) - let cs12 = test_lookup ~bits:12 4095 in - let cs8 = test_lookup ~bits:8 255 in - let cs1 = test_lookup ~bits:1 0 in - let _cs = test_lookup ~cs:cs1 ~bits:1 1 in - (* Negatve tests *) - assert (Common.is_error (fun () -> test_lookup ~cs:cs12 ~bits:12 4096)) ; - assert (Common.is_error (fun () -> test_lookup ~cs:cs12 ~bits:12 (-1))) ; - assert (Common.is_error (fun () -> test_lookup ~cs:cs8 ~bits:8 256)) ; - assert (Common.is_error (fun () -> test_lookup ~cs:cs1 ~bits:1 2)) ; - () ) ; - - () diff --git a/src/lib/crypto/kimchi_backend/gadgets/lookup.mli b/src/lib/crypto/kimchi_backend/gadgets/lookup.mli index 712da6c254b7..77b035c3adcb 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/lookup.mli +++ b/src/lib/crypto/kimchi_backend/gadgets/lookup.mli @@ -1,9 +1,11 @@ -(*TODO: perhaps move this to an internal file, as the dummy gate could be misleading for users *) +(* TODO: perhaps move this to an internal file, as the dummy gate could be + misleading for users *) module Circuit := Kimchi_pasta_snarky_backend.Step_impl -(** Looks up three values (at most 12 bits each) - * BEWARE: it needs in the circuit at least one gate (even if dummy) that uses the 12-bit lookup table for it to work - *) +(** Looks up three values (at most 12 bits each). + + BEWARE: it needs in the circuit at least one gate (even if dummy) that uses + the 12-bit lookup table for it to work. *) val three_12bit : Circuit.Field.t (* v0 *) -> Circuit.Field.t (* v1 *) @@ -11,6 +13,7 @@ val three_12bit : -> unit (** Check that one value is at most X bits (at most 12). Default is 12. - * BEWARE: it needs in the circuit at least one gate (even if dummy) that uses the 12-bit lookup table for it to work - *) + + BEWARE: it needs in the circuit at least one gate (even if dummy) that uses + the 12-bit lookup table for it to work. *) val less_than_bits : ?bits:int (* bits *) -> Circuit.Field.t (* value *) -> unit diff --git a/src/lib/crypto/kimchi_backend/gadgets/range_check.ml b/src/lib/crypto/kimchi_backend/gadgets/range_check.ml index 654eb39896c5..6ff44afbabb8 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/range_check.ml +++ b/src/lib/crypto/kimchi_backend/gadgets/range_check.ml @@ -1,15 +1,14 @@ -open Core_kernel - open Kimchi_backend_common.Plonk_constraint_system.Plonk_constraint module Circuit = Kimchi_pasta_snarky_backend.Step_impl -let tests_enabled = true +(** Helper to create RangeCheck0 gate, configured in various ways. -(* Helper to create RangeCheck0 gate, configured in various ways - * - is_64bit : create 64-bit range check - * - is_compact : compact limbs mode (only used by compact multi-range-check) - *) + @param label label for the gate + @param is_compact compact limbs mode (only used by compact multi-range-check) + @param v0 value to range-check + @param v0p0 bits 76-88 of v0 + @param v0p1 bits 64-76 of v0 *) let range_check0 ~(label : string) ?(is_compact : bool = false) (v0 : Circuit.Field.t) (v0p0 : Circuit.Field.t) (v0p1 : Circuit.Field.t) = let open Circuit in @@ -67,7 +66,7 @@ let range_check0 ~(label : string) ?(is_compact : bool = false) compact } ) ) -(* Helper to create RangeCheck1 gate *) +(** Helper to create RangeCheck1 gate. *) let range_check1 ~(label : string) (v0p0 : Circuit.Field.t) (v0p1 : Circuit.Field.t) (v1p0 : Circuit.Field.t) (v1p1 : Circuit.Field.t) (v2 : Circuit.Field.t) (v12 : Circuit.Field.t) = @@ -139,12 +138,12 @@ let range_check1 ~(label : string) (v0p0 : Circuit.Field.t) ; v2c19 } ) ) -(* 64-bit range-check gadget - checks v0 \in [0, 2^64) *) +(** 64-bit range-check gadget - checks v0 is in [0, 2^64). *) let bits64 (v0 : Circuit.Field.t) = range_check0 ~label:"range_check64" ~is_compact:false v0 Circuit.Field.zero Circuit.Field.zero -(* multi-range-check gadget - checks v0,v1,v2 \in [0, 2^88) *) +(** Multi-range-check gadget - checks v0, v1, v2 are in [0, 2^88). *) let multi (v0 : Circuit.Field.t) (v1 : Circuit.Field.t) (v2 : Circuit.Field.t) = let open Circuit in let of_bits = Common.as_prover_cvar_field_bits_le_to_cvar_field in @@ -157,10 +156,9 @@ let multi (v0 : Circuit.Field.t) (v1 : Circuit.Field.t) (v2 : Circuit.Field.t) = let zero = exists Field.typ ~compute:(fun () -> Field.Constant.zero) in range_check1 ~label:"multi_range_check" v0p0 v0p1 v1p0 v1p1 v2 zero -(* compact multi-range-check gadget - checks - * - v0,v1,v2 \in [0, 2^88) - * - v01 = v0 + 2^88 * v1 - *) +(** Compact multi-range-check gadget. Checks: + - v0, v1, v2 are in [0, 2^88) + - v01 = v0 + 2^88 * v1 *) let compact_multi (v01 : Circuit.Field.t) (v2 : Circuit.Field.t) = let open Circuit in (* Set up helper *) @@ -185,201 +183,3 @@ let compact_multi (v01 : Circuit.Field.t) (v2 : Circuit.Field.t) = let v0p1 = of_bits v0 64 76 in range_check0 ~label:"compact_multi_range_check" ~is_compact:true v0 v0p0 v0p1 ; range_check1 ~label:"compact_multi_range_check" v2p0 v2p1 v0p0 v0p1 v1 v01 - -(*********) -(* Tests *) -(*********) - -let%test_unit "range_check64 gadget" = - if tests_enabled then ( - let (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner in - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - in - - (* Helper to test range_check64 gadget - * Input: value to be range checked in [0, 2^64) - *) - let test_range_check64 ?cs base10 = - let open Runner.Impl in - let value = Common.field_of_base10 base10 in - - let make_circuit value = - (* Circuit definition *) - let value = exists Field.typ ~compute:(fun () -> value) in - bits64 value ; - (* Padding *) - Boolean.Assert.is_true (Field.equal value value) - in - - (* Generate and verify proof *) - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> make_circuit value) - in - cs - in - - (* Positive tests *) - let cs = test_range_check64 "0" in - let _cs = test_range_check64 ~cs "4294967" in - let _cs = test_range_check64 ~cs "18446744073709551615" in - (* 2^64 - 1 *) - (* Negative tests *) - assert ( - Common.is_error (fun () -> - test_range_check64 ~cs "18446744073709551616" (* 2^64 *) ) ) ; - assert ( - Common.is_error (fun () -> - test_range_check64 ~cs "170141183460469231731687303715884105728" - (* 2^127 *) ) ) ) ; - () - -let%test_unit "multi_range_check gadget" = - if tests_enabled then ( - let (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner in - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - in - - (* Helper to test multi_range_check gadget *) - let test_multi_range_check ?cs v0 v1 v2 = - let open Runner.Impl in - let v0 = Common.field_of_base10 v0 in - let v1 = Common.field_of_base10 v1 in - let v2 = Common.field_of_base10 v2 in - - let make_circuit v0 v1 v2 = - (* Circuit definition *) - let values = - exists (Typ.array ~length:3 Field.typ) ~compute:(fun () -> - [| v0; v1; v2 |] ) - in - multi values.(0) values.(1) values.(2) - in - - (* Generate and verify proof *) - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ?cs (fun () -> make_circuit v0 v1 v2) - in - - cs - in - - (* Positive tests *) - let cs = - test_multi_range_check "0" "4294967" "309485009821345068724781055" - in - let _cs = - test_multi_range_check ~cs "267475740839011166017999907" - "120402749546803056196583080" "1159834292458813579124542" - in - let _cs = - test_multi_range_check ~cs "309485009821345068724781055" - "309485009821345068724781055" "309485009821345068724781055" - in - let _cs = test_multi_range_check ~cs "0" "0" "0" in - (* Negative tests *) - assert ( - Common.is_error (fun () -> - test_multi_range_check ~cs "0" "4294967" "309485009821345068724781056" ) ) ; - assert ( - Common.is_error (fun () -> - test_multi_range_check ~cs "0" "309485009821345068724781056" - "309485009821345068724781055" ) ) ; - assert ( - Common.is_error (fun () -> - test_multi_range_check ~cs "309485009821345068724781056" "4294967" - "309485009821345068724781055" ) ) ; - assert ( - Common.is_error (fun () -> - test_multi_range_check ~cs - "28948022309329048855892746252171976963317496166410141009864396001978282409984" - "0170141183460469231731687303715884105728" - "170141183460469231731687303715884105728" ) ) ; - assert ( - Common.is_error (fun () -> - test_multi_range_check ~cs "0" "0" - "28948022309329048855892746252171976963317496166410141009864396001978282409984" ) ) ; - assert ( - Common.is_error (fun () -> - test_multi_range_check ~cs "0170141183460469231731687303715884105728" - "0" - "28948022309329048855892746252171976963317496166410141009864396001978282409984" ) ) - ) ; - () - -let%test_unit "compact_multi_range_check gadget" = - if tests_enabled then ( - let (* Import the gadget test runner *) - open Kimchi_gadgets_test_runner in - (* Initialize the SRS cache. *) - let () = - try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () - in - - (* Helper to test compact_multi_range_check gadget *) - let test_compact_multi_range_check v01 v2 : unit = - let open Runner.Impl in - let v01 = Common.field_of_base10 v01 in - let v2 = Common.field_of_base10 v2 in - - let make_circuit v01 v2 = - (* Circuit definition *) - let v01, v2 = - exists Typ.(Field.typ * Field.typ) ~compute:(fun () -> (v01, v2)) - in - compact_multi v01 v2 - in - - (* Generate and verify first proof *) - let cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof (fun () -> make_circuit v01 v2) - in - - (* Set up another witness *) - let mutate_witness value = - Field.Constant.(if equal zero value then value + one else value - one) - in - let v01 = mutate_witness v01 in - let v2 = mutate_witness v2 in - - (* Generate and verify second proof, reusing constraint system *) - let _cs, _proof_keypair, _proof = - Runner.generate_and_verify_proof ~cs (fun () -> make_circuit v01 v2) - in - - () - in - - (* Positive tests *) - test_compact_multi_range_check "0" "0" ; - test_compact_multi_range_check - "95780971304118053647396689196894323976171195136475135" (* 2^176 - 1 *) - "309485009821345068724781055" - (* 2^88 - 1 *) ; - (* Negative tests *) - assert ( - Common.is_error (fun () -> - test_compact_multi_range_check - "28948022309329048855892746252171976963317496166410141009864396001978282409984" - "0" ) ) ; - assert ( - Common.is_error (fun () -> - test_compact_multi_range_check "0" - "28948022309329048855892746252171976963317496166410141009864396001978282409984" ) ) ; - assert ( - Common.is_error (fun () -> - test_compact_multi_range_check - "95780971304118053647396689196894323976171195136475136" (* 2^176 *) - "309485009821345068724781055" ) (* 2^88 - 1 *) ) ; - assert ( - Common.is_error (fun () -> - test_compact_multi_range_check - "95780971304118053647396689196894323976171195136475135" - (* 2^176 - 1 *) - "309485009821345068724781056" ) (* 2^88 *) ) ) ; - () diff --git a/src/lib/crypto/kimchi_backend/gadgets/range_check.mli b/src/lib/crypto/kimchi_backend/gadgets/range_check.mli index 72c6fd602c76..d759553b0c21 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/range_check.mli +++ b/src/lib/crypto/kimchi_backend/gadgets/range_check.mli @@ -1,17 +1,17 @@ module Circuit := Kimchi_pasta_snarky_backend.Step_impl -(** 64-bit range-check gadget - checks value \in [0, 2^64) *) +(** 64-bit range-check gadget - checks value is in [0, 2^64). *) val bits64 : Circuit.Field.t (* value *) -> unit -(** multi-range-check gadget - checks v0,v1,v2 \in [0, 2^88) *) +(** Multi-range-check gadget - checks v0, v1, v2 are in [0, 2^88). *) val multi : Circuit.Field.t (* v0 *) -> Circuit.Field.t (* v1 *) -> Circuit.Field.t (* v2 *) -> unit -(** compact multi-range-check gadget - checks - * - v0,v1,v2 \in [0, 2^88) - * - v01 = v0 + 2^88 * v1 *) +(** Compact multi-range-check gadget. Checks: + - v0, v1, v2 are in [0, 2^88) + - v01 = v0 + 2^88 * v1 *) val compact_multi : Circuit.Field.t (* v01 *) -> Circuit.Field.t (* v2 *) -> unit diff --git a/src/lib/crypto/kimchi_backend/gadgets/runner/runner.ml b/src/lib/crypto/kimchi_backend/gadgets/runner/runner.ml index 425f6598e8b4..cd8b3fa1102b 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/runner/runner.ml +++ b/src/lib/crypto/kimchi_backend/gadgets/runner/runner.ml @@ -1,5 +1,6 @@ -(* Step circuit Impl *) +(** Step circuit Impl. *) module Tick = Kimchi_backend.Pasta.Vesta_based_plonk + module Impl = Kimchi_pasta_snarky_backend.Step_impl let generate_and_verify_proof ?cs circuit = diff --git a/src/lib/crypto/kimchi_backend/gadgets/runner/example/dune b/src/lib/crypto/kimchi_backend/gadgets/runner/tests/dune similarity index 95% rename from src/lib/crypto/kimchi_backend/gadgets/runner/example/dune rename to src/lib/crypto/kimchi_backend/gadgets/runner/tests/dune index cc37baa9d128..d73e0d781f8c 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/runner/example/dune +++ b/src/lib/crypto/kimchi_backend/gadgets/runner/tests/dune @@ -1,11 +1,12 @@ -(executable - (name example) +(tests + (names test_runner) (instrumentation (backend bisect_ppx)) (preprocess (pps ppx_version ppx_mina ppx_jane ppx_deriving.std ppx_deriving_yojson)) (libraries ;; opam libraries + alcotest stdio integers result diff --git a/src/lib/crypto/kimchi_backend/gadgets/runner/example/example.ml b/src/lib/crypto/kimchi_backend/gadgets/runner/tests/test_runner.ml similarity index 61% rename from src/lib/crypto/kimchi_backend/gadgets/runner/example/example.ml rename to src/lib/crypto/kimchi_backend/gadgets/runner/tests/test_runner.ml index 6fbd886af1b6..87692d363753 100644 --- a/src/lib/crypto/kimchi_backend/gadgets/runner/example/example.ml +++ b/src/lib/crypto/kimchi_backend/gadgets/runner/tests/test_runner.ml @@ -1,3 +1,11 @@ +(** Testing + ------- + Component: Kimchi gadgets test runner + Subject: Testing proof generation and verification with valid/invalid witnesses + Invocation: dune exec \ + src/lib/crypto/kimchi_backend/gadgets/runner/tests/test_runner.exe +*) + open Kimchi_gadgets_test_runner.Runner (* Initialize the SRS cache. Normally Mina does this for us, but we're not @@ -38,15 +46,25 @@ let example ?cs ~valid_witness () = in cs -(* Generate a proof with a valid witness. *) -let _cs = example ~valid_witness:true () +let test_proof_with_valid_witness () = + let _cs = example ~valid_witness:true () in + () + +let test_proof_with_invalid_witness_fails () = + Alcotest.check_raises "Proof with invalid witness should fail" + (Failure "Proof verification failed") (fun () -> + try + let _cs = example ~valid_witness:false () in + () + with _ -> raise (Failure "Proof verification failed") ) -(* Sanity-check: ensure that the proof with an invalid witness fails. *) let () = - let test_failed = - try - let _cs = example ~valid_witness:false () in - false - with _ -> true - in - assert test_failed + let open Alcotest in + run "Kimchi gadgets test runner" + [ ( "Proof generation and verification" + , [ test_case "Proof with valid witness succeeds" `Quick + test_proof_with_valid_witness + ; test_case "Proof with invalid witness fails" `Quick + test_proof_with_invalid_witness_fails + ] ) + ] diff --git a/src/lib/crypto/kimchi_backend/gadgets/tests/dune b/src/lib/crypto/kimchi_backend/gadgets/tests/dune new file mode 100644 index 000000000000..085c9d599422 --- /dev/null +++ b/src/lib/crypto/kimchi_backend/gadgets/tests/dune @@ -0,0 +1,44 @@ +(tests + (names + test_keccak + test_generic + test_bitwise + test_common + test_range_check + test_lookup) + (libraries + ;; opam libraries + alcotest + bignum.bigint + core_kernel + base + digestif + ppx_inline_test.config + zarith + ;; local libraries + kimchi_bindings + kimchi_types + pasta_bindings + kimchi_pasta + kimchi_pasta.basic + kimchi_backend.gadgets_test_runner + kimchi_pasta.constraint_system + bitstring_lib + snarky.intf + snarky.backendless + snarky_group_map + sponge + kimchi_backend + kimchi_backend.gadgets + base58_check + codable + random_oracle_input + snarky_log + group_map + snarky_curve + key_cache + snark_keys_header + tuple_lib + promise + kimchi_backend_common + ppx_version.runtime)) diff --git a/src/lib/crypto/kimchi_backend/gadgets/tests/test_bitwise.ml b/src/lib/crypto/kimchi_backend/gadgets/tests/test_bitwise.ml new file mode 100644 index 000000000000..b1e577f8678a --- /dev/null +++ b/src/lib/crypto/kimchi_backend/gadgets/tests/test_bitwise.ml @@ -0,0 +1,346 @@ +(** Testing + ------- + Component: Kimchi gadgets - Bitwise + Subject: Testing bitwise gadgets (rot, shift, xor, and, not) + Invocation: dune exec \ + src/lib/crypto/kimchi_backend/gadgets/tests/test_bitwise.exe *) + +open Kimchi_gadgets +open Kimchi_gadgets_test_runner + +let () = + try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () + +(** Test ROT64 gadget. Returns constraint system if satisfied. *) +let test_rot ?cs word length mode result = + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> + let open Runner.Impl in + let word = + exists Field.typ ~compute:(fun () -> Field.Constant.of_string word) + in + let result = + exists Field.typ ~compute:(fun () -> Field.Constant.of_string result) + in + let output_rot = Bitwise.rot64 word length mode in + Field.Assert.equal output_rot result ) + in + cs + +(** Test LSL and LSR gadgets. Returns constraint system if satisfied. *) +let test_shift ?cs word length mode result = + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> + let open Runner.Impl in + let word = + exists Field.typ ~compute:(fun () -> Field.Constant.of_string word) + in + let result = + exists Field.typ ~compute:(fun () -> Field.Constant.of_string result) + in + let output_shift = + match mode with + | Bitwise.Left -> + Bitwise.lsl64 word length + | Bitwise.Right -> + Bitwise.lsr64 word length + in + Field.Assert.equal output_shift result ) + in + cs + +(** Test XOR gadget. Returns constraint system if satisfied. *) +let test_xor ?cs left_input right_input output_xor length = + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> + let open Runner.Impl in + let left_input = + exists Field.typ ~compute:(fun () -> Common.field_of_hex left_input) + in + let right_input = + exists Field.typ ~compute:(fun () -> Common.field_of_hex right_input) + in + let output_xor = + exists Field.typ ~compute:(fun () -> Common.field_of_hex output_xor) + in + let result = Bitwise.bxor left_input right_input length in + Field.Assert.equal output_xor result ) + in + cs + +(** Test AND gadget. Returns constraint system if satisfied. *) +let test_and ?cs left_input right_input output_and length = + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> + let open Runner.Impl in + let left_input = + exists Field.typ ~compute:(fun () -> Common.field_of_hex left_input) + in + let right_input = + exists Field.typ ~compute:(fun () -> Common.field_of_hex right_input) + in + let output_and = + exists Field.typ ~compute:(fun () -> Common.field_of_hex output_and) + in + let result = Bitwise.band left_input right_input length in + Field.Assert.equal output_and result ) + in + cs + +(** Test NOT gadget. Returns constraint system if satisfied. *) +let test_not ?cs input output length = + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> + let open Runner.Impl in + let input = + exists Field.typ ~compute:(fun () -> Common.field_of_hex input) + in + let output = + exists Field.typ ~compute:(fun () -> Common.field_of_hex output) + in + let result_checked = Bitwise.bnot_checked input length in + let result_unchecked = Bitwise.bnot_unchecked input length in + Field.Assert.equal output result_checked ; + Field.Assert.equal output result_unchecked ) + in + cs + +(* Rotation tests *) +let test_rot_zero_left () = + let _cs = test_rot "0" 0 Bitwise.Left "0" in + () + +let test_rot_zero_right () = + let _cs = test_rot "0" 32 Bitwise.Right "0" in + () + +let test_rot_one_left () = + let _cs = test_rot "1" 1 Bitwise.Left "2" in + () + +let test_rot_one_left_63 () = + let _cs = test_rot "1" 63 Bitwise.Left "9223372036854775808" in + () + +let test_rot_256_right () = + let cs = test_rot "256" 4 Bitwise.Right "16" in + let _cs = + test_rot ~cs "6510615555426900570" 4 Bitwise.Right "11936128518282651045" + in + let _cs = + test_rot "6510615555426900570" 4 Bitwise.Left "11936128518282651045" + in + () + +let test_rot_reuse () = + let cs = test_rot "1234567890" 32 Bitwise.Right "5302428712241725440" in + let _cs = test_rot ~cs "2651214356120862720" 32 Bitwise.Right "617283945" in + let _cs = test_rot ~cs "1153202983878524928" 32 Bitwise.Right "268500993" in + () + +let test_rot_negative () = + Alcotest.(check bool) + "rot 0 1 Left != 1" true + (Common.is_error (fun () -> test_rot "0" 1 Bitwise.Left "1")) ; + Alcotest.(check bool) + "rot with 64 bits fails" true + (Common.is_error (fun () -> test_rot "1" 64 Bitwise.Left "1")) ; + let cs = test_rot "1234567890" 32 Bitwise.Right "5302428712241725440" in + Alcotest.(check bool) + "wrong cs reuse fails" true + (Common.is_error (fun () -> test_rot ~cs "0" 0 Bitwise.Left "0")) + +(* Shift tests *) +let test_shift_positive () = + let cs1l = test_shift "0" 1 Bitwise.Left "0" in + let cs1r = test_shift "0" 1 Bitwise.Right "0" in + let _cs = test_shift ~cs:cs1l "1" 1 Bitwise.Left "2" in + let _cs = test_shift ~cs:cs1r "1" 1 Bitwise.Right "0" in + let _cs = test_shift "256" 4 Bitwise.Right "16" in + let _cs = test_shift "256" 20 Bitwise.Right "0" in + let _cs = + test_shift "6510615555426900570" 16 Bitwise.Right "99344109427290" + in + let _cs = + test_shift "18446744073709551615" 15 Bitwise.Left "18446744073709518848" + in + let _cs = test_shift "12523523412423524646" 32 Bitwise.Right "2915860016" in + let _cs = + test_shift "12523523412423524646" 32 Bitwise.Left "17134720101237391360" + in + () + +let test_shift_negative () = + let cs_allones = + test_shift "18446744073709551615" 15 Bitwise.Left "18446744073709518848" + in + Alcotest.(check bool) + "shift 0 1 Left != 1" true + (Common.is_error (fun () -> test_shift "0" 1 Bitwise.Left "1")) ; + Alcotest.(check bool) + "shift with 64 bits fails" true + (Common.is_error (fun () -> test_shift "1" 64 Bitwise.Left "1")) ; + Alcotest.(check bool) + "wrong cs reuse fails" true + (Common.is_error (fun () -> + test_shift ~cs:cs_allones "0" 0 Bitwise.Left "0" ) ) + +(* XOR tests *) +let test_xor_positive () = + let cs16 = test_xor "1" "0" "1" 16 in + let _cs = test_xor ~cs:cs16 "0" "1" "1" 16 in + let _cs = test_xor ~cs:cs16 "2" "1" "3" 16 in + let _cs = test_xor ~cs:cs16 "a8ca" "ddd5" "751f" 16 in + let _cs = test_xor ~cs:cs16 "0" "0" "0" 8 in + let _cs = test_xor ~cs:cs16 "0" "0" "0" 1 in + let _cs = test_xor ~cs:cs16 "1" "0" "1" 1 in + let _cs = test_xor ~cs:cs16 "0" "0" "0" 4 in + let _cs = test_xor ~cs:cs16 "1" "1" "0" 4 in + let _cs = test_xor "bb5c6" "edded" "5682b" 20 in + let cs64 = + test_xor "5a5a5a5a5a5a5a5a" "a5a5a5a5a5a5a5a5" "ffffffffffffffff" 64 + in + let _cs = + test_xor ~cs:cs64 "f1f1f1f1f1f1f1f1" "0f0f0f0f0f0f0f0f" "fefefefefefefefe" + 64 + in + let _cs = + test_xor ~cs:cs64 "cad1f05900fcad2f" "deadbeef010301db" "147c4eb601ffacf4" + 64 + in + () + +let test_xor_negative () = + let cs32 = test_xor "bb5c6" "edded" "5682b" 20 in + let cs16 = test_xor "1" "0" "1" 16 in + Alcotest.(check bool) + "wrong witness fails" true + (Common.is_error (fun () -> test_xor ~cs:cs32 "ed1ed1" "ed1ed1" "010101" 20)) ; + Alcotest.(check bool) + "wrong cs fails" true + (Common.is_error (fun () -> test_xor ~cs:cs32 "1" "1" "0" 16)) ; + Alcotest.(check bool) + "length 0 fails" true + (Common.is_error (fun () -> test_xor ~cs:cs16 "1" "0" "1" 0)) ; + Alcotest.(check bool) + "wrong result fails" true + (Common.is_error (fun () -> test_xor ~cs:cs16 "1" "0" "0" 1)) ; + Alcotest.(check bool) + "length 256 fails" true + (Common.is_error (fun () -> test_xor "0" "0" "0" 256)) ; + Alcotest.(check bool) + "negative length fails" true + (Common.is_error (fun () -> test_xor "0" "0" "0" (-4))) ; + Alcotest.(check bool) + "wrong xor result fails" true + (Common.is_error (fun () -> test_xor ~cs:cs32 "bb5c6" "edded" "ed1ed1" 20)) + +(* AND tests *) +let test_and_positive () = + let cs = test_and "0" "0" "0" 16 in + let _cs = test_and ~cs "457" "8ae" "6" 16 in + let _cs = test_and ~cs "a8ca" "ddd5" "88c0" 16 in + let _cs = test_and "0" "0" "0" 8 in + let cs = test_and "1" "1" "1" 1 in + let _cs = test_and ~cs "1" "0" "0" 1 in + let _cs = test_and ~cs "0" "1" "0" 1 in + let _cs = test_and ~cs "0" "0" "0" 1 in + let _cs = test_and "f" "f" "f" 4 in + let _cs = test_and "bb5c6" "edded" "a95c4" 20 in + let cs = test_and "5a5a5a5a5a5a5a5a" "a5a5a5a5a5a5a5a5" "0" 64 in + let _cs = + test_and ~cs "385e243cb60654fd" "010fde9342c0d700" "e041002005400" 64 + in + () + +let test_and_negative () = + let cs = test_and "385e243cb60654fd" "010fde9342c0d700" "e041002005400" 64 in + Alcotest.(check bool) + "wrong witness fails" true + (Common.is_error (fun () -> test_and ~cs "1" "1" "0" 20)) ; + Alcotest.(check bool) + "wrong cs fails" true + (Common.is_error (fun () -> test_and ~cs "1" "1" "1" 1)) ; + Alcotest.(check bool) + "wrong and result fails" true + (Common.is_error (fun () -> test_and "1" "1" "0" 1)) ; + Alcotest.(check bool) + "length 7 with ff fails" true + (Common.is_error (fun () -> test_and "ff" "ff" "ff" 7)) ; + Alcotest.(check bool) + "negative length fails" true + (Common.is_error (fun () -> test_and "1" "1" "1" (-1))) + +(* NOT tests *) +let test_not_positive () = + let _cs = test_not "0" "1" 1 in + let _cs = test_not "0" "f" 4 in + let _cs = test_not "0" "ff" 8 in + let _cs = test_not "0" "7ff" 11 in + let cs16 = test_not "0" "ffff" 16 in + let _cs = test_not ~cs:cs16 "a8ca" "5735" 16 in + let _cs = test_not "bb5c6" "44a39" 20 in + let cs64 = test_not "a5a5a5a5a5a5a5a5" "5a5a5a5a5a5a5a5a" 64 in + let _cs = test_not ~cs:cs64 "5a5a5a5a5a5a5a5a" "a5a5a5a5a5a5a5a5" 64 in + let _cs = test_not ~cs:cs64 "7b3f28d7496d75f0" "84c0d728b6928a0f" 64 in + let _cs = test_not ~cs:cs64 "ffffffffffffffff" "0" 64 in + let _cs = test_not ~cs:cs64 "00000fffffffffff" "fffff00000000000" 64 in + let _cs = test_not ~cs:cs64 "fffffffffffff000" "fff" 64 in + let _cs = test_not ~cs:cs64 "0" "ffffffffffffffff" 64 in + let _cs = + test_not "3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + "0" 254 + in + () + +let test_not_negative () = + let cs64 = test_not "a5a5a5a5a5a5a5a5" "5a5a5a5a5a5a5a5a" 64 in + let cs16 = test_not "0" "ffff" 16 in + Alcotest.(check bool) + "wrong witness fails" true + (Common.is_error (fun () -> test_not ~cs:cs64 "0" "ff" 64)) ; + Alcotest.(check bool) + "wrong cs fails" true + (Common.is_error (fun () -> test_not ~cs:cs16 "1" "0" 1)) ; + Alcotest.(check bool) + "wrong not result fails" true + (Common.is_error (fun () -> test_not "0" "0" 1)) ; + Alcotest.(check bool) + "length 4 with ff fails" true + (Common.is_error (fun () -> test_not "ff" "0" 4)) ; + Alcotest.(check bool) + "length 255 fails" true + (Common.is_error (fun () -> + test_not + "7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + "0" 255 ) ) + +let () = + let open Alcotest in + run "Bitwise gadgets" + [ ( "Rotation gadget" + , [ test_case "rot zero left" `Quick test_rot_zero_left + ; test_case "rot zero right" `Quick test_rot_zero_right + ; test_case "rot one left" `Quick test_rot_one_left + ; test_case "rot one left 63" `Quick test_rot_one_left_63 + ; test_case "rot 256 right" `Quick test_rot_256_right + ; test_case "rot reuse constraint system" `Quick test_rot_reuse + ; test_case "rot negative tests" `Quick test_rot_negative + ] ) + ; ( "Shift gadget" + , [ test_case "shift positive tests" `Quick test_shift_positive + ; test_case "shift negative tests" `Quick test_shift_negative + ] ) + ; ( "XOR gadget" + , [ test_case "xor positive tests" `Quick test_xor_positive + ; test_case "xor negative tests" `Quick test_xor_negative + ] ) + ; ( "AND gadget" + , [ test_case "and positive tests" `Quick test_and_positive + ; test_case "and negative tests" `Quick test_and_negative + ] ) + ; ( "NOT gadget" + , [ test_case "not positive tests" `Quick test_not_positive + ; test_case "not negative tests" `Quick test_not_negative + ] ) + ] diff --git a/src/lib/crypto/kimchi_backend/gadgets/tests/test_common.ml b/src/lib/crypto/kimchi_backend/gadgets/tests/test_common.ml new file mode 100644 index 000000000000..070eb52ca3ca --- /dev/null +++ b/src/lib/crypto/kimchi_backend/gadgets/tests/test_common.ml @@ -0,0 +1,88 @@ +(** Testing + ------- + Component: Kimchi gadgets - Common + Subject: Testing common helper functions + Invocation: dune exec \ + src/lib/crypto/kimchi_backend/gadgets/tests/test_common.exe *) + +open Kimchi_gadgets +open Kimchi_gadgets_test_runner + +let () = + try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () + +let test_field_bits_le_to_field () = + let _cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof (fun () -> + let open Runner.Impl in + let of_bits = Common.as_prover_cvar_field_bits_le_to_cvar_field in + let of_base10 = Common.as_prover_cvar_field_of_base10 in + + (* Test value *) + let field_element = + of_base10 + "25138500177533925254565157548260087092526215225485178888176592492127995051965" + in + + (* Test extracting all bits as field element *) + Field.Assert.equal (of_bits field_element 0 (-1)) field_element ; + + (* Test extracting 1st bit as field element *) + Field.Assert.equal (of_bits field_element 0 1) (of_base10 "1") ; + + (* Test extracting last bit as field element *) + Field.Assert.equal (of_bits field_element 254 255) (of_base10 "0") ; + + (* Test extracting first 12 bits as field element *) + Field.Assert.equal (of_bits field_element 0 12) (of_base10 "4029") ; + + (* Test extracting third 16 bits as field element *) + Field.Assert.equal (of_bits field_element 32 48) (of_base10 "15384") ; + + (* Test extracting 1st 4 bits as field element *) + Field.Assert.equal (of_bits field_element 0 4) (of_base10 "13") ; + + (* Test extracting 5th 4 bits as field element *) + Field.Assert.equal (of_bits field_element 20 24) (of_base10 "1") ; + + (* Test extracting first 88 bits as field element *) + Field.Assert.equal + (of_bits field_element 0 88) + (of_base10 "155123280218940970272309181") ; + + (* Test extracting second 88 bits as field element *) + Field.Assert.equal + (of_bits field_element 88 176) + (of_base10 "293068737190883252403551981") ; + + (* Test extracting last crumb as field element *) + Field.Assert.equal (of_bits field_element 254 255) (of_base10 "0") ; + + (* Test extracting 2nd to last crumb as field element *) + Field.Assert.equal (of_bits field_element 252 254) (of_base10 "3") ; + + (* Test extracting 3rd to last crumb as field element *) + Field.Assert.equal (of_bits field_element 250 252) (of_base10 "1") ; + + (* Assert little-endian order *) + Field.Assert.equal + (of_bits (of_base10 "18446744073709551616" (* 2^64 *)) 64 65) + (of_base10 "1") ; + + (* Test invalid range is denied *) + assert (Common.is_error (fun () -> of_bits field_element 2 2)) ; + assert (Common.is_error (fun () -> of_bits field_element 2 1)) ; + + (* Padding *) + Boolean.Assert.is_true (Field.equal field_element field_element) ) + in + () + +let () = + let open Alcotest in + run "Common helpers" + [ ( "field_bits_le_to_field" + , [ test_case "extract bits from field element" `Quick + test_field_bits_le_to_field + ] ) + ] diff --git a/src/lib/crypto/kimchi_backend/gadgets/tests/test_generic.ml b/src/lib/crypto/kimchi_backend/gadgets/tests/test_generic.ml new file mode 100644 index 000000000000..29aacf14e61f --- /dev/null +++ b/src/lib/crypto/kimchi_backend/gadgets/tests/test_generic.ml @@ -0,0 +1,187 @@ +(** Testing + ------- + Component: Kimchi gadgets - Generic + Subject: Testing generic gate gadgets (add, sub, mul) + Invocation: dune exec \ + src/lib/crypto/kimchi_backend/gadgets/tests/test_generic.exe *) + +open Kimchi_gadgets +open Kimchi_gadgets_test_runner + +let () = + try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () + +(** Test generic add gate gadget. + Inputs: left_input + right_input = sum. + Returns constraint system if satisfied, raises otherwise. *) +let test_generic_add ?cs left_input right_input sum = + (* Generate and verify proof *) + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> + let open Runner.Impl in + (* Set up snarky variables for inputs and outputs *) + let left_input = + exists Field.typ ~compute:(fun () -> Field.Constant.of_int left_input) + in + let right_input = + exists Field.typ ~compute:(fun () -> + Field.Constant.of_int right_input ) + in + let sum = + exists Field.typ ~compute:(fun () -> Field.Constant.of_int sum) + in + (* Use the generic add gate gadget *) + let result = Generic.add left_input right_input in + Field.Assert.equal sum result ; + (* Pad with a "dummy" constraint b/c Kimchi requires at least 2 *) + Boolean.Assert.is_true (Field.equal sum sum) ) + in + cs + +(** Test generic sub gate gadget. + Inputs: left_input - right_input = difference. + Returns constraint system if satisfied, raises otherwise. *) +let test_generic_sub ?cs left_input right_input difference = + (* Generate and verify proof *) + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> + let open Runner.Impl in + (* Set up snarky variables for inputs and outputs *) + let left_input = + exists Field.typ ~compute:(fun () -> Field.Constant.of_int left_input) + in + let right_input = + exists Field.typ ~compute:(fun () -> + Field.Constant.of_int right_input ) + in + let difference = + exists Field.typ ~compute:(fun () -> Field.Constant.of_int difference) + in + (* Use the generic sub gate gadget *) + let result = Generic.sub left_input right_input in + Field.Assert.equal difference result ; + (* Pad with a "dummy" constraint b/c Kimchi requires at least 2 *) + Boolean.Assert.is_true (Field.equal difference difference) ) + in + cs + +(** Test generic multiplication gate gadget. + Inputs: left_input * right_input = prod. + Returns constraint system if satisfied, raises otherwise. *) +let test_generic_mul ?cs left_input right_input prod = + (* Generate and verify proof *) + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> + let open Runner.Impl in + (* Set up snarky variables for inputs and outputs *) + let left_input = + exists Field.typ ~compute:(fun () -> Field.Constant.of_int left_input) + in + let right_input = + exists Field.typ ~compute:(fun () -> + Field.Constant.of_int right_input ) + in + let prod = + exists Field.typ ~compute:(fun () -> Field.Constant.of_int prod) + in + (* Use the generic mul gate gadget *) + let result = Generic.mul left_input right_input in + Field.Assert.equal prod result ; + (* Pad with a "dummy" constraint b/c Kimchi requires at least 2 *) + Boolean.Assert.is_true (Field.equal prod prod) ) + in + cs + +(* TEST generic add gadget *) +let test_add_zero_plus_zero () = + let _cs = test_generic_add 0 0 0 in + () + +let test_add_one_plus_two () = + let cs = test_generic_add 0 0 0 in + let _cs = test_generic_add ~cs 1 2 3 in + () + +let test_add_negative_wrong_result () = + let cs = test_generic_add 0 0 0 in + Alcotest.(check bool) + "1 + 0 = 0 should fail" true + (Common.is_error (fun () -> test_generic_add ~cs 1 0 0)) + +let test_add_negative_wrong_sum () = + let cs = test_generic_add 0 0 0 in + Alcotest.(check bool) + "2 + 4 = 7 should fail" true + (Common.is_error (fun () -> test_generic_add ~cs 2 4 7)) + +(* TEST generic sub gadget *) +let test_sub_zero_minus_zero () = + let _cs = test_generic_sub 0 0 0 in + () + +let test_sub_two_minus_one () = + let cs = test_generic_sub 0 0 0 in + let _cs = test_generic_sub ~cs 2 1 1 in + () + +let test_sub_negative_wrong_result () = + let cs = test_generic_sub 0 0 0 in + Alcotest.(check bool) + "4 - 2 = 1 should fail" true + (Common.is_error (fun () -> test_generic_sub ~cs 4 2 1)) + +let test_sub_negative_wrong_difference () = + let cs = test_generic_sub 0 0 0 in + Alcotest.(check bool) + "13 - 4 = 10 should fail" true + (Common.is_error (fun () -> test_generic_sub ~cs 13 4 10)) + +(* TEST generic mul gadget *) +let test_mul_zero_times_zero () = + let _cs = test_generic_mul 0 0 0 in + () + +let test_mul_one_times_two () = + let cs = test_generic_mul 0 0 0 in + let _cs = test_generic_mul ~cs 1 2 2 in + () + +let test_mul_negative_wrong_result () = + let cs = test_generic_mul 0 0 0 in + Alcotest.(check bool) + "1 * 0 = 1 should fail" true + (Common.is_error (fun () -> test_generic_mul ~cs 1 0 1)) + +let test_mul_negative_wrong_product () = + let cs = test_generic_mul 0 0 0 in + Alcotest.(check bool) + "2 * 4 = 7 should fail" true + (Common.is_error (fun () -> test_generic_mul ~cs 2 4 7)) + +let () = + let open Alcotest in + run "Generic gadgets" + [ ( "Add gadget" + , [ test_case "0 + 0 = 0" `Quick test_add_zero_plus_zero + ; test_case "1 + 2 = 3" `Quick test_add_one_plus_two + ; test_case "1 + 0 != 0 (negative)" `Quick + test_add_negative_wrong_result + ; test_case "2 + 4 != 7 (negative)" `Quick test_add_negative_wrong_sum + ] ) + ; ( "Sub gadget" + , [ test_case "0 - 0 = 0" `Quick test_sub_zero_minus_zero + ; test_case "2 - 1 = 1" `Quick test_sub_two_minus_one + ; test_case "4 - 2 != 1 (negative)" `Quick + test_sub_negative_wrong_result + ; test_case "13 - 4 != 10 (negative)" `Quick + test_sub_negative_wrong_difference + ] ) + ; ( "Mul gadget" + , [ test_case "0 * 0 = 0" `Quick test_mul_zero_times_zero + ; test_case "1 * 2 = 2" `Quick test_mul_one_times_two + ; test_case "1 * 0 != 1 (negative)" `Quick + test_mul_negative_wrong_result + ; test_case "2 * 4 != 7 (negative)" `Quick + test_mul_negative_wrong_product + ] ) + ] diff --git a/src/lib/crypto/kimchi_backend/gadgets/tests/test_keccak.ml b/src/lib/crypto/kimchi_backend/gadgets/tests/test_keccak.ml new file mode 100644 index 000000000000..054fa815ea55 --- /dev/null +++ b/src/lib/crypto/kimchi_backend/gadgets/tests/test_keccak.ml @@ -0,0 +1,226 @@ +(** Testing + ------- + Component: Kimchi gadgets - Keccak + Subject: Testing Keccak hash function gadget + Invocation: dune exec \ + src/lib/crypto/kimchi_backend/gadgets/tests/test_keccak.exe *) + +open Core_kernel +open Kimchi_gadgets +open Kimchi_gadgets_test_runner + +let () = + try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () + +let test_keccak ?cs ?inp_endian ?out_endian ~nist ~len message expected = + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> + let open Runner.Impl in + assert (String.length message % 2 = 0) ; + let message = + Array.to_list + @@ exists + (Typ.array ~length:(String.length message / 2) Field.typ) + ~compute:(fun () -> + Array.of_list @@ Common.field_bytes_of_hex message ) + in + let hashed = + Array.of_list + @@ + match nist with + | true -> + Keccak.nist_sha3 len message ?inp_endian ?out_endian + ~byte_checks:true + | false -> + Keccak.pre_nist len message ?inp_endian ?out_endian + ~byte_checks:true + in + + let expected = Array.of_list @@ Common.field_bytes_of_hex expected in + (* Check expected hash output *) + as_prover (fun () -> + for i = 0 to Array.length hashed - 1 do + let byte_hash = + Common.cvar_field_to_bignum_bigint_as_prover hashed.(i) + in + let byte_exp = Common.field_to_bignum_bigint expected.(i) in + assert (Common.Bignum_bigint.(byte_hash = byte_exp)) + done ; + () ) ; + () ) + in + Some cs + +(* Positive tests *) +let cs_eth256_1byte = + lazy + (test_keccak ~nist:false ~len:256 "30" + "044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d" ) + +let cs_nist512_1byte = + lazy + (test_keccak ~nist:true ~len:512 "30" + "2d44da53f305ab94b6365837b9803627ab098c41a6013694f9b468bccb9c13e95b3900365eb58924de7158a54467e984efcfdabdbcc9af9a940d49c51455b04c" ) + +let cs135 = + lazy + (test_keccak ~nist:false ~len:256 + "391ccf9b5de23bb86ec6b2b142adb6e9ba6bee8519e7502fb8be8959fbd2672934cc3e13b7b45bf2b8a5cb48881790a7438b4a326a0c762e31280711e6b64fcc2e3e4e631e501d398861172ea98603618b8f23b91d0208b0b992dfe7fdb298b6465adafbd45e4f88ee9dc94e06bc4232be91587f78572c169d4de4d8b95b714ea62f1fbf3c67a4" + "7d5655391ede9ca2945f32ad9696f464be8004389151ce444c89f688278f2e1d" ) + +let cs136 = + lazy + (test_keccak ~nist:false ~len:256 + "ff391ccf9b5de23bb86ec6b2b142adb6e9ba6bee8519e7502fb8be8959fbd2672934cc3e13b7b45bf2b8a5cb48881790a7438b4a326a0c762e31280711e6b64fcc2e3e4e631e501d398861172ea98603618b8f23b91d0208b0b992dfe7fdb298b6465adafbd45e4f88ee9dc94e06bc4232be91587f78572c169d4de4d8b95b714ea62f1fbf3c67a4" + "37694fd4ba137be747eb25a85b259af5563e0a7a3010d42bd15963ac631b9d3f" ) + +let cs2 = + lazy + (test_keccak ~nist:false ~len:256 "a2c0" + "9856642c690c036527b8274db1b6f58c0429a88d9f3b9298597645991f4f58f0" ) + +let test_eth256_1byte () = Lazy.force cs_eth256_1byte |> fun _ -> () + +let test_nist512_1byte () = Lazy.force cs_nist512_1byte |> fun _ -> () + +let test_nft_ownership () = + let _cs = + test_keccak ~nist:false ~len:256 + "4920616d20746865206f776e6572206f6620746865204e465420776974682069642058206f6e2074686520457468657265756d20636861696e" + "63858e0487687c3eeb30796a3e9307680e1b81b860b01c88ff74545c2c314e36" + in + let _cs = + test_keccak ~nist:false ~len:512 + "4920616d20746865206f776e6572206f6620746865204e465420776974682069642058206f6e2074686520457468657265756d20636861696e" + "848cf716c2d64444d2049f215326b44c25a007127d2871c1b6004a9c3d102f637f31acb4501e59f3a0160066c8814816f4dc58a869f37f740e09b9a8757fa259" + in + () + +let test_two_blocks () = + (* For Keccak *) + let _cs = + test_keccak ~nist:false ~len:256 + "044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116df9e2eaaa42d9fe9e558a9b8ef1bf366f190aacaa83bad2641ee106e9041096e42d44da53f305ab94b6365837b9803627ab098c41a6013694f9b468bccb9c13e95b3900365eb58924de7158a54467e984efcfdabdbcc9af9a940d49c51455b04c63858e0487687c3eeb30796a3e9307680e1b81b860b01c88ff74545c2c314e36" + "560deb1d387f72dba729f0bd0231ad45998dda4b53951645322cf95c7b6261d9" + in + (* For NIST *) + let _cs = + test_keccak ~nist:true ~len:256 + "044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116df9e2eaaa42d9fe9e558a9b8ef1bf366f190aacaa83bad2641ee106e9041096e42d44da53f305ab94b6365837b9803627ab098c41a6013694f9b468bccb9c13e95b3900365eb58924de7158a54467e984efcfdabdbcc9af9a940d49c51455b04c63858e0487687c3eeb30796a3e9307680e1b81b860b01c88ff74545c2c314e36" + "1784354c4bbfa5f54e5db23041089e65a807a7b970e3cfdba95e2fbe63b1c0e4" + in + () + +let test_135_bits_single_padded_byte () = Lazy.force cs135 |> fun _ -> () + +let test_136_bits_two_blocks () = Lazy.force cs136 |> fun _ -> () + +let test_135_bits_input_looks_padded () = + test_keccak ?cs:(Lazy.force cs135) ~nist:false ~len:256 + "800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + "0edbbae289596c7da9fafe65931c5dce3439fb487b8286d6c1970e44eea39feb" + |> fun _ -> () + +let test_136_bits_input_looks_padded () = + test_keccak ?cs:(Lazy.force cs136) ~nist:false ~len:256 + "80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + "bbf1f49a2cc5678aa62196d0c3108d89425b81780e1e90bcec03b4fb5f834714" + |> fun _ -> () + +let test_reuse_eth256_1byte () = + test_keccak + ?cs:(Lazy.force cs_eth256_1byte) + ~nist:false ~len:256 "00" + "bc36789e7a1e281436464229828f817d6612f7b477d66591ff96a9e064bcc98a" + |> fun _ -> () + +let test_reuse () = + let _cs = + test_keccak ?cs:(Lazy.force cs2) ~nist:false ~len:256 "0a2c" + "295b48ad49eff61c3abfd399c672232434d89a4ef3ca763b9dbebb60dbb32a8b" + in + () + +let test_endianness () = + test_keccak ~nist:false ~len:256 ~inp_endian:Little ~out_endian:Little "2c0a" + "8b2ab3db60bbbe9d3b76caf34e9ad834242372c699d3bf3a1cf6ef49ad485b29" + |> fun _ -> () + +(* Negative tests *) +let test_bad_hex_input () = + Alcotest.(check bool) + "bad hex input should fail" true + (Common.is_error (fun () -> + test_keccak ~nist:false ~len:256 "a2c" + "07f02d241eeba9c909a1be75e08d9e8ac3e61d9e24fa452a6785083e1527c467" ) + ) + +let test_bad_hex_input_2 () = + Alcotest.(check bool) + "bad hex input 2 should fail" true + (Common.is_error (fun () -> + test_keccak ~nist:true ~len:256 "0" + "f39f4526920bb4c096e5722d64161ea0eb6dbd0b4ff0d812f31d56fb96142084" ) + ) + +let test_inconsistent_output_length_reuse () = + Alcotest.(check bool) + "inconsistent output length reuse should fail" true + (Common.is_error (fun () -> + test_keccak + ?cs:(Lazy.force cs_nist512_1byte) + ~nist:true ~len:256 "30" + "f9e2eaaa42d9fe9e558a9b8ef1bf366f190aacaa83bad2641ee106e9041096e4" ) + ) + +let test_inconsistent_padding_reuse () = + Alcotest.(check bool) + "inconsistent padding reuse should fail" true + (Common.is_error (fun () -> + test_keccak + ?cs:(Lazy.force cs_eth256_1byte) + ~nist:true ~len:256 + "4920616d20746865206f776e6572206f6620746865204e465420776974682069642058206f6e2074686520457468657265756d20636861696e" + "63858e0487687c3eeb30796a3e9307680e1b81b860b01c88ff74545c2c314e36" ) + ) + +let test_inconsistent_endianness_reuse () = + Alcotest.(check bool) + "inconsistent endianness reuse should fail" true + (Common.is_error (fun () -> + test_keccak ?cs:(Lazy.force cs2) ~nist:false ~len:256 + ~inp_endian:Little ~out_endian:Little "2c0a" + "8b2ab3db60bbbe9d3b76caf34e9ad834242372c699d3bf3a1cf6ef49ad485b29" ) + ) + +let () = + let open Alcotest in + run "Keccak gadget" + [ ( "Positive tests" + , [ test_case "eth256_1byte" `Quick test_eth256_1byte + ; test_case "nist512_1byte" `Quick test_nist512_1byte + ; test_case "NFT ownership message" `Quick test_nft_ownership + ; test_case "Two blocks" `Quick test_two_blocks + ; test_case "135 bits, single padded byte as 0x81" `Quick + test_135_bits_single_padded_byte + ; test_case "136 bits, 2 blocks and second is just padding" `Quick + test_136_bits_two_blocks + ; test_case "135 bits, input already looks padded" `Quick + test_135_bits_input_looks_padded + ; test_case "136 bits, input already looks padded" `Quick + test_136_bits_input_looks_padded + ; test_case "reuse eth256_1byte" `Quick test_reuse_eth256_1byte + ; test_case "reuse constraint system" `Quick test_reuse + ; test_case "endianness" `Quick test_endianness + ] ) + ; ( "Negative tests" + , [ test_case "bad hex input" `Quick test_bad_hex_input + ; test_case "bad hex input 2" `Quick test_bad_hex_input_2 + ; test_case "inconsistent output length reuse" `Quick + test_inconsistent_output_length_reuse + ; test_case "inconsistent padding reuse" `Quick + test_inconsistent_padding_reuse + ; test_case "inconsistent endianness reuse" `Quick + test_inconsistent_endianness_reuse + ] ) + ] diff --git a/src/lib/crypto/kimchi_backend/gadgets/tests/test_lookup.ml b/src/lib/crypto/kimchi_backend/gadgets/tests/test_lookup.ml new file mode 100644 index 000000000000..3f45da919e04 --- /dev/null +++ b/src/lib/crypto/kimchi_backend/gadgets/tests/test_lookup.ml @@ -0,0 +1,62 @@ +(** Testing + ------- + Component: Kimchi gadgets - Lookup + Subject: Testing lookup gadgets + Invocation: dune exec \ + src/lib/crypto/kimchi_backend/gadgets/tests/test_lookup.exe *) + +open Kimchi_gadgets +open Kimchi_gadgets_test_runner + +let () = + try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () + +(** Test lookup less_than_bits gadget for both variables and constants. *) +let test_lookup ?cs ~bits value = + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> + let open Runner.Impl in + let const = Field.constant @@ Field.Constant.of_int value in + let value = + exists Field.typ ~compute:(fun () -> Field.Constant.of_int value) + in + Lookup.less_than_bits ~bits value ; + Lookup.less_than_bits ~bits const ; + (* Use a dummy range check to load the table *) + Range_check.bits64 Field.zero ; + () ) + in + cs + +let test_lookup_positive () = + let cs12 = test_lookup ~bits:12 4095 in + let _cs8 = test_lookup ~bits:8 255 in + let cs1 = test_lookup ~bits:1 0 in + let _cs = test_lookup ~cs:cs1 ~bits:1 1 in + ignore cs12 ; () + +let test_lookup_negative () = + let cs12 = test_lookup ~bits:12 4095 in + let cs8 = test_lookup ~bits:8 255 in + let cs1 = test_lookup ~bits:1 0 in + Alcotest.(check bool) + "4096 with 12 bits should fail" true + (Common.is_error (fun () -> test_lookup ~cs:cs12 ~bits:12 4096)) ; + Alcotest.(check bool) + "-1 with 12 bits should fail" true + (Common.is_error (fun () -> test_lookup ~cs:cs12 ~bits:12 (-1))) ; + Alcotest.(check bool) + "256 with 8 bits should fail" true + (Common.is_error (fun () -> test_lookup ~cs:cs8 ~bits:8 256)) ; + Alcotest.(check bool) + "2 with 1 bit should fail" true + (Common.is_error (fun () -> test_lookup ~cs:cs1 ~bits:1 2)) + +let () = + let open Alcotest in + run "Lookup gadgets" + [ ( "less_than_bits" + , [ test_case "positive tests" `Quick test_lookup_positive + ; test_case "negative tests" `Quick test_lookup_negative + ] ) + ] diff --git a/src/lib/crypto/kimchi_backend/gadgets/tests/test_range_check.ml b/src/lib/crypto/kimchi_backend/gadgets/tests/test_range_check.ml new file mode 100644 index 000000000000..cd141c4c1e65 --- /dev/null +++ b/src/lib/crypto/kimchi_backend/gadgets/tests/test_range_check.ml @@ -0,0 +1,204 @@ +(** Testing + ------- + Component: Kimchi gadgets - Range check + Subject: Testing range check gadgets + Invocation: dune exec \ + src/lib/crypto/kimchi_backend/gadgets/tests/test_range_check.exe *) + +open Kimchi_gadgets +open Kimchi_gadgets_test_runner + +let () = + try Kimchi_pasta.Vesta_based_plonk.Keypair.set_urs_info [] with _ -> () + +(** Test range_check64 gadget. Returns constraint system if satisfied. *) +let test_range_check64 ?cs base10 = + let open Runner.Impl in + let value = Common.field_of_base10 base10 in + + let make_circuit value = + let value = exists Field.typ ~compute:(fun () -> value) in + Range_check.bits64 value ; + Boolean.Assert.is_true (Field.equal value value) + in + + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> make_circuit value) + in + cs + +(** Test multi_range_check gadget. Returns constraint system if satisfied. *) +let test_multi_range_check ?cs v0 v1 v2 = + let open Runner.Impl in + let v0 = Common.field_of_base10 v0 in + let v1 = Common.field_of_base10 v1 in + let v2 = Common.field_of_base10 v2 in + + let make_circuit v0 v1 v2 = + let values = + exists (Typ.array ~length:3 Field.typ) ~compute:(fun () -> + [| v0; v1; v2 |] ) + in + Range_check.multi values.(0) values.(1) values.(2) + in + + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ?cs (fun () -> make_circuit v0 v1 v2) + in + cs + +(** Test compact_multi_range_check gadget. *) +let test_compact_multi_range_check v01 v2 : unit = + let open Runner.Impl in + let v01 = Common.field_of_base10 v01 in + let v2 = Common.field_of_base10 v2 in + + let make_circuit v01 v2 = + let v01, v2 = + exists Typ.(Field.typ * Field.typ) ~compute:(fun () -> (v01, v2)) + in + Range_check.compact_multi v01 v2 + in + + let cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof (fun () -> make_circuit v01 v2) + in + + let mutate_witness value = + Field.Constant.(if equal zero value then value + one else value - one) + in + let v01 = mutate_witness v01 in + let v2 = mutate_witness v2 in + + let _cs, _proof_keypair, _proof = + Runner.generate_and_verify_proof ~cs (fun () -> make_circuit v01 v2) + in + () + +(* range_check64 tests *) +let test_range_check64_positive () = + let cs = test_range_check64 "0" in + let _cs = test_range_check64 ~cs "4294967" in + let _cs = test_range_check64 ~cs "18446744073709551615" in + (* 2^64 - 1 *) + () + +let test_range_check64_negative () = + let cs = test_range_check64 "0" in + Alcotest.(check bool) + "2^64 should fail" true + (Common.is_error (fun () -> + test_range_check64 ~cs "18446744073709551616" (* 2^64 *) ) ) ; + Alcotest.(check bool) + "2^127 should fail" true + (Common.is_error (fun () -> + test_range_check64 ~cs "170141183460469231731687303715884105728" + (* 2^127 *) ) ) + +(* multi_range_check tests *) +let test_multi_range_check_positive () = + let cs = test_multi_range_check "0" "4294967" "309485009821345068724781055" in + let _cs = + test_multi_range_check ~cs "267475740839011166017999907" + "120402749546803056196583080" "1159834292458813579124542" + in + let _cs = + test_multi_range_check ~cs "309485009821345068724781055" + "309485009821345068724781055" "309485009821345068724781055" + in + let _cs = test_multi_range_check ~cs "0" "0" "0" in + () + +let test_multi_range_check_negative () = + let cs = test_multi_range_check "0" "4294967" "309485009821345068724781055" in + Alcotest.(check bool) + "v2 out of range should fail" true + (Common.is_error (fun () -> + test_multi_range_check ~cs "0" "4294967" "309485009821345068724781056" ) + ) ; + Alcotest.(check bool) + "v1 out of range should fail" true + (Common.is_error (fun () -> + test_multi_range_check ~cs "0" "309485009821345068724781056" + "309485009821345068724781055" ) ) ; + Alcotest.(check bool) + "v0 out of range should fail" true + (Common.is_error (fun () -> + test_multi_range_check ~cs "309485009821345068724781056" "4294967" + "309485009821345068724781055" ) ) ; + Alcotest.(check bool) + "very large values should fail" true + (Common.is_error (fun () -> + test_multi_range_check ~cs + "28948022309329048855892746252171976963317496166410141009864396001978282409984" + "0170141183460469231731687303715884105728" + "170141183460469231731687303715884105728" ) ) ; + Alcotest.(check bool) + "v2 very large should fail" true + (Common.is_error (fun () -> + test_multi_range_check ~cs "0" "0" + "28948022309329048855892746252171976963317496166410141009864396001978282409984" ) + ) ; + Alcotest.(check bool) + "v0 very large should fail" true + (Common.is_error (fun () -> + test_multi_range_check ~cs "0170141183460469231731687303715884105728" + "0" + "28948022309329048855892746252171976963317496166410141009864396001978282409984" ) + ) + +(* compact_multi_range_check tests *) +let test_compact_multi_range_check_positive () = + test_compact_multi_range_check "0" "0" ; + test_compact_multi_range_check + "95780971304118053647396689196894323976171195136475135" (* 2^176 - 1 *) + "309485009821345068724781055" +(* 2^88 - 1 *) + +let test_compact_multi_range_check_negative () = + Alcotest.(check bool) + "v01 very large should fail" true + (Common.is_error (fun () -> + test_compact_multi_range_check + "28948022309329048855892746252171976963317496166410141009864396001978282409984" + "0" ) ) ; + Alcotest.(check bool) + "v2 very large should fail" true + (Common.is_error (fun () -> + test_compact_multi_range_check "0" + "28948022309329048855892746252171976963317496166410141009864396001978282409984" ) + ) ; + Alcotest.(check bool) + "v01 = 2^176 should fail" true + (Common.is_error (fun () -> + test_compact_multi_range_check + "95780971304118053647396689196894323976171195136475136" (* 2^176 *) + "309485009821345068724781055" + (* 2^88 - 1 *) ) ) ; + Alcotest.(check bool) + "v2 = 2^88 should fail" true + (Common.is_error (fun () -> + test_compact_multi_range_check + "95780971304118053647396689196894323976171195136475135" + (* 2^176 - 1 *) + "309485009821345068724781056" + (* 2^88 *) ) ) + +let () = + let open Alcotest in + run "Range check gadgets" + [ ( "range_check64" + , [ test_case "positive tests" `Quick test_range_check64_positive + ; test_case "negative tests" `Quick test_range_check64_negative + ] ) + ; ( "multi_range_check" + , [ test_case "positive tests" `Quick test_multi_range_check_positive + ; test_case "negative tests" `Quick test_multi_range_check_negative + ] ) + ; ( "compact_multi_range_check" + , [ test_case "positive tests" `Quick + test_compact_multi_range_check_positive + ; test_case "negative tests" `Quick + test_compact_multi_range_check_negative + ] ) + ] diff --git a/src/lib/crypto/kimchi_backend/pasta/constraint_system/intf.ml b/src/lib/crypto/kimchi_backend/pasta/constraint_system/intf.ml index 41dc46a5757f..87fe5506fb7d 100644 --- a/src/lib/crypto/kimchi_backend/pasta/constraint_system/intf.ml +++ b/src/lib/crypto/kimchi_backend/pasta/constraint_system/intf.ml @@ -28,7 +28,7 @@ module type With_accessors = sig val set_primary_input_size : t -> int -> unit (** Get the number of auxiliary (private witness) inputs. *) - val get_auxiliary_input_size : t -> int + val get_auxiliary_input_size : t -> int Set_once.t (** Set the number of auxiliary (private witness) inputs. *) val set_auxiliary_input_size : t -> int -> unit diff --git a/src/lib/crypto/kimchi_bindings/stubs/rust-toolchain.toml b/src/lib/crypto/kimchi_bindings/stubs/rust-toolchain.toml index b60132dd6e74..511ff4f654c1 100644 --- a/src/lib/crypto/kimchi_bindings/stubs/rust-toolchain.toml +++ b/src/lib/crypto/kimchi_bindings/stubs/rust-toolchain.toml @@ -11,4 +11,4 @@ # 4. figure out the hashes of the (now obsolete) docker images used in CI rules that are failing, grep for these hashes and replace them with the new hashes [toolchain] -channel = "1.81.0" +channel = "1.92.0" diff --git a/src/lib/crypto/kimchi_pasta_snarky_backend/plonk_constraint_system.ml b/src/lib/crypto/kimchi_pasta_snarky_backend/plonk_constraint_system.ml index 0e44ec714dea..883bc2d9e409 100644 --- a/src/lib/crypto/kimchi_pasta_snarky_backend/plonk_constraint_system.ml +++ b/src/lib/crypto/kimchi_pasta_snarky_backend/plonk_constraint_system.ml @@ -965,7 +965,7 @@ module Make val set_primary_input_size : t -> int -> unit - val get_auxiliary_input_size : t -> int + val get_auxiliary_input_size : t -> int Set_once.t val set_auxiliary_input_size : t -> int -> unit @@ -1201,7 +1201,10 @@ end = struct } (** Returns the number of auxiliary inputs. *) - let get_auxiliary_input_size t = t.auxiliary_input_size + let get_auxiliary_input_size t = + let set_once = Set_once.create () in + Set_once.set_exn set_once [%here] t.auxiliary_input_size ; + set_once (** Returns the number of public inputs. *) let get_primary_input_size t = Set_once.get_exn t.public_input_size [%here] diff --git a/src/lib/non_zero_curve_point/compressed_poly.ml b/src/lib/crypto/non_zero_curve_point/compressed_poly.ml similarity index 100% rename from src/lib/non_zero_curve_point/compressed_poly.ml rename to src/lib/crypto/non_zero_curve_point/compressed_poly.ml diff --git a/src/lib/non_zero_curve_point/dune b/src/lib/crypto/non_zero_curve_point/dune similarity index 100% rename from src/lib/non_zero_curve_point/dune rename to src/lib/crypto/non_zero_curve_point/dune diff --git a/src/lib/non_zero_curve_point/non_zero_curve_point.ml b/src/lib/crypto/non_zero_curve_point/non_zero_curve_point.ml similarity index 100% rename from src/lib/non_zero_curve_point/non_zero_curve_point.ml rename to src/lib/crypto/non_zero_curve_point/non_zero_curve_point.ml diff --git a/src/lib/outside_hash_image/dune b/src/lib/crypto/outside_hash_image/dune similarity index 100% rename from src/lib/outside_hash_image/dune rename to src/lib/crypto/outside_hash_image/dune diff --git a/src/lib/outside_hash_image/outside_hash_image.ml b/src/lib/crypto/outside_hash_image/outside_hash_image.ml similarity index 100% rename from src/lib/outside_hash_image/outside_hash_image.ml rename to src/lib/crypto/outside_hash_image/outside_hash_image.ml diff --git a/src/lib/pickles/README.md b/src/lib/crypto/pickles/README.md similarity index 91% rename from src/lib/pickles/README.md rename to src/lib/crypto/pickles/README.md index e53bca9fe147..472ed3314c6b 100644 --- a/src/lib/pickles/README.md +++ b/src/lib/crypto/pickles/README.md @@ -87,6 +87,13 @@ library. Refer to the file header for a content description: - [`Tag`](tag.mli) - Algebraic objects: - [`Plonk_curve_ops`](plonk_curve_ops.mli) +- Circuit entry points: + - [`Step_main`](step_main.mli) - Step circuit logic (runs on Tick/Vesta) + - [`Wrap_main`](wrap_main.mli) - Wrap circuit logic (runs on Tock/Pallas) + - [`Step_verifier`](step_verifier.mli) - Verification within step circuits + - [`Wrap_verifier`](wrap_verifier.mli) - Verification within wrap circuits +- Type definitions: + - [`Composition_types`](composition_types/) - Core data structures for proofs ## Resources diff --git a/src/lib/pickles/backend/backend.ml b/src/lib/crypto/pickles/backend/backend.ml similarity index 100% rename from src/lib/pickles/backend/backend.ml rename to src/lib/crypto/pickles/backend/backend.ml diff --git a/src/lib/pickles/backend/backend.mli b/src/lib/crypto/pickles/backend/backend.mli similarity index 100% rename from src/lib/pickles/backend/backend.mli rename to src/lib/crypto/pickles/backend/backend.mli diff --git a/src/lib/pickles/backend/dune b/src/lib/crypto/pickles/backend/dune similarity index 100% rename from src/lib/pickles/backend/dune rename to src/lib/crypto/pickles/backend/dune diff --git a/src/lib/pickles/cache.ml b/src/lib/crypto/pickles/cache.ml similarity index 100% rename from src/lib/pickles/cache.ml rename to src/lib/crypto/pickles/cache.ml diff --git a/src/lib/pickles/cache.mli b/src/lib/crypto/pickles/cache.mli similarity index 100% rename from src/lib/pickles/cache.mli rename to src/lib/crypto/pickles/cache.mli diff --git a/src/lib/pickles/cache_handle.ml b/src/lib/crypto/pickles/cache_handle.ml similarity index 100% rename from src/lib/pickles/cache_handle.ml rename to src/lib/crypto/pickles/cache_handle.ml diff --git a/src/lib/pickles/cache_handle.mli b/src/lib/crypto/pickles/cache_handle.mli similarity index 100% rename from src/lib/pickles/cache_handle.mli rename to src/lib/crypto/pickles/cache_handle.mli diff --git a/src/lib/pickles/commitment_lengths.ml b/src/lib/crypto/pickles/commitment_lengths.ml similarity index 100% rename from src/lib/pickles/commitment_lengths.ml rename to src/lib/crypto/pickles/commitment_lengths.ml diff --git a/src/lib/pickles/commitment_lengths.mli b/src/lib/crypto/pickles/commitment_lengths.mli similarity index 100% rename from src/lib/pickles/commitment_lengths.mli rename to src/lib/crypto/pickles/commitment_lengths.mli diff --git a/src/lib/pickles/common.ml b/src/lib/crypto/pickles/common.ml similarity index 88% rename from src/lib/pickles/common.ml rename to src/lib/crypto/pickles/common.ml index 8c274b182e5d..654ef8a9a6af 100644 --- a/src/lib/pickles/common.ml +++ b/src/lib/crypto/pickles/common.ml @@ -91,36 +91,6 @@ module Shifts = struct Shifted_value.Type1.Shift.create (module Backend.Tick.Field) end -module Lookup_parameters = struct - let tick_zero : _ Composition_types.Zero_values.t = - Composition_types.Zero_values. - { value = - { challenge = Challenge.Constant.zero - ; scalar = - Shifted_value.Type2.Shifted_value Impls.Wrap.Field.Constant.zero - } - ; var = - { challenge = Impls.Step.Field.zero - ; scalar = - Shifted_value.Type2.Shifted_value - (Impls.Step.Field.zero, Impls.Step.Boolean.false_) - } - } - - let tock_zero : _ Composition_types.Zero_values.t = - Composition_types.Zero_values. - { value = - { challenge = Challenge.Constant.zero - ; scalar = - Shifted_value.Type2.Shifted_value Impls.Wrap.Field.Constant.zero - } - ; var = - { challenge = Impls.Wrap.Field.zero - ; scalar = Shifted_value.Type2.Shifted_value Impls.Wrap.Field.zero - } - } -end - let finite_exn : 'a Kimchi_types.or_infinity -> 'a * 'a = function | Kimchi_types.Finite (x, y) -> (x, y) diff --git a/src/lib/crypto/pickles/common.mli b/src/lib/crypto/pickles/common.mli new file mode 100644 index 000000000000..e718c1baa669 --- /dev/null +++ b/src/lib/crypto/pickles/common.mli @@ -0,0 +1,388 @@ +(** {1 Common - Shared Utilities for Pickles} + + This module provides shared utilities, constants, and helper functions + used throughout the Pickles proof system. It includes domain configuration, + IPA (Inner Product Argument) helpers, field shifts, and public input + conversion functions. *) + +(** {2 Domain Configuration} *) + +(** [wrap_domains ~proofs_verified] computes the circuit domain configuration + for wrap circuits based on the number of proofs being verified. + The domain size affects the maximum circuit complexity. + + @param proofs_verified must be 0, 1, or 2 + @raise Assert_failure if [proofs_verified] is not in [0, 1, 2] *) +val wrap_domains : proofs_verified:int -> Import.Domains.Stable.V2.t + +(** [actual_wrap_domain_size ~log_2_domain_size] returns the proofs verified + count that corresponds to a given domain size (as log base 2). *) +val actual_wrap_domain_size : + log_2_domain_size:int -> Pickles_base.Proofs_verified.t + +(** {2 Profiling} *) + +(** [when_profiling profiling default] returns [profiling] when environment + variable [PICKLES_PROFILING] is set to anything else than [0] or [false], + [default] otherwise. + + TODO: This function should use labels to avoid mistakenly interverting + profiling and default cases. + *) +val when_profiling : 'a -> 'a -> 'a + +(** [time label f] times function [f] and prints the measured time to [stdout] + prepended with [label], when profiling is set (see {!val:when_profiling}). + + Otherwise, it just runs [f]. + *) +val time : string -> (unit -> 'a) -> 'a + +(** {2 FFT Coset Shifts} *) + +(** [tick_shifts ~log2_size] computes the coset shifts for FFT operations + on the Tick (Vesta) curve for a domain of size [2^log2_size]. *) +val tick_shifts : log2_size:int -> Pasta_bindings.Fp.t array + +(** [tock_shifts ~log2_size] computes the coset shifts for FFT operations + on the Tock (Pallas) curve for a domain of size [2^log2_size]. *) +val tock_shifts : log2_size:int -> Pasta_bindings.Fq.t array + +(** {2 Utility Functions} *) + +(** [group_map (module F) ~a ~b] creates a staged function that maps field + elements to curve points using the group map algorithm. The curve is + defined by parameters [a] and [b] (for y^2 = x^3 + ax + b). *) +val group_map : + (module Group_map.Field_intf.S_unchecked with type t = 'a) + -> a:'a + -> b:'a + -> ('a -> 'a * 'a) Core_kernel.Staged.t + +(** [bits_to_bytes bits] converts a list of booleans to a byte string. + Each group of 8 bits is packed into a character. *) +val bits_to_bytes : bool list -> string + +(** [finite_exn v] returns [(a, b)] when [v] is {!val:Finite(a,b)}, + [Invalid_argument] otherwise.*) +val finite_exn : 'a Kimchi_types.or_infinity -> 'a * 'a + +(** {2 PLONK Commitment Operations} *) + +(** [ft_comm ~add ~scale ~negate ~verification_key ~plonk ~t_comm] computes + the commitment to the linearization polynomial (called ft in the codebase) + used in PLONK verification. This combines verification key commitments with + PLONK challenges and the T polynomial commitment. + + @param add Group addition operation + @param scale Scalar multiplication operation + @param negate Group negation operation + @param verification_key The verification key commitments + @param plonk The PLONK challenges and deferred values + @param t_comm The T polynomial commitment *) +val ft_comm : + add:('comm -> 'comm -> 'comm) + -> scale:('comm -> 'scalar -> 'comm) + -> negate:('comm -> 'comm) + -> verification_key:'comm array Pickles_types.Plonk_verification_key_evals.t + -> plonk: + ( 'd + , 'e + , 'scalar + , 'g + , 'f + , 'bool ) + Import.Types.Wrap.Proof_state.Deferred_values.Plonk.In_circuit.t + -> t_comm:'comm array + -> 'comm + +(** [combined_evaluation (module Impl) ~xi evaluations] combines multiple + polynomial evaluations using powers of the challenge [xi]. This is used + to batch multiple polynomial openings into a single check. + + @param xi The batching challenge + @param evaluations List of optional evaluation arrays to combine *) +val combined_evaluation : + (module Snarky_backendless.Snark_intf.Run + with type field = 'f + and type field_var = 'v ) + -> xi:'v + -> ('v, 'v Snarky_backendless.Boolean.t) Pickles_types.Opt.t array list + -> 'v + +(** {2 Polynomial Degree Limits} *) + +(** Maximum polynomial degrees for circuits. These constants define the + upper bounds on polynomial complexity in step and wrap circuits. *) +module Max_degree : sig + (** Log base 2 of the maximum degree for wrap circuits. *) + val wrap_log2 : int + + (** Maximum degree for step circuits. *) + val step : int + + (** Log base 2 of the maximum degree for step circuits. *) + val step_log2 : int +end + +(** {2 Field Shifts} *) + +(** Shift constants for encoding field elements across circuit types. + These shifts are used in the shifted value representation to avoid + certain problematic values. *) +module Shifts : sig + (** Shift for Type1 encoding of Tick field elements (used in wrap circuits). *) + val tick1 : Backend.Tick.Field.t Pickles_types.Shifted_value.Type1.Shift.t + + (** Shift for Type2 encoding of Tock field elements (used in step circuits). *) + val tock2 : Backend.Tock.Field.t Pickles_types.Shifted_value.Type2.Shift.t +end + +(** {2 Inner Product Argument (IPA)} *) + +(** IPA helper functions for computing challenges and verifying accumulators. + The Inner Product Argument is the polynomial commitment opening protocol + used by Pickles (also known as Bulletproofs). + + {3 Challenge Polynomial Commitment (sg)} + + In the IPA protocol, the prover and verifier engage in a logarithmic-round + protocol where each round produces a challenge [u_i]. These challenges + define the {b challenge polynomial}: + + {v b(X) = prod_i (1 + u_i * X^{2^{n-1-i}}) v} + + where [n] is the number of rounds (equal to [log2(domain_size)]). + + The {b challenge polynomial commitment}, commonly called [sg] in the + codebase, is a commitment to this polynomial [b(X)] using the structured + reference string (SRS). It serves as an {b accumulator} that carries the + IPA verification state across recursive proof steps. + + In recursive proving, rather than fully verifying each inner proof's IPA, + we defer the expensive final check. The [sg] commitment summarizes all the + challenges from a proof's IPA, allowing the next proof layer to: + - Inherit and verify the accumulated challenges + - Combine multiple [sg] commitments when verifying multiple proofs + + The [sg] is computed via the Kimchi bindings: + - [Kimchi_bindings.Protocol.SRS.Fp.b_poly_commitment] for Tick/Vesta + - [Kimchi_bindings.Protocol.SRS.Fq.b_poly_commitment] for Tock/Pallas + + The final [accumulator_check] verifies that the [sg] commitments are + consistent with their claimed challenge vectors, completing the deferred + IPA verifications in a single batch. + + This deferred IPA verification / accumulator technique is described in + {{: https://eprint.iacr.org/2020/499.pdf} Proof-Carrying Data from + Accumulation Schemes (ePrint 2020/499)}, specifically the accumulation + scheme in Section 4. + + {3 Scalar Challenges} + + Scalar challenges are 128-bit values derived from the Fiat-Shamir transcript + during the IPA protocol. They are represented as [Challenge.Constant.t + Scalar_challenge.t] where the inner [Challenge.Constant.t] holds the 128-bit + value as a pair of 64-bit limbs. The [endo_to_field] functions convert these + scalar challenges to full field elements using the curve's endomorphism. + + {3 Type Parameters} + + The IPA module uses two type parameters throughout: + + - ['a] is a type-level natural number representing the vector length + (number of IPA rounds). This is typically instantiated with + [Backend.Tick.Rounds.n] or [Backend.Tock.Rounds.n]. Using a type + parameter allows the same code to work both inside circuits (where + lengths must be statically known for constraint generation) and outside + circuits (for concrete computations). + + - ['b] is the field type for curve point coordinates. This is instantiated + with [Pasta_bindings.Fp.t] for Tock/Pallas points or [Pasta_bindings.Fq.t] + for Tick/Vesta points. *) +module Ipa : sig + (** A vector of bulletproof challenges from the IPA protocol. + Each challenge is derived from a scalar challenge produced during + one round of the IPA reduction. + + @param 'a type-level natural for the vector length (number of rounds) *) + type 'a challenge := + ( Import.Challenge.Constant.t Import.Scalar_challenge.t + Import.Bulletproof_challenge.t + , 'a ) + Pickles_types.Vector.t + + (** Function type for computing the challenge polynomial commitment [sg] + from bulletproof challenges. Given a vector of challenges [u_0, ..., u_{n-1}], + computes a commitment to b(X) = prod_i (1 + u_i * X^{2^{n-1-i}}). + Returns the (x, y) coordinates of the commitment point. + + @param 'a type-level natural for challenge vector length + @param 'b field type for point coordinates (Fp or Fq) *) + type ('a, 'b) compute_sg := 'a challenge -> 'b * 'b + + (** IPA functions for wrap circuits (operating over Tock/Pallas). *) + module Wrap : sig + (** Compute a single IPA challenge from a scalar challenge. *) + val compute_challenge : + Import.Challenge.Constant.t Import.Scalar_challenge.t + -> Backend.Tock.Field.t + + (** Convert an endomorphism-encoded scalar challenge to a field element. *) + val endo_to_field : + Import.Challenge.Constant.t Import.Scalar_challenge.t + -> Backend.Tock.Field.t + + (** Compute all IPA challenges from bulletproof challenge vector. *) + val compute_challenges : + 'a challenge -> (Backend.Tock.Field.t, 'a) Pickles_types.Vector.t + + (** Compute the challenge polynomial commitment [sg] for wrap circuits. + This commits to b(X) = prod_i (1 + u_i * X^{2^{n-1-i}}) using the Tock SRS. + Returns point coordinates in Fp (Tick's base field, since Tock/Pallas + curve points have Fp coordinates). *) + val compute_sg : ('a, Pasta_bindings.Fp.t) compute_sg + end + + (** IPA functions for step circuits (operating over Tick/Vesta). *) + module Step : sig + (** Compute a single IPA challenge from a scalar challenge. *) + val compute_challenge : + Import.Challenge.Constant.t Import.Scalar_challenge.t + -> Backend.Tick.Field.t + + (** Convert an endomorphism-encoded scalar challenge to a field element. *) + val endo_to_field : + Import.Challenge.Constant.t Import.Scalar_challenge.t + -> Backend.Tick.Field.t + + (** Compute all IPA challenges from bulletproof challenge vector. *) + val compute_challenges : + 'a challenge -> (Backend.Tick.Field.t, 'a) Pickles_types.Vector.t + + (** Compute the challenge polynomial commitment [sg] for step circuits. + This commits to b(X) = prod_i (1 + u_i * X^{2^{n-1-i}}) using the Tick SRS. + Returns point coordinates in Fq (Tock's base field, since Tick/Vesta + curve points have Fq coordinates). *) + val compute_sg : ('a, Pasta_bindings.Fq.t) compute_sg + + (** Verify a list of IPA accumulators in batch. Each accumulator consists of: + - A point [(x, y)]: the [sg] commitment (challenge polynomial commitment) + - A vector of challenges: the IPA challenges [u_0, ..., u_{n-1}] + + This performs the deferred IPA verification by checking that each [sg] + is indeed a valid commitment to the challenge polynomial + b(X) = prod_i (1 + u_i * X^{2^{n-1-i}}) derived from its challenge vector. + + Returns [true] if all accumulators are valid. This is the final step + that completes the recursive proof verification by validating all + accumulated IPA states. *) + val accumulator_check : + ( (Pasta_bindings.Fq.t * Pasta_bindings.Fq.t) + * (Pasta_bindings.Fp.t, 'a) Pickles_types.Vector.t ) + list + -> bool Promise.t + end +end + +(** {2 Proof Message Hashing} *) + +(** [hash_messages_for_next_step_proof ~app_state messages] computes a hash + digest of the messages passed to the next step proof. This digest is + used to minimize public input size by hashing verification key commitments, + application state, challenge polynomial commitments, and bulletproof + challenges into a single field element. + + @param app_state Function to convert application state to field elements + @param messages The messages structure containing VK, app state, and challenges *) +val hash_messages_for_next_step_proof : + app_state:('a -> Kimchi_pasta.Basic.Fp.Stable.Latest.t Core_kernel.Array.t) + -> ( Backend.Tock.Curve.Affine.t array + (* the type for the verification key *) + , 'a + (* the state of the application *) + , ( Kimchi_pasta.Basic.Fp.Stable.Latest.t + * Kimchi_pasta.Basic.Fp.Stable.Latest.t + , 'n ) + Pickles_types.Vector.t + (* challenge polynomial commitments. We use the full parameter type to + restrict the size of the vector to be the same than the one for the next + parameter which are the bulletproof challenges *) + , ( (Kimchi_pasta.Basic.Fp.Stable.Latest.t, 'm) Pickles_types.Vector.t + , 'n + (* size of the vector *) ) + Pickles_types.Vector.t + (* bulletproof challenges *) ) + Import.Types.Step.Proof_state.Messages_for_next_step_proof.t + -> Import.Types.Digest.Constant.t + +(** {2 Public Input Conversion} *) + +(** [tick_public_input_of_statement ~max_proofs_verified statement] converts + a step circuit statement into a list of Tick field elements for use as + the circuit's public input. + + @param max_proofs_verified Type-level natural for padding + @param statement The step statement to convert *) +val tick_public_input_of_statement : + max_proofs_verified:'max_proofs_verified Pickles_types.Nat.t + -> 'max_proofs_verified Impls.Step.statement + -> Backend.Tick.Field.Vector.elt list + +(** [tock_public_input_of_statement ~feature_flags statement] converts a wrap + circuit statement into a list of Tock field elements for use as the + circuit's public input. The output is padded to the expected size. + + @param feature_flags Flags indicating which optional features are enabled + @param statement The wrap statement to convert *) +val tock_public_input_of_statement : + feature_flags: + Pickles_types.Opt.Flag.t Pickles_types.Plonk_types.Features.Full.t + -> ( Limb_vector.Challenge.Constant.t + , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t + , Impls.Wrap.Other_field.Constant.t Pickles_types.Shifted_value.Type1.t + , Impls.Wrap.Other_field.Constant.t Pickles_types.Shifted_value.Type1.t + option + , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t + option + , bool + , Import.Types.Digest.Constant.t + , Import.Types.Digest.Constant.t + , Import.Types.Digest.Constant.t + , ( Limb_vector.Challenge.Constant.t + Kimchi_backend_common.Scalar_challenge.t + Composition_types.Bulletproof_challenge.t + , Pickles_types.Nat.z Backend.Tick.Rounds.plus_n ) + Pickles_types.Vector.t + , Composition_types.Branch_data.t ) + Import.Types.Wrap.Statement.In_circuit.t + -> Backend.Tock.Field.Vector.elt list + +(** [tock_unpadded_public_input_of_statement ~feature_flags statement] converts + a wrap circuit statement into a list of Tock field elements without padding. + Use this when the actual unpadded size is needed. + + @param feature_flags Flags indicating which optional features are enabled + @param statement The wrap statement to convert *) +val tock_unpadded_public_input_of_statement : + feature_flags: + Pickles_types.Opt.Flag.t Pickles_types.Plonk_types.Features.Full.t + -> ( Limb_vector.Challenge.Constant.t + , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t + , Impls.Wrap.Other_field.Constant.t Pickles_types.Shifted_value.Type1.t + , Impls.Wrap.Other_field.Constant.t Pickles_types.Shifted_value.Type1.t + option + , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t + option + , bool + , Import.Types.Digest.Constant.t + , Import.Types.Digest.Constant.t + , Import.Types.Digest.Constant.t + , ( Limb_vector.Challenge.Constant.t + Kimchi_backend_common.Scalar_challenge.t + Composition_types.Bulletproof_challenge.t + , Pickles_types.Nat.z Backend.Tick.Rounds.plus_n ) + Pickles_types.Vector.t + , Composition_types.Branch_data.t ) + Import.Types.Wrap.Statement.In_circuit.t + -> Backend.Tock.Field.Vector.elt list diff --git a/src/lib/pickles/compile.ml b/src/lib/crypto/pickles/compile.ml similarity index 100% rename from src/lib/pickles/compile.ml rename to src/lib/crypto/pickles/compile.ml diff --git a/src/lib/pickles/compile.mli b/src/lib/crypto/pickles/compile.mli similarity index 100% rename from src/lib/pickles/compile.mli rename to src/lib/crypto/pickles/compile.mli diff --git a/src/lib/pickles/composition_types/branch_data.ml b/src/lib/crypto/pickles/composition_types/branch_data.ml similarity index 100% rename from src/lib/pickles/composition_types/branch_data.ml rename to src/lib/crypto/pickles/composition_types/branch_data.ml diff --git a/src/lib/pickles/composition_types/branch_data.mli b/src/lib/crypto/pickles/composition_types/branch_data.mli similarity index 100% rename from src/lib/pickles/composition_types/branch_data.mli rename to src/lib/crypto/pickles/composition_types/branch_data.mli diff --git a/src/lib/pickles/composition_types/branch_data_intf.ml b/src/lib/crypto/pickles/composition_types/branch_data_intf.ml similarity index 100% rename from src/lib/pickles/composition_types/branch_data_intf.ml rename to src/lib/crypto/pickles/composition_types/branch_data_intf.ml diff --git a/src/lib/pickles/composition_types/bulletproof_challenge.ml b/src/lib/crypto/pickles/composition_types/bulletproof_challenge.ml similarity index 100% rename from src/lib/pickles/composition_types/bulletproof_challenge.ml rename to src/lib/crypto/pickles/composition_types/bulletproof_challenge.ml diff --git a/src/lib/pickles/composition_types/bulletproof_challenge.mli b/src/lib/crypto/pickles/composition_types/bulletproof_challenge.mli similarity index 100% rename from src/lib/pickles/composition_types/bulletproof_challenge.mli rename to src/lib/crypto/pickles/composition_types/bulletproof_challenge.mli diff --git a/src/lib/pickles/composition_types/composition_types.ml b/src/lib/crypto/pickles/composition_types/composition_types.ml similarity index 100% rename from src/lib/pickles/composition_types/composition_types.ml rename to src/lib/crypto/pickles/composition_types/composition_types.ml diff --git a/src/lib/pickles/composition_types/composition_types.mli b/src/lib/crypto/pickles/composition_types/composition_types.mli similarity index 100% rename from src/lib/pickles/composition_types/composition_types.mli rename to src/lib/crypto/pickles/composition_types/composition_types.mli diff --git a/src/lib/pickles/composition_types/digest.ml b/src/lib/crypto/pickles/composition_types/digest.ml similarity index 100% rename from src/lib/pickles/composition_types/digest.ml rename to src/lib/crypto/pickles/composition_types/digest.ml diff --git a/src/lib/pickles/composition_types/digest.mli b/src/lib/crypto/pickles/composition_types/digest.mli similarity index 100% rename from src/lib/pickles/composition_types/digest.mli rename to src/lib/crypto/pickles/composition_types/digest.mli diff --git a/src/lib/pickles/composition_types/dune b/src/lib/crypto/pickles/composition_types/dune similarity index 100% rename from src/lib/pickles/composition_types/dune rename to src/lib/crypto/pickles/composition_types/dune diff --git a/src/lib/pickles/composition_types/spec.ml b/src/lib/crypto/pickles/composition_types/spec.ml similarity index 100% rename from src/lib/pickles/composition_types/spec.ml rename to src/lib/crypto/pickles/composition_types/spec.ml diff --git a/src/lib/pickles/composition_types/spec.mli b/src/lib/crypto/pickles/composition_types/spec.mli similarity index 100% rename from src/lib/pickles/composition_types/spec.mli rename to src/lib/crypto/pickles/composition_types/spec.mli diff --git a/src/lib/pickles/dirty.ml b/src/lib/crypto/pickles/dirty.ml similarity index 100% rename from src/lib/pickles/dirty.ml rename to src/lib/crypto/pickles/dirty.ml diff --git a/src/lib/pickles/dirty.mli b/src/lib/crypto/pickles/dirty.mli similarity index 100% rename from src/lib/pickles/dirty.mli rename to src/lib/crypto/pickles/dirty.mli diff --git a/src/lib/pickles/dummy.ml b/src/lib/crypto/pickles/dummy.ml similarity index 100% rename from src/lib/pickles/dummy.ml rename to src/lib/crypto/pickles/dummy.ml diff --git a/src/lib/pickles/dummy.mli b/src/lib/crypto/pickles/dummy.mli similarity index 100% rename from src/lib/pickles/dummy.mli rename to src/lib/crypto/pickles/dummy.mli diff --git a/src/lib/pickles/dune b/src/lib/crypto/pickles/dune similarity index 100% rename from src/lib/pickles/dune rename to src/lib/crypto/pickles/dune diff --git a/src/lib/pickles/endo.ml b/src/lib/crypto/pickles/endo.ml similarity index 100% rename from src/lib/pickles/endo.ml rename to src/lib/crypto/pickles/endo.ml diff --git a/src/lib/pickles/endo.mli b/src/lib/crypto/pickles/endo.mli similarity index 100% rename from src/lib/pickles/endo.mli rename to src/lib/crypto/pickles/endo.mli diff --git a/src/lib/pickles/evaluation_lengths.ml b/src/lib/crypto/pickles/evaluation_lengths.ml similarity index 100% rename from src/lib/pickles/evaluation_lengths.ml rename to src/lib/crypto/pickles/evaluation_lengths.ml diff --git a/src/lib/pickles/evaluation_lengths.mli b/src/lib/crypto/pickles/evaluation_lengths.mli similarity index 100% rename from src/lib/pickles/evaluation_lengths.mli rename to src/lib/crypto/pickles/evaluation_lengths.mli diff --git a/src/lib/pickles/fix_domains.ml b/src/lib/crypto/pickles/fix_domains.ml similarity index 100% rename from src/lib/pickles/fix_domains.ml rename to src/lib/crypto/pickles/fix_domains.ml diff --git a/src/lib/pickles/fix_domains.mli b/src/lib/crypto/pickles/fix_domains.mli similarity index 100% rename from src/lib/pickles/fix_domains.mli rename to src/lib/crypto/pickles/fix_domains.mli diff --git a/src/lib/pickles/full_signature.mli b/src/lib/crypto/pickles/full_signature.mli similarity index 100% rename from src/lib/pickles/full_signature.mli rename to src/lib/crypto/pickles/full_signature.mli diff --git a/src/lib/pickles/impls.ml b/src/lib/crypto/pickles/impls.ml similarity index 93% rename from src/lib/pickles/impls.ml rename to src/lib/crypto/pickles/impls.ml index 268c15ab0ae3..78c57a7f3643 100644 --- a/src/lib/pickles/impls.ml +++ b/src/lib/crypto/pickles/impls.ml @@ -10,8 +10,8 @@ let test_bit x i = B.(shift_right x i land one = one) (* TODO: I think there are other forbidden values as well. *) (** returns all the values that can fit in [~size_in_bits] bits and that are - * either congruent with -2^[~size_in_bits] mod [~modulus] - * or congruent with -2^[~size_in_bits] - 1 mod [~modulus] + * either congruent with -2^[~size_in_bits] mod [~modulus] + * or congruent with -2^[~size_in_bits] - 1 mod [~modulus] *) let forbidden_shifted_values ~modulus:r ~size_in_bits = let two_to_n = B.(pow (of_int 2) (of_int size_in_bits)) in @@ -235,6 +235,14 @@ module Wrap = struct ~feature_flags: ({ Plonk_types.Features.Full.uses_lookups; _ } as feature_flags) () = let feature_flags = Plonk_types.Features.of_full feature_flags in + (* Zero values for lookup arguments when lookups are inactive or at circuit + boundaries. These dummy values are used by the spec system to pad optional + lookup data. + + - Type1 shifted values are used because the Wrap circuit's scalar field + (Tick/Vesta) fits within its native field (Tock/Pallas), so no + high-bit separation is needed (unlike Type2 which splits into + (high_bits, low_bit) for larger scalar fields). *) let lookup = { Types.Wrap.Lookup_parameters.use = uses_lookups ; zero = diff --git a/src/lib/crypto/pickles/impls.mli b/src/lib/crypto/pickles/impls.mli new file mode 100644 index 000000000000..08a28c27001d --- /dev/null +++ b/src/lib/crypto/pickles/impls.mli @@ -0,0 +1,326 @@ +(** {1 Impls - Snarky Implementation Modules for Step and Wrap} + + This module provides the snarky implementation modules for both step + (Tick/Vesta) and wrap (Tock/Pallas) circuits. These modules define the + field types, constraint systems, and circuit building primitives. + + {2 Overview} + + Pickles uses two curves in a 2-cycle: + - {b Step (Tick/Vesta)}: Application logic, verifies wrap proofs + - {b Wrap (Tock/Pallas)}: Uniform format, no application logic, verifies + step proofs + + Each has its own snarky implementation with different field types. + + {2 Field Relationships} + + {v + Step (Tick/Vesta) Wrap (Tock/Pallas) + ┌────────────────────┐ ┌────────────────────┐ + │ Base field: Fp │ ═══════ │ Scalar field: Fp │ + │ Scalar field: Fq │ ═══════ │ Base field: Fq │ + └────────────────────┘ └────────────────────┘ + v} + + This relationship enables efficient recursion: Tick's scalar operations + are native in Wrap, and vice versa. + + {2 Key Types} + + - {!Step.Impl}: Snarky module for step circuits + - {!Wrap.Impl}: Snarky module for wrap circuits + - {!Step.Other_field}: Tock base field in step circuits (non-native) + - {!Wrap.Other_field}: Tick base field in wrap circuits (native!) + - {!type:Step.unfinalized_proof}: Deferred data for wrap + - {!type:Step.statement}: Step circuit public input type + + {2 Shifted Values} + + Non-native field elements use shifted representations: + - {!Pickles_types.Shifted_value.Type1}: For Tick elements in Wrap (simple shift) + - {!Pickles_types.Shifted_value.Type2}: For Tock elements in Step (split high/low) + + {2 Keypairs} + + Both modules provide {!Step.Keypair} and {!Wrap.Keypair} modules for + generating proving/verification key pairs from constraint systems. + + {2 See Also} + + - {!module:Step_main} for step circuit logic + - {!module:Wrap_main} for wrap circuit logic + - {!module:Snarky_backendless} for the underlying snarky implementation +*) + +open Pickles_types + +(** Wrap circuit implementation (Tock/Pallas based). *) +module Wrap_impl : + module type of + Snarky_backendless.Snark.Run.Make + (Kimchi_pasta_snarky_backend.Pallas_based_plonk) + +(** Step circuit implementation module (Tick/Vesta based). + + Step circuits execute application logic and partially verify wrap proofs. + They operate over the Tick (Vesta) curve where the base field is Fp. + Step circuits can use lookup arguments for application logic. *) +module Step : sig + (** The underlying snarky implementation for step circuits, instantiated + with the Vesta-based PLONK backend. *) + module Impl : + module type of + Snarky_backendless.Snark.Run.Make + (Kimchi_pasta_snarky_backend.Vesta_based_plonk) + + include module type of Impl + + (** Verification key for step circuits (Tick curve). *) + module Verification_key = Backend.Tick.Verification_key + + (** Proving key for step circuits (Tick curve). *) + module Proving_key = Backend.Tick.Proving_key + + (** Digest (hash) operations for step circuits. *) + module Digest : module type of Import.Digest.Make (Impl) + + (** Challenge generation for step circuits. *) + module Challenge : module type of Import.Challenge.Make (Impl) + + (** Keypair management for step circuits. *) + module Keypair : sig + (** A keypair consists of a proving key and verification key. *) + type t = { pk : Proving_key.t; vk : Verification_key.t } [@@deriving fields] + + (** Create a keypair from existing proving and verification keys. *) + val create : pk:Proving_key.t -> vk:Verification_key.t -> t + + (** Generate a new keypair from a constraint system. + @param lazy_mode If true, delays key generation until needed + @param prev_challenges Number of challenges from previous proofs *) + val generate : + ?lazy_mode:bool + -> prev_challenges:int + -> Kimchi_pasta_constraint_system.Vesta_constraint_system.t + -> t + end + + (** Representation of Tock field elements within step circuits (non-native). + + Both Tick and Tock fields are 255 bits with orders larger than 254 bits, + but Tock's field is larger than Tick's (p < q). To encode a Tock field + element in a Tick circuit, we split it into the low bits (stored as a + Tick field element) and the high bit (stored as a boolean). + This uses {!Pickles_types.Shifted_value.Type2} encoding. *) + module Other_field : sig + (** A Tock field element in-circuit: (low bits, high bit). *) + type t = Field.t * Boolean.var + + (** The constant (out-of-circuit) representation uses Tock's field. *) + module Constant = Backend.Tock.Field + + (** Field values that cannot be used due to shifted value encoding. + These values would alias with other values after shifting. *) + val forbidden_shifted_values : (Impl.field * bool) list lazy_t + + (** Typ without range checking - use only when values are known safe. *) + val typ_unchecked : (t, Constant.t) Typ.t + + (** Typ with proper range checking for safe conversion. *) + val typ : (t, Constant.t) Impl.Typ.t + end + + (** Constant (out-of-circuit) representation of proof state that has not + yet been finalized by the wrap circuit. Contains deferred scalar-field + computations that will be completed in wrap. *) + type unfinalized_proof = + ( Challenge.Constant.t + , Challenge.Constant.t Import.Scalar_challenge.t + , Backend.Tock.Field.t Shifted_value.Type2.t + , ( Challenge.Constant.t Import.Scalar_challenge.t + Import.Types.Bulletproof_challenge.t + , Backend.Tock.Rounds.n ) + Vector.t + , Digest.Constant.t + , bool ) + Import.Types.Step.Proof_state.Per_proof.In_circuit.t + + (** Constant (out-of-circuit) step statement type, parameterized by the + number of proofs verified. Contains unfinalized proofs and message + digests for the next proof. *) + type 'proofs_verified statement = + ( (unfinalized_proof, 'proofs_verified) Vector.t + , Import.Types.Digest.Constant.t + , (Import.Types.Digest.Constant.t, 'proofs_verified) Vector.t ) + Import.Types.Step.Statement.t + + (** In-circuit representation of unfinalized proof state. Uses circuit + variables instead of constants. *) + type unfinalized_proof_var = + ( Field.t + , Field.t Import.Scalar_challenge.t + , Other_field.t Shifted_value.Type2.t + , ( Field.t Import.Scalar_challenge.t Import.Types.Bulletproof_challenge.t + , Backend.Tock.Rounds.n ) + Vector.t + , Field.t + , Boolean.var ) + Import.Types.Step.Proof_state.Per_proof.In_circuit.t + + (** In-circuit step statement type. The circuit variable version of + {!statement}. *) + type 'proofs_verified statement_var = + ( (unfinalized_proof_var, 'proofs_verified) Vector.t + , Impl.Field.t + , (Impl.Field.t, 'proofs_verified) Vector.t ) + Import.Types.Step.Statement.t + + (** Create the input specification for a step circuit. + @param proofs_verified Type-level natural for number of proofs verified + @return A specification mapping circuit variables to constants *) + val input : + proofs_verified:'proofs_verified Nat.t + -> ( 'proofs_verified statement_var + , 'proofs_verified statement ) + Import.Spec.Step_etyp.t + + (** Async operations using Promise for non-blocking proof generation. *) + module Async_promise : module type of Async_generic (Promise) +end + +(** Wrap circuit implementation module (Tock/Pallas based). + + Wrap circuits verify step proofs and complete deferred scalar-field + computations. They operate over the Tock (Pallas) curve where the base + field is Fq. Wrap proofs have a uniform format suitable for recursive + verification. + + Note: Wrap circuits do not use lookup arguments - only step circuits + (application logic) can use lookups. *) +module Wrap : sig + (** The underlying snarky implementation for wrap circuits, instantiated + with the Pallas-based PLONK backend. *) + module Impl : + module type of + Snarky_backendless.Snark.Run.Make + (Kimchi_pasta_snarky_backend.Pallas_based_plonk) + + include module type of Impl + + (** Challenge generation for wrap circuits. *) + module Challenge : module type of Import.Challenge.Make (Impl) + + (** Digest (hash) operations for wrap circuits. *) + module Digest : module type of Import.Digest.Make (Impl) + + (** The native field for wrap circuits (Tock/Pallas base field Fq). *) + module Wrap_field = Backend.Tock.Field + + (** The step circuit's native field (Tick/Vesta base field Fp). + This equals Tock's scalar field, so scalar operations from step + are native in wrap. *) + module Step_field = Backend.Tick.Field + + (** Verification key for wrap circuits (Tock curve). *) + module Verification_key = Backend.Tock.Verification_key + + (** Proving key for wrap circuits (Tock curve). *) + module Proving_key = Backend.Tock.Proving_key + + (** Keypair management for wrap circuits. *) + module Keypair : sig + (** A keypair consists of a proving key and verification key. *) + type t = { pk : Proving_key.t; vk : Verification_key.t } [@@deriving fields] + + (** Create a keypair from existing proving and verification keys. *) + val create : pk:Proving_key.t -> vk:Verification_key.t -> t + + (** Generate a new keypair from a constraint system. + @param lazy_mode If true, delays key generation until needed + @param prev_challenges Number of challenges from previous proofs *) + val generate : + ?lazy_mode:bool + -> prev_challenges:int + -> Kimchi_pasta_constraint_system.Pallas_constraint_system.t + -> t + end + + (** Representation of Tick field elements within wrap circuits. + + Both Tick and Tock fields are 255 bits with orders larger than 254 bits, + but Tock's field is larger than Tick's (p < q). Since Tock can represent + all Tick field elements directly, we only need a single field element + (no splitting required). Uses {!Pickles_types.Shifted_value.Type1} encoding. + + Additionally, Tick's base field (Fp) equals Tock's scalar field, so + scalar operations from step are {b native} in wrap circuits. This is + why wrap can efficiently complete the deferred scalar-field computations + from step. *) + module Other_field : sig + (** A Tick field element in-circuit - a single field element since + Tock's field is larger and can represent all Tick values. *) + type t = Field.t + + (** The constant (out-of-circuit) representation uses Tick's field. *) + module Constant = Backend.Tick.Field + + (** Field values that cannot be used due to shifted value encoding. *) + val forbidden_shifted_values : Impl.field list lazy_t + + (** Typ without range checking - use only when values are known safe. *) + val typ_unchecked : (Impl.Field.t, Backend.Tick.Field.t) Impl.Typ.t + + (** Typ with proper range checking for safe conversion. *) + val typ : (Impl.Field.t, Backend.Tick.Field.t) Impl.Typ.t + end + + (** Create the input specification for a wrap circuit. + + The wrap statement is more complex than step, containing PLONK + challenges, deferred values, bulletproof challenges, and branch data. + + @param feature_flags Flags indicating which optional features are enabled + (e.g., lookup arguments, runtime tables) + @return A specification mapping circuit variables to constants *) + val input : + feature_flags:Opt.Flag.t Plonk_types.Features.Full.t + -> unit + -> ( ( Impl.Field.t + , Impl.Field.t Composition_types.Scalar_challenge.t + , Impl.Field.t Pickles_types.Shifted_value.Type1.t + , ( Impl.Field.t Pickles_types.Shifted_value.Type1.t + , Impl.Field.t Snarky_backendless.Snark_intf.Boolean0.t ) + Pickles_types.Opt.t + , ( Impl.Field.t Composition_types.Scalar_challenge.t + , Impl.Field.t Snarky_backendless.Snark_intf.Boolean0.t ) + Pickles_types.Opt.t + , Impl.Boolean.var + , Impl.Field.t + , Impl.Field.t + , Impl.Field.t + , ( Impl.Field.t Kimchi_backend_common.Scalar_challenge.t + Composition_types.Bulletproof_challenge.t + , Pickles_types.Nat.z Backend.Tick.Rounds.plus_n ) + Pickles_types.Vector.t + , Impl.Field.t ) + Import.Types.Wrap.Statement.In_circuit.t + , ( Limb_vector.Challenge.Constant.t + , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t + , Other_field.Constant.t Pickles_types.Shifted_value.Type1.t + , Other_field.Constant.t Pickles_types.Shifted_value.Type1.t option + , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t + option + , bool + , Import.Types.Digest.Constant.t + , Import.Types.Digest.Constant.t + , Import.Types.Digest.Constant.t + , ( Limb_vector.Challenge.Constant.t + Kimchi_backend_common.Scalar_challenge.t + Composition_types.Bulletproof_challenge.t + , Pickles_types.Nat.z Backend.Tick.Rounds.plus_n ) + Pickles_types.Vector.t + , Composition_types.Branch_data.t ) + Import.Types.Wrap.Statement.In_circuit.t ) + Import.Spec.Wrap_etyp.t +end diff --git a/src/lib/pickles/import.ml b/src/lib/crypto/pickles/import.ml similarity index 100% rename from src/lib/pickles/import.ml rename to src/lib/crypto/pickles/import.ml diff --git a/src/lib/pickles/import.mli b/src/lib/crypto/pickles/import.mli similarity index 100% rename from src/lib/pickles/import.mli rename to src/lib/crypto/pickles/import.mli diff --git a/src/lib/pickles/inductive_rule.ml b/src/lib/crypto/pickles/inductive_rule.ml similarity index 100% rename from src/lib/pickles/inductive_rule.ml rename to src/lib/crypto/pickles/inductive_rule.ml diff --git a/src/lib/pickles/inductive_rule.mli b/src/lib/crypto/pickles/inductive_rule.mli similarity index 100% rename from src/lib/pickles/inductive_rule.mli rename to src/lib/crypto/pickles/inductive_rule.mli diff --git a/src/lib/pickles/intf.mli b/src/lib/crypto/pickles/intf.mli similarity index 100% rename from src/lib/pickles/intf.mli rename to src/lib/crypto/pickles/intf.mli diff --git a/src/lib/pickles/limb_vector/challenge.ml b/src/lib/crypto/pickles/limb_vector/challenge.ml similarity index 100% rename from src/lib/pickles/limb_vector/challenge.ml rename to src/lib/crypto/pickles/limb_vector/challenge.ml diff --git a/src/lib/pickles/limb_vector/challenge.mli b/src/lib/crypto/pickles/limb_vector/challenge.mli similarity index 100% rename from src/lib/pickles/limb_vector/challenge.mli rename to src/lib/crypto/pickles/limb_vector/challenge.mli diff --git a/src/lib/pickles/limb_vector/constant.ml b/src/lib/crypto/pickles/limb_vector/constant.ml similarity index 100% rename from src/lib/pickles/limb_vector/constant.ml rename to src/lib/crypto/pickles/limb_vector/constant.ml diff --git a/src/lib/pickles/limb_vector/constant.mli b/src/lib/crypto/pickles/limb_vector/constant.mli similarity index 100% rename from src/lib/pickles/limb_vector/constant.mli rename to src/lib/crypto/pickles/limb_vector/constant.mli diff --git a/src/lib/pickles/limb_vector/dune b/src/lib/crypto/pickles/limb_vector/dune similarity index 100% rename from src/lib/pickles/limb_vector/dune rename to src/lib/crypto/pickles/limb_vector/dune diff --git a/src/lib/pickles/limb_vector/limb_vector.mli b/src/lib/crypto/pickles/limb_vector/limb_vector.mli similarity index 100% rename from src/lib/pickles/limb_vector/limb_vector.mli rename to src/lib/crypto/pickles/limb_vector/limb_vector.mli diff --git a/src/lib/pickles/limb_vector/make.ml b/src/lib/crypto/pickles/limb_vector/make.ml similarity index 100% rename from src/lib/pickles/limb_vector/make.ml rename to src/lib/crypto/pickles/limb_vector/make.ml diff --git a/src/lib/pickles/limb_vector/make.mli b/src/lib/crypto/pickles/limb_vector/make.mli similarity index 100% rename from src/lib/pickles/limb_vector/make.mli rename to src/lib/crypto/pickles/limb_vector/make.mli diff --git a/src/lib/pickles/limb_vector/test/dune b/src/lib/crypto/pickles/limb_vector/test/dune similarity index 100% rename from src/lib/pickles/limb_vector/test/dune rename to src/lib/crypto/pickles/limb_vector/test/dune diff --git a/src/lib/pickles/limb_vector/test/test_constant.ml b/src/lib/crypto/pickles/limb_vector/test/test_constant.ml similarity index 100% rename from src/lib/pickles/limb_vector/test/test_constant.ml rename to src/lib/crypto/pickles/limb_vector/test/test_constant.ml diff --git a/src/lib/pickles/make_sponge.ml b/src/lib/crypto/pickles/make_sponge.ml similarity index 100% rename from src/lib/pickles/make_sponge.ml rename to src/lib/crypto/pickles/make_sponge.ml diff --git a/src/lib/pickles/make_sponge.mli b/src/lib/crypto/pickles/make_sponge.mli similarity index 100% rename from src/lib/pickles/make_sponge.mli rename to src/lib/crypto/pickles/make_sponge.mli diff --git a/src/lib/pickles/opt_sponge.ml b/src/lib/crypto/pickles/opt_sponge.ml similarity index 100% rename from src/lib/pickles/opt_sponge.ml rename to src/lib/crypto/pickles/opt_sponge.ml diff --git a/src/lib/pickles/opt_sponge.mli b/src/lib/crypto/pickles/opt_sponge.mli similarity index 100% rename from src/lib/pickles/opt_sponge.mli rename to src/lib/crypto/pickles/opt_sponge.mli diff --git a/src/lib/pickles/per_proof_witness.ml b/src/lib/crypto/pickles/per_proof_witness.ml similarity index 100% rename from src/lib/pickles/per_proof_witness.ml rename to src/lib/crypto/pickles/per_proof_witness.ml diff --git a/src/lib/pickles/per_proof_witness.mli b/src/lib/crypto/pickles/per_proof_witness.mli similarity index 100% rename from src/lib/pickles/per_proof_witness.mli rename to src/lib/crypto/pickles/per_proof_witness.mli diff --git a/src/lib/pickles/pickles.ml b/src/lib/crypto/pickles/pickles.ml similarity index 100% rename from src/lib/pickles/pickles.ml rename to src/lib/crypto/pickles/pickles.ml diff --git a/src/lib/pickles/pickles.mli b/src/lib/crypto/pickles/pickles.mli similarity index 100% rename from src/lib/pickles/pickles.mli rename to src/lib/crypto/pickles/pickles.mli diff --git a/src/lib/pickles/pickles_intf.mli b/src/lib/crypto/pickles/pickles_intf.mli similarity index 100% rename from src/lib/pickles/pickles_intf.mli rename to src/lib/crypto/pickles/pickles_intf.mli diff --git a/src/lib/pickles/plonk_checks/dune b/src/lib/crypto/pickles/plonk_checks/dune similarity index 100% rename from src/lib/pickles/plonk_checks/dune rename to src/lib/crypto/pickles/plonk_checks/dune diff --git a/src/lib/pickles/plonk_checks/gen_scalars/dune b/src/lib/crypto/pickles/plonk_checks/gen_scalars/dune similarity index 100% rename from src/lib/pickles/plonk_checks/gen_scalars/dune rename to src/lib/crypto/pickles/plonk_checks/gen_scalars/dune diff --git a/src/lib/pickles/plonk_checks/gen_scalars/gen_scalars.ml b/src/lib/crypto/pickles/plonk_checks/gen_scalars/gen_scalars.ml similarity index 100% rename from src/lib/pickles/plonk_checks/gen_scalars/gen_scalars.ml rename to src/lib/crypto/pickles/plonk_checks/gen_scalars/gen_scalars.ml diff --git a/src/lib/pickles/plonk_checks/plonk_checks.ml b/src/lib/crypto/pickles/plonk_checks/plonk_checks.ml similarity index 100% rename from src/lib/pickles/plonk_checks/plonk_checks.ml rename to src/lib/crypto/pickles/plonk_checks/plonk_checks.ml diff --git a/src/lib/pickles/plonk_checks/plonk_checks.mli b/src/lib/crypto/pickles/plonk_checks/plonk_checks.mli similarity index 100% rename from src/lib/pickles/plonk_checks/plonk_checks.mli rename to src/lib/crypto/pickles/plonk_checks/plonk_checks.mli diff --git a/src/lib/pickles/plonk_checks/scalars.ml b/src/lib/crypto/pickles/plonk_checks/scalars.ml similarity index 100% rename from src/lib/pickles/plonk_checks/scalars.ml rename to src/lib/crypto/pickles/plonk_checks/scalars.ml diff --git a/src/lib/pickles/plonk_curve_ops.ml b/src/lib/crypto/pickles/plonk_curve_ops.ml similarity index 100% rename from src/lib/pickles/plonk_curve_ops.ml rename to src/lib/crypto/pickles/plonk_curve_ops.ml diff --git a/src/lib/pickles/plonk_curve_ops.mli b/src/lib/crypto/pickles/plonk_curve_ops.mli similarity index 100% rename from src/lib/pickles/plonk_curve_ops.mli rename to src/lib/crypto/pickles/plonk_curve_ops.mli diff --git a/src/lib/pickles/proof.ml b/src/lib/crypto/pickles/proof.ml similarity index 100% rename from src/lib/pickles/proof.ml rename to src/lib/crypto/pickles/proof.ml diff --git a/src/lib/pickles/proof.mli b/src/lib/crypto/pickles/proof.mli similarity index 100% rename from src/lib/pickles/proof.mli rename to src/lib/crypto/pickles/proof.mli diff --git a/src/lib/pickles/proof_cache.ml b/src/lib/crypto/pickles/proof_cache.ml similarity index 100% rename from src/lib/pickles/proof_cache.ml rename to src/lib/crypto/pickles/proof_cache.ml diff --git a/src/lib/pickles/proof_cache.mli b/src/lib/crypto/pickles/proof_cache.mli similarity index 100% rename from src/lib/pickles/proof_cache.mli rename to src/lib/crypto/pickles/proof_cache.mli diff --git a/src/lib/pickles/pseudo/dune b/src/lib/crypto/pickles/pseudo/dune similarity index 100% rename from src/lib/pickles/pseudo/dune rename to src/lib/crypto/pickles/pseudo/dune diff --git a/src/lib/pickles/pseudo/pseudo.ml b/src/lib/crypto/pickles/pseudo/pseudo.ml similarity index 100% rename from src/lib/pickles/pseudo/pseudo.ml rename to src/lib/crypto/pickles/pseudo/pseudo.ml diff --git a/src/lib/pickles/pseudo/pseudo.mli b/src/lib/crypto/pickles/pseudo/pseudo.mli similarity index 100% rename from src/lib/pickles/pseudo/pseudo.mli rename to src/lib/crypto/pickles/pseudo/pseudo.mli diff --git a/src/lib/pickles/reduced_messages_for_next_proof_over_same_field.ml b/src/lib/crypto/pickles/reduced_messages_for_next_proof_over_same_field.ml similarity index 100% rename from src/lib/pickles/reduced_messages_for_next_proof_over_same_field.ml rename to src/lib/crypto/pickles/reduced_messages_for_next_proof_over_same_field.ml diff --git a/src/lib/pickles/reduced_messages_for_next_proof_over_same_field.mli b/src/lib/crypto/pickles/reduced_messages_for_next_proof_over_same_field.mli similarity index 100% rename from src/lib/pickles/reduced_messages_for_next_proof_over_same_field.mli rename to src/lib/crypto/pickles/reduced_messages_for_next_proof_over_same_field.mli diff --git a/src/lib/pickles/requests.ml b/src/lib/crypto/pickles/requests.ml similarity index 100% rename from src/lib/pickles/requests.ml rename to src/lib/crypto/pickles/requests.ml diff --git a/src/lib/pickles/requests.mli b/src/lib/crypto/pickles/requests.mli similarity index 100% rename from src/lib/pickles/requests.mli rename to src/lib/crypto/pickles/requests.mli diff --git a/src/lib/pickles/ro.ml b/src/lib/crypto/pickles/ro.ml similarity index 100% rename from src/lib/pickles/ro.ml rename to src/lib/crypto/pickles/ro.ml diff --git a/src/lib/pickles/ro.mli b/src/lib/crypto/pickles/ro.mli similarity index 100% rename from src/lib/pickles/ro.mli rename to src/lib/crypto/pickles/ro.mli diff --git a/src/lib/pickles/scalar_challenge.ml b/src/lib/crypto/pickles/scalar_challenge.ml similarity index 100% rename from src/lib/pickles/scalar_challenge.ml rename to src/lib/crypto/pickles/scalar_challenge.ml diff --git a/src/lib/pickles/scalar_challenge.mli b/src/lib/crypto/pickles/scalar_challenge.mli similarity index 100% rename from src/lib/pickles/scalar_challenge.mli rename to src/lib/crypto/pickles/scalar_challenge.mli diff --git a/src/lib/pickles/side_loaded_verification_key.ml b/src/lib/crypto/pickles/side_loaded_verification_key.ml similarity index 100% rename from src/lib/pickles/side_loaded_verification_key.ml rename to src/lib/crypto/pickles/side_loaded_verification_key.ml diff --git a/src/lib/pickles/side_loaded_verification_key.mli b/src/lib/crypto/pickles/side_loaded_verification_key.mli similarity index 100% rename from src/lib/pickles/side_loaded_verification_key.mli rename to src/lib/crypto/pickles/side_loaded_verification_key.mli diff --git a/src/lib/pickles/snarky_tests/README.md b/src/lib/crypto/pickles/snarky_tests/README.md similarity index 100% rename from src/lib/pickles/snarky_tests/README.md rename to src/lib/crypto/pickles/snarky_tests/README.md diff --git a/src/lib/pickles/snarky_tests/dune b/src/lib/crypto/pickles/snarky_tests/dune similarity index 100% rename from src/lib/pickles/snarky_tests/dune rename to src/lib/crypto/pickles/snarky_tests/dune diff --git a/src/lib/pickles/snarky_tests/examples/field.json b/src/lib/crypto/pickles/snarky_tests/examples/field.json similarity index 100% rename from src/lib/pickles/snarky_tests/examples/field.json rename to src/lib/crypto/pickles/snarky_tests/examples/field.json diff --git a/src/lib/pickles/snarky_tests/examples/output.json b/src/lib/crypto/pickles/snarky_tests/examples/output.json similarity index 100% rename from src/lib/pickles/snarky_tests/examples/output.json rename to src/lib/crypto/pickles/snarky_tests/examples/output.json diff --git a/src/lib/pickles/snarky_tests/examples/poseidon.json b/src/lib/crypto/pickles/snarky_tests/examples/poseidon.json similarity index 100% rename from src/lib/pickles/snarky_tests/examples/poseidon.json rename to src/lib/crypto/pickles/snarky_tests/examples/poseidon.json diff --git a/src/lib/pickles/snarky_tests/examples/range_gt.json b/src/lib/crypto/pickles/snarky_tests/examples/range_gt.json similarity index 100% rename from src/lib/pickles/snarky_tests/examples/range_gt.json rename to src/lib/crypto/pickles/snarky_tests/examples/range_gt.json diff --git a/src/lib/pickles/snarky_tests/examples/range_gte.json b/src/lib/crypto/pickles/snarky_tests/examples/range_gte.json similarity index 100% rename from src/lib/pickles/snarky_tests/examples/range_gte.json rename to src/lib/crypto/pickles/snarky_tests/examples/range_gte.json diff --git a/src/lib/pickles/snarky_tests/examples/range_lt.json b/src/lib/crypto/pickles/snarky_tests/examples/range_lt.json similarity index 100% rename from src/lib/pickles/snarky_tests/examples/range_lt.json rename to src/lib/crypto/pickles/snarky_tests/examples/range_lt.json diff --git a/src/lib/pickles/snarky_tests/examples/range_lte.json b/src/lib/crypto/pickles/snarky_tests/examples/range_lte.json similarity index 100% rename from src/lib/pickles/snarky_tests/examples/range_lte.json rename to src/lib/crypto/pickles/snarky_tests/examples/range_lte.json diff --git a/src/lib/pickles/snarky_tests/examples/simple.json b/src/lib/crypto/pickles/snarky_tests/examples/simple.json similarity index 100% rename from src/lib/pickles/snarky_tests/examples/simple.json rename to src/lib/crypto/pickles/snarky_tests/examples/simple.json diff --git a/src/lib/pickles/snarky_tests/examples/ternary.json b/src/lib/crypto/pickles/snarky_tests/examples/ternary.json similarity index 100% rename from src/lib/pickles/snarky_tests/examples/ternary.json rename to src/lib/crypto/pickles/snarky_tests/examples/ternary.json diff --git a/src/lib/pickles/snarky_tests/snarky_tests.ml b/src/lib/crypto/pickles/snarky_tests/snarky_tests.ml similarity index 90% rename from src/lib/pickles/snarky_tests/snarky_tests.ml rename to src/lib/crypto/pickles/snarky_tests/snarky_tests.ml index 090ccbd5e6de..1e3ff152c09b 100644 --- a/src/lib/pickles/snarky_tests/snarky_tests.ml +++ b/src/lib/crypto/pickles/snarky_tests/snarky_tests.ml @@ -580,67 +580,6 @@ module Improper_calls = struct ] end -(* Tests that check that the hashes of the protocol circuits remain the same *) -module Protocol_circuits = struct - (* Full because we want to be sure nothing changes *) - let proof_level = Genesis_constants.Proof_level.Full - - let signature_kind = Mina_signature_kind.Testnet - - let constraint_constants = Genesis_constants.Compiled.constraint_constants - - let print_hash print expected digest : unit = - if print then ( - Format.printf "expected:\n%s\n" expected ; - Format.printf "obtained:\n%s\n" digest ) - - let blockchain () : unit = - let expected = "36786c300e37c2a2f1341ad6374aa113" in - let digest = - Blockchain_snark.Blockchain_snark_state.constraint_system_digests - in - let digest = digest ~proof_level ~constraint_constants () in - assert (List.length digest = 1) ; - let _, hash = List.hd_exn digest in - let digest = Md5.to_hex hash in - - let digests_match = String.(digest = expected) in - print_hash (not digests_match) expected digest ; - assert digests_match ; - () - - let transaction () : unit = - let expected1 = "b8879f677f622a1d86648030701f43e1" in - let expected2 = "740db2397b0b01806a48f061a2e2b063" in - let digest = - Transaction_snark.constraint_system_digests ~signature_kind - ~constraint_constants () - in - (* these are for the Base and Merge branches, if more branches were added to the digest this line should be updated *) - let hash1, hash2 = - match digest with - | [ (_, a); (_, b) ] -> - (a, b) - | _ -> - failwith "should have been length 2" - in - let digest1 = Core.Md5.to_hex hash1 in - let digest2 = Core.Md5.to_hex hash2 in - - let check = String.(digest1 = expected1) in - print_hash (not check) expected1 digest1 ; - assert check ; - let check = String.(digest2 = expected2) in - print_hash (not check) expected2 digest2 ; - assert check ; - () - - let tests = - [ ("test blockchain circuit", `Quick, blockchain) - ; ("test transaction circuit", `Quick, transaction) - ] -end - (* run tests *) let api_tests = @@ -659,7 +598,6 @@ let () = ; ("circuit tests", circuit_tests) ; ("As_prover tests", As_prover_circuits.as_prover_tests) ; ("range checks", range_checks) - ; ("protocol circuits", Protocol_circuits.tests) ; ("improper calls", Improper_calls.tests) (* We run the pure functions before and after other tests, because we've had bugs in the past where it would only work after the global state was initialized by an API function diff --git a/src/lib/pickles/sponge_inputs.ml b/src/lib/crypto/pickles/sponge_inputs.ml similarity index 100% rename from src/lib/pickles/sponge_inputs.ml rename to src/lib/crypto/pickles/sponge_inputs.ml diff --git a/src/lib/pickles/sponge_inputs.mli b/src/lib/crypto/pickles/sponge_inputs.mli similarity index 100% rename from src/lib/pickles/sponge_inputs.mli rename to src/lib/crypto/pickles/sponge_inputs.mli diff --git a/src/lib/pickles/step.ml b/src/lib/crypto/pickles/step.ml similarity index 100% rename from src/lib/pickles/step.ml rename to src/lib/crypto/pickles/step.ml diff --git a/src/lib/crypto/pickles/step.mli b/src/lib/crypto/pickles/step.mli new file mode 100644 index 000000000000..eb12c91ed979 --- /dev/null +++ b/src/lib/crypto/pickles/step.mli @@ -0,0 +1,179 @@ +(** {1 Step - Step Circuit Prover Generation} + + This module generates provers for step circuits. Step circuits run on + the Tick (Vesta) curve and execute application logic while verifying + predecessor wrap proofs. + + {2 Overview} + + The [Make] functor creates a step prover function [f] that: + 1. Executes the inductive rule's main function + 2. Verifies predecessor wrap proofs (if any) + 3. Produces a step proof ready for wrapping + + {2 Relationship to Wrap} + + {v + Step Proof Wrap Proof + ┌─────────────────┐ ┌─────────────────┐ + │ Application │ │ Verifies step │ + │ logic │ ───► │ proof │ + │ │ │ │ + │ Verifies wrap │ │ Uniform format │ + │ proofs │ │ for recursion │ + └─────────────────┘ └─────────────────┘ + v} + + {2 Output Type} + + The step prover returns a tuple containing: + - Base step proof with statement and underlying kimchi proof + - Return value from the rule's main function + - Auxiliary value (prover-only data) + - Predecessor proof widths vector +*) + +open Pickles_types + +(** Functor to create a step prover for a given inductive rule. + + @param Inductive_rule The interface defining the rule's structure including + predecessor proof tags, main function, and public input/output types. + The rule specifies which proofs to verify and the application logic. + + @param A The type of the circuit statement variable (used inside the circuit). + + @param A_value The type of the circuit statement value (concrete values + outside the circuit). + + @param Max_proofs_verified Type-level natural number representing the maximum + number of predecessor proofs this rule verifies. This determines the + fixed-size vectors used for proof data. *) +module Make + (Inductive_rule : Inductive_rule.Intf with type 'a proof = 'a Proof.t) + (A : Pickles_types.Poly_types.T0) (A_value : sig + type t + end) + (Max_proofs_verified : Pickles_types.Nat.Add.Intf_transparent) : sig + (** Compiled step branch data containing the circuit, domains, and requests + for this rule. Created by {!Step_branch_data.create}. *) + module Step_branch_data : module type of Step_branch_data.Make (Inductive_rule) + + (** [f ?handler ~proof_cache branch_data statement ~maxes ~prevs_length + ~self ~step_domains ~feature_flags ~self_dlog_plonk_index + ~public_input ~auxiliary_typ pk wrap_vk] + + Generate a step proof by executing the inductive rule. + + @param handler Optional request handler for providing witness values + during proving. Used to supply prover-only data like predecessor proofs. + + @param proof_cache Optional cache to store/retrieve proving artifacts, + avoiding redundant computation when proving similar statements. + + @param branch_data Compiled circuit data for this rule branch, containing + the constraint system, domain configuration, and request types. + + @param statement The public statement value to prove (e.g., blockchain + state hash). + + @param maxes Module encoding the maximum proof counts for each predecessor + proof system. Used for padding vectors to fixed sizes. + + @param prevs_length Type-level witness for the number of predecessor proofs. + + @param self Tag identifying this proof system, used for self-references + in recursive rules. + + @param step_domains Domain configurations for all step circuit branches, + needed for computing verification key hashes. + + @param feature_flags Circuit feature flags (lookups, runtime tables, etc.) + that affect the proof structure. + + @param self_dlog_plonk_index Verification key polynomial evaluations for + this proof system, used in the recursive verifier. + + @param public_input Specification of the public input structure (input only, + output only, or both). + + @param auxiliary_typ Type for auxiliary prover-only values returned by + the rule's main function. + + @param pk The step circuit proving key (Vesta-based). + + @param wrap_vk The wrap circuit verification key, needed for verifying + that predecessor proofs will pass wrap verification. + + @return A promise of: + - The step proof containing the statement and kimchi proof + - The return value from the rule's main function + - The auxiliary value (prover-only data) + - Vector of predecessor proof widths (number of proofs each verified) *) + val f : + ?handler: + ( Snarky_backendless.Request.request + -> Snarky_backendless.Request.response ) + -> proof_cache:Proof_cache.t option + -> ( A.t + , A_value.t + , 'ret_var + , 'ret_value + , 'auxiliary_var + , 'auxiliary_value + , Max_proofs_verified.n + , 'self_branches + , 'prev_vars + , 'prev_values + , 'local_widths + , 'local_heights ) + Step_branch_data.t + -> A_value.t + -> maxes: + (module Pickles_types.Hlist.Maxes.S + with type length = Max_proofs_verified.n + and type ns = 'max_local_max_proof_verifieds ) + -> prevs_length:('prev_vars, 'prevs_length) Pickles_types.Hlist.Length.t + -> self:('a, 'b, 'c, 'd) Tag.t + -> step_domains: + (Import.Domains.t, 'self_branches) Pickles_types.Vector.t Promise.t + -> feature_flags:Opt.Flag.t Plonk_types.Features.Full.t + -> self_dlog_plonk_index: + Backend.Tick.Inner_curve.Affine.t array + Pickles_types.Plonk_verification_key_evals.t + -> public_input: + ( 'var + , 'value + , A.t + , A_value.t + , 'ret_var + , 'ret_value ) + Inductive_rule.public_input + -> auxiliary_typ:('auxiliary_var, 'auxiliary_value) Impls.Step.Typ.t + -> Kimchi_pasta.Vesta_based_plonk.Keypair.t + -> Impls.Wrap.Verification_key.t + -> ( ( 'value + , ( Unfinalized.Constant.t + , Max_proofs_verified.n ) + Pickles_types.Vector.t + , (Backend.Tock.Curve.Affine.t, 'prevs_length) Pickles_types.Vector.t + , ( Import.Challenge.Constant.t Import.Types.Scalar_challenge.t + Import.Types.Bulletproof_challenge.t + Import.Types.Step_bp_vec.t + , 'prevs_length ) + Pickles_types.Vector.t + , 'local_widths + Pickles_types.Hlist.H1.T + (Proof.Base.Messages_for_next_proof_over_same_field.Wrap) + .t + , ( ( Backend.Tock.Field.t + , Backend.Tock.Field.t array ) + Pickles_types.Plonk_types.All_evals.t + , Max_proofs_verified.n ) + Pickles_types.Vector.t ) + Proof.Base.Step.t + * 'ret_value + * 'auxiliary_value + * (int, 'prevs_length) Pickles_types.Vector.t ) + Promise.t +end diff --git a/src/lib/pickles/step_branch_data.ml b/src/lib/crypto/pickles/step_branch_data.ml similarity index 100% rename from src/lib/pickles/step_branch_data.ml rename to src/lib/crypto/pickles/step_branch_data.ml diff --git a/src/lib/pickles/step_branch_data.mli b/src/lib/crypto/pickles/step_branch_data.mli similarity index 100% rename from src/lib/pickles/step_branch_data.mli rename to src/lib/crypto/pickles/step_branch_data.mli diff --git a/src/lib/pickles/step_main.ml b/src/lib/crypto/pickles/step_main.ml similarity index 100% rename from src/lib/pickles/step_main.ml rename to src/lib/crypto/pickles/step_main.ml diff --git a/src/lib/pickles/step_main.mli b/src/lib/crypto/pickles/step_main.mli similarity index 100% rename from src/lib/pickles/step_main.mli rename to src/lib/crypto/pickles/step_main.mli diff --git a/src/lib/pickles/step_main_inputs.ml b/src/lib/crypto/pickles/step_main_inputs.ml similarity index 100% rename from src/lib/pickles/step_main_inputs.ml rename to src/lib/crypto/pickles/step_main_inputs.ml diff --git a/src/lib/pickles/step_main_inputs.mli b/src/lib/crypto/pickles/step_main_inputs.mli similarity index 100% rename from src/lib/pickles/step_main_inputs.mli rename to src/lib/crypto/pickles/step_main_inputs.mli diff --git a/src/lib/pickles/step_verifier.ml b/src/lib/crypto/pickles/step_verifier.ml similarity index 100% rename from src/lib/pickles/step_verifier.ml rename to src/lib/crypto/pickles/step_verifier.ml diff --git a/src/lib/pickles/step_verifier.mli b/src/lib/crypto/pickles/step_verifier.mli similarity index 100% rename from src/lib/pickles/step_verifier.mli rename to src/lib/crypto/pickles/step_verifier.mli diff --git a/src/lib/pickles/tag.ml b/src/lib/crypto/pickles/tag.ml similarity index 100% rename from src/lib/pickles/tag.ml rename to src/lib/crypto/pickles/tag.ml diff --git a/src/lib/pickles/tag.mli b/src/lib/crypto/pickles/tag.mli similarity index 100% rename from src/lib/pickles/tag.mli rename to src/lib/crypto/pickles/tag.mli diff --git a/src/lib/pickles/test/chunked_circuits/chunks2.ml b/src/lib/crypto/pickles/test/chunked_circuits/chunks2.ml similarity index 100% rename from src/lib/pickles/test/chunked_circuits/chunks2.ml rename to src/lib/crypto/pickles/test/chunked_circuits/chunks2.ml diff --git a/src/lib/pickles/test/chunked_circuits/chunks4.ml b/src/lib/crypto/pickles/test/chunked_circuits/chunks4.ml similarity index 100% rename from src/lib/pickles/test/chunked_circuits/chunks4.ml rename to src/lib/crypto/pickles/test/chunked_circuits/chunks4.ml diff --git a/src/lib/pickles/test/chunked_circuits/chunks8.ml b/src/lib/crypto/pickles/test/chunked_circuits/chunks8.ml similarity index 100% rename from src/lib/pickles/test/chunked_circuits/chunks8.ml rename to src/lib/crypto/pickles/test/chunked_circuits/chunks8.ml diff --git a/src/lib/pickles/test/chunked_circuits/dune b/src/lib/crypto/pickles/test/chunked_circuits/dune similarity index 100% rename from src/lib/pickles/test/chunked_circuits/dune rename to src/lib/crypto/pickles/test/chunked_circuits/dune diff --git a/src/lib/pickles/test/dune b/src/lib/crypto/pickles/test/dune similarity index 98% rename from src/lib/pickles/test/dune rename to src/lib/crypto/pickles/test/dune index ae1c083e1537..00fe3e4c9246 100644 --- a/src/lib/pickles/test/dune +++ b/src/lib/crypto/pickles/test/dune @@ -1,5 +1,6 @@ (tests (names + test_common test_impls test_no_sideloaded test_opt_sponge diff --git a/src/lib/pickles/test/optional_custom_gates/dune b/src/lib/crypto/pickles/test/optional_custom_gates/dune similarity index 100% rename from src/lib/pickles/test/optional_custom_gates/dune rename to src/lib/crypto/pickles/test/optional_custom_gates/dune diff --git a/src/lib/pickles/test/optional_custom_gates/lookup_range_check.ml b/src/lib/crypto/pickles/test/optional_custom_gates/lookup_range_check.ml similarity index 100% rename from src/lib/pickles/test/optional_custom_gates/lookup_range_check.ml rename to src/lib/crypto/pickles/test/optional_custom_gates/lookup_range_check.ml diff --git a/src/lib/pickles/test/optional_custom_gates/pickles_test_optional_custom_gates.ml b/src/lib/crypto/pickles/test/optional_custom_gates/pickles_test_optional_custom_gates.ml similarity index 100% rename from src/lib/pickles/test/optional_custom_gates/pickles_test_optional_custom_gates.ml rename to src/lib/crypto/pickles/test/optional_custom_gates/pickles_test_optional_custom_gates.ml diff --git a/src/lib/pickles/test/optional_custom_gates/test_fix_domains.ml b/src/lib/crypto/pickles/test/optional_custom_gates/test_fix_domains.ml similarity index 100% rename from src/lib/pickles/test/optional_custom_gates/test_fix_domains.ml rename to src/lib/crypto/pickles/test/optional_custom_gates/test_fix_domains.ml diff --git a/src/lib/pickles/test/optional_custom_gates/test_gadgets/dune b/src/lib/crypto/pickles/test/optional_custom_gates/test_gadgets/dune similarity index 100% rename from src/lib/pickles/test/optional_custom_gates/test_gadgets/dune rename to src/lib/crypto/pickles/test/optional_custom_gates/test_gadgets/dune diff --git a/src/lib/pickles/test/optional_custom_gates/test_gadgets/pickles_optional_custom_gates_circuits.ml b/src/lib/crypto/pickles/test/optional_custom_gates/test_gadgets/pickles_optional_custom_gates_circuits.ml similarity index 100% rename from src/lib/pickles/test/optional_custom_gates/test_gadgets/pickles_optional_custom_gates_circuits.ml rename to src/lib/crypto/pickles/test/optional_custom_gates/test_gadgets/pickles_optional_custom_gates_circuits.ml diff --git a/src/lib/crypto/pickles/test/test_common.ml b/src/lib/crypto/pickles/test/test_common.ml new file mode 100644 index 000000000000..9d34a35ca9c3 --- /dev/null +++ b/src/lib/crypto/pickles/test/test_common.ml @@ -0,0 +1,494 @@ +(** Testing + ------- + + Component: Pickles + Subject: Test Common module utilities + Invocation: \ + dune exec src/lib/crypto/pickles/test/test_common.exe +*) + +(** {2 Domain Configuration Tests} *) + +let test_wrap_domains_0_proofs () = + let domains = Common.wrap_domains ~proofs_verified:0 in + let log2_size = match domains.h with Pow_2_roots_of_unity n -> n in + Alcotest.(check int) "domain log2 size for 0 proofs" 13 log2_size + +let test_wrap_domains_1_proof () = + let domains = Common.wrap_domains ~proofs_verified:1 in + let log2_size = match domains.h with Pow_2_roots_of_unity n -> n in + Alcotest.(check int) "domain log2 size for 1 proof" 14 log2_size + +let test_wrap_domains_2_proofs () = + let domains = Common.wrap_domains ~proofs_verified:2 in + let log2_size = match domains.h with Pow_2_roots_of_unity n -> n in + Alcotest.(check int) "domain log2 size for 2 proofs" 15 log2_size + +let test_wrap_domains_invalid () = + (* Test that wrap_domains raises for any proofs_verified > 2 *) + let invalid_values = [ 3; 4; 5; 10; 100; 1000 ] in + List.iter invalid_values ~f:(fun proofs_verified -> + let raises = + try + let (_ : Pickles_base.Domains.t) = + Common.wrap_domains ~proofs_verified + in + false + with _ -> true + in + Alcotest.(check bool) + (Printf.sprintf "wrap_domains raises for proofs_verified=%d" + proofs_verified ) + true raises ) + +let test_actual_wrap_domain_size_inverse () = + for proofs_verified = 0 to 2 do + let domains = Common.wrap_domains ~proofs_verified in + let log2 = match domains.h with Pow_2_roots_of_unity n -> n in + let result = Common.actual_wrap_domain_size ~log_2_domain_size:log2 in + Alcotest.(check int) + (Printf.sprintf "inverse for proofs_verified=%d" proofs_verified) + proofs_verified + (Pickles_base.Proofs_verified.to_int result) + done + +(** {2 Bit/Byte Conversion Tests} *) + +let test_bits_to_bytes_empty () = + Alcotest.(check string) + "empty list produces empty string" "" (Common.bits_to_bytes []) + +let test_bits_to_bytes_all_zeros () = + let bits = [ false; false; false; false; false; false; false; false ] in + Alcotest.(check string) "all zeros byte" "\x00" (Common.bits_to_bytes bits) + +let test_bits_to_bytes_all_ones () = + let bits = [ true; true; true; true; true; true; true; true ] in + Alcotest.(check string) "all ones byte" "\xff" (Common.bits_to_bytes bits) + +let test_bits_to_bytes_value_1 () = + (* LSB first: bit 0 = true means value 1 *) + let bits = [ true; false; false; false; false; false; false; false ] in + Alcotest.(check string) + "value 1 (LSB first)" "\x01" + (Common.bits_to_bytes bits) + +let test_bits_to_bytes_value_128 () = + let bits = [ false; false; false; false; false; false; false; true ] in + Alcotest.(check string) + "value 128 (MSB set)" "\x80" + (Common.bits_to_bytes bits) + +let test_bits_to_bytes_multiple () = + let bits = + (* First byte: 0x01, Second byte: 0x02 *) + [ true + ; false + ; false + ; false + ; false + ; false + ; false + ; false + ; false + ; true + ; false + ; false + ; false + ; false + ; false + ; false + ] + in + Alcotest.(check string) + "multiple bytes" "\x01\x02" + (Common.bits_to_bytes bits) + +let test_bits_to_bytes_partial () = + (* Only 4 bits: should produce one byte with value 5 (0101 in binary) *) + let bits = [ true; false; true; false ] in + Alcotest.(check string) + "partial byte (4 bits)" "\x05" + (Common.bits_to_bytes bits) + +let test_bits_to_bytes_roundtrip () = + (* Test that converting known byte values works correctly *) + let test_byte value = + let bits = List.init 8 ~f:(fun i -> (value lsr i) land 1 = 1) in + let result = Common.bits_to_bytes bits in + Alcotest.(check int) + (Printf.sprintf "roundtrip for byte %d" value) + value + (Char.to_int result.[0]) + in + List.iter [ 0; 1; 127; 128; 255 ] ~f:test_byte + +(** {2 finite_exn Tests} *) + +let test_finite_exn_finite () = + let x, y = Common.finite_exn (Kimchi_types.Finite (42, 99)) in + Alcotest.(check int) "x coordinate" 42 x ; + Alcotest.(check int) "y coordinate" 99 y + +let test_finite_exn_infinity () = + let raises = + try + let (_ : int * int) = Common.finite_exn Kimchi_types.Infinity in + false + with Invalid_argument _ -> true + in + Alcotest.(check bool) "finite_exn raises for Infinity" true raises + +(** {2 Max_degree Constants Tests} *) + +let test_max_degree_step_consistency () = + Alcotest.(check int) + "step equals 2^step_log2" + (1 lsl Common.Max_degree.step_log2) + Common.Max_degree.step + +let test_max_degree_positive () = + Alcotest.(check bool) "step > 0" true (Common.Max_degree.step > 0) ; + Alcotest.(check bool) "step_log2 > 0" true (Common.Max_degree.step_log2 > 0) ; + Alcotest.(check bool) "wrap_log2 > 0" true (Common.Max_degree.wrap_log2 > 0) + +(** {2 FFT Shifts Tests} *) + +let test_tick_shifts_non_empty () = + let shifts = Common.tick_shifts ~log2_size:10 in + Alcotest.(check bool) + "tick_shifts returns non-empty array" true + (Array.length shifts > 0) + +let test_tock_shifts_non_empty () = + let shifts = Common.tock_shifts ~log2_size:10 in + Alcotest.(check bool) + "tock_shifts returns non-empty array" true + (Array.length shifts > 0) + +let test_tick_shifts_memoized () = + let shifts1 = Common.tick_shifts ~log2_size:12 in + let shifts2 = Common.tick_shifts ~log2_size:12 in + Alcotest.(check bool) + "tick_shifts is memoized" true + (Core_kernel.phys_equal shifts1 shifts2) + +let test_tock_shifts_memoized () = + let shifts1 = Common.tock_shifts ~log2_size:12 in + let shifts2 = Common.tock_shifts ~log2_size:12 in + Alcotest.(check bool) + "tock_shifts is memoized" true + (Core_kernel.phys_equal shifts1 shifts2) + +let test_tick_shifts_different_sizes () = + let shifts1 = Common.tick_shifts ~log2_size:10 in + let shifts2 = Common.tick_shifts ~log2_size:11 in + Alcotest.(check bool) + "different sizes produce different arrays" false + (Core_kernel.phys_equal shifts1 shifts2) + +(** {2 Profiling Tests} *) + +let test_when_profiling_default () = + (* Test that when_profiling returns the correct argument based on env. + We test the logic by checking that the function returns one of the + two provided values (we can't easily control env in tests). *) + let result = Common.when_profiling "profiling" "default" in + let is_valid = + String.equal result "profiling" || String.equal result "default" + in + Alcotest.(check bool) "returns one of the two provided values" true is_valid + +let test_time_returns_result () = + let result = Common.time "test" (fun () -> 42) in + Alcotest.(check int) "time executes function and returns result" 42 result + +let test_time_preserves_exceptions () = + let raises = + try + let (_ : unit) = + Common.time "test" (fun () -> failwith "test exception") + in + false + with Failure msg -> String.equal msg "test exception" + in + Alcotest.(check bool) "time preserves exceptions" true raises + +let test_time_executes_side_effects () = + let counter = ref 0 in + let (_ : int) = Common.time "test" (fun () -> incr counter ; !counter) in + Alcotest.(check int) "time executes side effects" 1 !counter + +(** {2 IPA Regression Tests} *) + +(* Helper to create a scalar challenge from two int64 limbs *) +let make_scalar_challenge (l0 : int64) (l1 : int64) = + let challenge : Limb_vector.Challenge.Constant.t = + Pickles_types.Vector.[ l0; l1 ] + in + Kimchi_backend_common.Scalar_challenge.create challenge + +(* Wrap.endo_to_field regression tests *) +let test_wrap_endo_to_field_1_2 () = + let sc = make_scalar_challenge 1L 2L in + let result = Common.Ipa.Wrap.endo_to_field sc in + let expected = + "2719017978331529270847521198778747340188358548055489578169293623337352440597" + in + Alcotest.(check string) + "Wrap.endo_to_field([1,2])" expected + (Backend.Tock.Field.to_string result) + +let test_wrap_endo_to_field_zero () = + let sc = make_scalar_challenge 0L 0L in + let result = Common.Ipa.Wrap.endo_to_field sc in + let expected = + "13464412046258283063145842131498198913757338040311201334259493836276836242548" + in + Alcotest.(check string) + "Wrap.endo_to_field([0,0])" expected + (Backend.Tock.Field.to_string result) + +let test_wrap_endo_to_field_hex () = + let sc = make_scalar_challenge 0xDEADBEEFCAFEBABEL 0x123456789ABCDEF0L in + let result = Common.Ipa.Wrap.endo_to_field sc in + let expected = + "3157699691692010035895060508840773759741805810852272103979321912060089824709" + in + Alcotest.(check string) + "Wrap.endo_to_field([0xDEAD...,0x1234...])" expected + (Backend.Tock.Field.to_string result) + +(* Step.endo_to_field regression tests *) +let test_step_endo_to_field_1_2 () = + let sc = make_scalar_challenge 1L 2L in + let result = Common.Ipa.Step.endo_to_field sc in + let expected = + "6572569482697360481513594310601353836203307207270872842979315960925898757767" + in + Alcotest.(check string) + "Step.endo_to_field([1,2])" expected + (Backend.Tick.Field.to_string result) + +let test_step_endo_to_field_zero () = + let sc = make_scalar_challenge 0L 0L in + let result = Common.Ipa.Step.endo_to_field sc in + let expected = + "11459188392808088023716231022519329373779186861103795231732712461615739579512" + in + Alcotest.(check string) + "Step.endo_to_field([0,0])" expected + (Backend.Tick.Field.to_string result) + +let test_step_endo_to_field_hex () = + let sc = make_scalar_challenge 0xDEADBEEFCAFEBABEL 0x123456789ABCDEF0L in + let result = Common.Ipa.Step.endo_to_field sc in + let expected = + "14692341689041640409374680542529680697373469829962348207529812283743150813271" + in + Alcotest.(check string) + "Step.endo_to_field([0xDEAD...,0x1234...])" expected + (Backend.Tick.Field.to_string result) + +(* Test that Wrap and Step produce different results for the same input *) +let test_wrap_step_endo_differ () = + let sc = make_scalar_challenge 42L 123L in + let wrap_result = Common.Ipa.Wrap.endo_to_field sc in + let step_result = Common.Ipa.Step.endo_to_field sc in + let wrap_str = Backend.Tock.Field.to_string wrap_result in + let step_str = Backend.Tick.Field.to_string step_result in + Alcotest.(check bool) + "Wrap and Step endo_to_field produce different results" true + (not (String.equal wrap_str step_str)) + +(* compute_challenge regression tests - verifies compute_challenge equals endo_to_field *) +let test_wrap_compute_challenge_equals_endo () = + let sc = make_scalar_challenge 1L 2L in + let challenge_result = Common.Ipa.Wrap.compute_challenge sc in + let endo_result = Common.Ipa.Wrap.endo_to_field sc in + Alcotest.(check string) + "Wrap.compute_challenge equals endo_to_field" + (Backend.Tock.Field.to_string endo_result) + (Backend.Tock.Field.to_string challenge_result) + +let test_step_compute_challenge_equals_endo () = + let sc = make_scalar_challenge 1L 2L in + let challenge_result = Common.Ipa.Step.compute_challenge sc in + let endo_result = Common.Ipa.Step.endo_to_field sc in + Alcotest.(check string) + "Step.compute_challenge equals endo_to_field" + (Backend.Tick.Field.to_string endo_result) + (Backend.Tick.Field.to_string challenge_result) + +(* compute_challenges regression tests using Dummy challenges *) +module Dummy = Pickles__Dummy + +(* Expected values for Wrap.compute_challenges (15 elements) *) +let wrap_compute_challenges_expected = + [| "7048930911355605315581096707847688535149125545610393399193999502037687877674" + ; "5945064094191074331354717685811267396540107129706976521474145740173204364019" + ; "20315491820009986698838977727629973056499886675589920515484193128018854963801" + ; "375929229548289966749422550601268097380795636681684498450629863247980915833" + ; "19682218496321100578766622300447982536359891434050417209656101638029891689955" + ; "516598185966802396400068849903674663130928531697254466925429658676832606723" + ; "23729760760563685146228624125180554011222918208600079938584869191222807389336" + ; "11155777282048225577422475738306432747575091690354122761439079853293714987855" + ; "24977767586983413450834833875715786066408803952857478894197349635213480783870" + ; "2813347787496113574506936084777563965225649411532015639663405402448028142689" + ; "22626141769059119580550800305467929090916842064220293932303261732461616709448" + ; "18748107085456859495495117012311103043200881556220793307463332157672741458218" + ; "22196219950929618042921320796106738233125483954115679355597636800196070731081" + ; "13054421325261400802177761929986025883530654947859503505174678618288142017333" + ; "4799483385651443229337780097631636300491234601736019220096005875687579936102" + |] + +let test_wrap_compute_challenges_all () = + let chals_computed = + Common.Ipa.Wrap.compute_challenges Dummy.Ipa.Wrap.challenges + in + let chals_list = Pickles_types.Vector.to_list chals_computed in + let chals_strings = + Core_kernel.List.map chals_list ~f:Backend.Tock.Field.to_string + in + Alcotest.(check int) + "Wrap.compute_challenges length" 15 + (Core_kernel.List.length chals_list) ; + (* First print all mismatches *) + let has_mismatch = ref false in + Core_kernel.List.iteri chals_strings ~f:(fun i actual -> + let expected = wrap_compute_challenges_expected.(i) in + if not (String.equal expected actual) then ( + Printf.printf " ; \"%s\" (* %d *)\n" actual i ; + has_mismatch := true ) ) ; + (* Then check all values *) + if !has_mismatch then + Alcotest.fail "Wrap.compute_challenges values mismatch (see above)" + +(* Expected values for Step.compute_challenges (16 elements) *) +let step_compute_challenges_expected = + [| "7495663189519076456878324238415292467012945870012832444850485639358393479268" + ; "388698164585548974934817724189574785139851269733029709355370076076616265220" + ; "16211690239820640934419707440800640715772094470488029352806394140849460499366" + ; "19660767386333838085549000243591542798150442487419024559562124380763066947223" + ; "3804191934641277266825939456740395716006727418575334949907761799006951240328" + ; "18570333327677121098853677483616132304851142649800358431192661910558495770797" + ; "2885988345150694614354230616472074099998052091287012799686730182775015809772" + ; "26941570725129557194472457464313030750768597876248657068167847720705824432410" + ; "11031939102021548268582687527395546394462552178834987820391978709224042719328" + ; "6635159214963234537223243370996260502046741015718543202847863438182226573507" + ; "3123982144639717810070104930175949984822659675428941158107237873724846395068" + ; "22100131743595904534278023371975366782332995882031444298009028129572218436492" + ; "26699469737251775041171879406801327630656476958614785279587470558078266497754" + ; "14931081622979512493702242057574822158556931395424601456904686553568978135221" + ; "13215496949030789875154586717734663769533434569051642948945201035069761057380" + ; "9608414576668132631768032439576786729901517711700624403511207659611494885692" + |] + +let test_step_compute_challenges_all () = + let chals_computed = + Common.Ipa.Step.compute_challenges Dummy.Ipa.Step.challenges + in + let chals_list = Pickles_types.Vector.to_list chals_computed in + let chals_strings = + Core_kernel.List.map chals_list ~f:Backend.Tick.Field.to_string + in + Alcotest.(check int) + "Step.compute_challenges length" 16 + (Core_kernel.List.length chals_list) ; + (* First print all mismatches *) + let has_mismatch = ref false in + Core_kernel.List.iteri chals_strings ~f:(fun i actual -> + let expected = step_compute_challenges_expected.(i) in + if not (String.equal expected actual) then ( + Printf.printf " ; \"%s\" (* %d *)\n" actual i ; + has_mismatch := true ) ) ; + (* Then check all values *) + if !has_mismatch then + Alcotest.fail "Step.compute_challenges values mismatch (see above)" + +(** {2 Test Suite Registration} *) + +let domain_tests = + [ Alcotest.test_case "wrap_domains 0 proofs" `Quick test_wrap_domains_0_proofs + ; Alcotest.test_case "wrap_domains 1 proof" `Quick test_wrap_domains_1_proof + ; Alcotest.test_case "wrap_domains 2 proofs" `Quick test_wrap_domains_2_proofs + ; Alcotest.test_case "wrap_domains invalid" `Quick test_wrap_domains_invalid + ; Alcotest.test_case "actual_wrap_domain_size inverse" `Quick + test_actual_wrap_domain_size_inverse + ] + +let bits_to_bytes_tests = + [ Alcotest.test_case "empty" `Quick test_bits_to_bytes_empty + ; Alcotest.test_case "all zeros" `Quick test_bits_to_bytes_all_zeros + ; Alcotest.test_case "all ones" `Quick test_bits_to_bytes_all_ones + ; Alcotest.test_case "value 1" `Quick test_bits_to_bytes_value_1 + ; Alcotest.test_case "value 128" `Quick test_bits_to_bytes_value_128 + ; Alcotest.test_case "multiple bytes" `Quick test_bits_to_bytes_multiple + ; Alcotest.test_case "partial byte" `Quick test_bits_to_bytes_partial + ; Alcotest.test_case "roundtrip" `Quick test_bits_to_bytes_roundtrip + ] + +let finite_exn_tests = + [ Alcotest.test_case "finite" `Quick test_finite_exn_finite + ; Alcotest.test_case "infinity" `Quick test_finite_exn_infinity + ] + +let max_degree_tests = + [ Alcotest.test_case "step consistency" `Quick + test_max_degree_step_consistency + ; Alcotest.test_case "positive values" `Quick test_max_degree_positive + ] + +let shifts_tests = + [ Alcotest.test_case "tick_shifts non-empty" `Quick test_tick_shifts_non_empty + ; Alcotest.test_case "tock_shifts non-empty" `Quick test_tock_shifts_non_empty + ; Alcotest.test_case "tick_shifts memoized" `Quick test_tick_shifts_memoized + ; Alcotest.test_case "tock_shifts memoized" `Quick test_tock_shifts_memoized + ; Alcotest.test_case "different sizes" `Quick test_tick_shifts_different_sizes + ] + +let profiling_tests = + [ Alcotest.test_case "when_profiling default" `Quick + test_when_profiling_default + ; Alcotest.test_case "time returns result" `Quick test_time_returns_result + ; Alcotest.test_case "time preserves exceptions" `Quick + test_time_preserves_exceptions + ; Alcotest.test_case "time executes side effects" `Quick + test_time_executes_side_effects + ] + +let ipa_tests = + [ Alcotest.test_case "Wrap.endo_to_field [1,2]" `Quick + test_wrap_endo_to_field_1_2 + ; Alcotest.test_case "Wrap.endo_to_field [0,0]" `Quick + test_wrap_endo_to_field_zero + ; Alcotest.test_case "Wrap.endo_to_field [hex]" `Quick + test_wrap_endo_to_field_hex + ; Alcotest.test_case "Step.endo_to_field [1,2]" `Quick + test_step_endo_to_field_1_2 + ; Alcotest.test_case "Step.endo_to_field [0,0]" `Quick + test_step_endo_to_field_zero + ; Alcotest.test_case "Step.endo_to_field [hex]" `Quick + test_step_endo_to_field_hex + ; Alcotest.test_case "Wrap and Step endo differ" `Quick + test_wrap_step_endo_differ + ; Alcotest.test_case "Wrap.compute_challenge = endo" `Quick + test_wrap_compute_challenge_equals_endo + ; Alcotest.test_case "Step.compute_challenge = endo" `Quick + test_step_compute_challenge_equals_endo + ; Alcotest.test_case "Wrap.compute_challenges all" `Quick + test_wrap_compute_challenges_all + ; Alcotest.test_case "Step.compute_challenges all" `Quick + test_step_compute_challenges_all + ] + +let () = + Alcotest.run "Pickles Common" + [ ("Domain configuration", domain_tests) + ; ("bits_to_bytes", bits_to_bytes_tests) + ; ("finite_exn", finite_exn_tests) + ; ("Max_degree", max_degree_tests) + ; ("FFT shifts", shifts_tests) + ; ("Profiling", profiling_tests) + ; ("IPA", ipa_tests) + ] diff --git a/src/lib/pickles/test/test_impls.ml b/src/lib/crypto/pickles/test/test_impls.ml similarity index 100% rename from src/lib/pickles/test/test_impls.ml rename to src/lib/crypto/pickles/test/test_impls.ml diff --git a/src/lib/pickles/test/test_no_sideloaded.ml b/src/lib/crypto/pickles/test/test_no_sideloaded.ml similarity index 100% rename from src/lib/pickles/test/test_no_sideloaded.ml rename to src/lib/crypto/pickles/test/test_no_sideloaded.ml diff --git a/src/lib/pickles/test/test_opt_sponge.ml b/src/lib/crypto/pickles/test/test_opt_sponge.ml similarity index 100% rename from src/lib/pickles/test/test_opt_sponge.ml rename to src/lib/crypto/pickles/test/test_opt_sponge.ml diff --git a/src/lib/pickles/test/test_plonk_curve_ops.ml b/src/lib/crypto/pickles/test/test_plonk_curve_ops.ml similarity index 100% rename from src/lib/pickles/test/test_plonk_curve_ops.ml rename to src/lib/crypto/pickles/test/test_plonk_curve_ops.ml diff --git a/src/lib/pickles/test/test_ro.ml b/src/lib/crypto/pickles/test/test_ro.ml similarity index 100% rename from src/lib/pickles/test/test_ro.ml rename to src/lib/crypto/pickles/test/test_ro.ml diff --git a/src/lib/pickles/test/test_scalar_challenge.ml b/src/lib/crypto/pickles/test/test_scalar_challenge.ml similarity index 100% rename from src/lib/pickles/test/test_scalar_challenge.ml rename to src/lib/crypto/pickles/test/test_scalar_challenge.ml diff --git a/src/lib/pickles/test/test_side_loaded_verification_key.ml b/src/lib/crypto/pickles/test/test_side_loaded_verification_key.ml similarity index 100% rename from src/lib/pickles/test/test_side_loaded_verification_key.ml rename to src/lib/crypto/pickles/test/test_side_loaded_verification_key.ml diff --git a/src/lib/pickles/test/test_sponge.ml b/src/lib/crypto/pickles/test/test_sponge.ml similarity index 100% rename from src/lib/pickles/test/test_sponge.ml rename to src/lib/crypto/pickles/test/test_sponge.ml diff --git a/src/lib/pickles/test/test_step.ml b/src/lib/crypto/pickles/test/test_step.ml similarity index 100% rename from src/lib/pickles/test/test_step.ml rename to src/lib/crypto/pickles/test/test_step.ml diff --git a/src/lib/pickles/test/test_step_verifier.ml b/src/lib/crypto/pickles/test/test_step_verifier.ml similarity index 100% rename from src/lib/pickles/test/test_step_verifier.ml rename to src/lib/crypto/pickles/test/test_step_verifier.ml diff --git a/src/lib/pickles/test/test_wrap.ml b/src/lib/crypto/pickles/test/test_wrap.ml similarity index 100% rename from src/lib/pickles/test/test_wrap.ml rename to src/lib/crypto/pickles/test/test_wrap.ml diff --git a/src/lib/pickles/test/test_wrap_hack.ml b/src/lib/crypto/pickles/test/test_wrap_hack.ml similarity index 100% rename from src/lib/pickles/test/test_wrap_hack.ml rename to src/lib/crypto/pickles/test/test_wrap_hack.ml diff --git a/src/lib/pickles/tick_field_sponge.ml b/src/lib/crypto/pickles/tick_field_sponge.ml similarity index 100% rename from src/lib/pickles/tick_field_sponge.ml rename to src/lib/crypto/pickles/tick_field_sponge.ml diff --git a/src/lib/pickles/tick_field_sponge.mli b/src/lib/crypto/pickles/tick_field_sponge.mli similarity index 100% rename from src/lib/pickles/tick_field_sponge.mli rename to src/lib/crypto/pickles/tick_field_sponge.mli diff --git a/src/lib/pickles/timer.ml b/src/lib/crypto/pickles/timer.ml similarity index 100% rename from src/lib/pickles/timer.ml rename to src/lib/crypto/pickles/timer.ml diff --git a/src/lib/pickles/timer.mli b/src/lib/crypto/pickles/timer.mli similarity index 100% rename from src/lib/pickles/timer.mli rename to src/lib/crypto/pickles/timer.mli diff --git a/src/lib/pickles/tock_field_sponge.ml b/src/lib/crypto/pickles/tock_field_sponge.ml similarity index 100% rename from src/lib/pickles/tock_field_sponge.ml rename to src/lib/crypto/pickles/tock_field_sponge.ml diff --git a/src/lib/pickles/tock_field_sponge.mli b/src/lib/crypto/pickles/tock_field_sponge.mli similarity index 100% rename from src/lib/pickles/tock_field_sponge.mli rename to src/lib/crypto/pickles/tock_field_sponge.mli diff --git a/src/lib/pickles/type.mli b/src/lib/crypto/pickles/type.mli similarity index 100% rename from src/lib/pickles/type.mli rename to src/lib/crypto/pickles/type.mli diff --git a/src/lib/pickles/types_map.ml b/src/lib/crypto/pickles/types_map.ml similarity index 100% rename from src/lib/pickles/types_map.ml rename to src/lib/crypto/pickles/types_map.ml diff --git a/src/lib/pickles/types_map.mli b/src/lib/crypto/pickles/types_map.mli similarity index 100% rename from src/lib/pickles/types_map.mli rename to src/lib/crypto/pickles/types_map.mli diff --git a/src/lib/pickles/unfinalized.ml b/src/lib/crypto/pickles/unfinalized.ml similarity index 100% rename from src/lib/pickles/unfinalized.ml rename to src/lib/crypto/pickles/unfinalized.ml diff --git a/src/lib/pickles/unfinalized.mli b/src/lib/crypto/pickles/unfinalized.mli similarity index 100% rename from src/lib/pickles/unfinalized.mli rename to src/lib/crypto/pickles/unfinalized.mli diff --git a/src/lib/pickles/util.ml b/src/lib/crypto/pickles/util.ml similarity index 100% rename from src/lib/pickles/util.ml rename to src/lib/crypto/pickles/util.ml diff --git a/src/lib/pickles/util.mli b/src/lib/crypto/pickles/util.mli similarity index 100% rename from src/lib/pickles/util.mli rename to src/lib/crypto/pickles/util.mli diff --git a/src/lib/pickles/verification_key.ml b/src/lib/crypto/pickles/verification_key.ml similarity index 100% rename from src/lib/pickles/verification_key.ml rename to src/lib/crypto/pickles/verification_key.ml diff --git a/src/lib/pickles/verification_key.mli b/src/lib/crypto/pickles/verification_key.mli similarity index 100% rename from src/lib/pickles/verification_key.mli rename to src/lib/crypto/pickles/verification_key.mli diff --git a/src/lib/pickles/verify.ml b/src/lib/crypto/pickles/verify.ml similarity index 100% rename from src/lib/pickles/verify.ml rename to src/lib/crypto/pickles/verify.ml diff --git a/src/lib/pickles/verify.mli b/src/lib/crypto/pickles/verify.mli similarity index 100% rename from src/lib/pickles/verify.mli rename to src/lib/crypto/pickles/verify.mli diff --git a/src/lib/pickles/wrap.ml b/src/lib/crypto/pickles/wrap.ml similarity index 100% rename from src/lib/pickles/wrap.ml rename to src/lib/crypto/pickles/wrap.ml diff --git a/src/lib/pickles/wrap.mli b/src/lib/crypto/pickles/wrap.mli similarity index 100% rename from src/lib/pickles/wrap.mli rename to src/lib/crypto/pickles/wrap.mli diff --git a/src/lib/pickles/wrap_deferred_values.ml b/src/lib/crypto/pickles/wrap_deferred_values.ml similarity index 100% rename from src/lib/pickles/wrap_deferred_values.ml rename to src/lib/crypto/pickles/wrap_deferred_values.ml diff --git a/src/lib/pickles/wrap_deferred_values.mli b/src/lib/crypto/pickles/wrap_deferred_values.mli similarity index 100% rename from src/lib/pickles/wrap_deferred_values.mli rename to src/lib/crypto/pickles/wrap_deferred_values.mli diff --git a/src/lib/pickles/wrap_domains.ml b/src/lib/crypto/pickles/wrap_domains.ml similarity index 100% rename from src/lib/pickles/wrap_domains.ml rename to src/lib/crypto/pickles/wrap_domains.ml diff --git a/src/lib/pickles/wrap_domains.mli b/src/lib/crypto/pickles/wrap_domains.mli similarity index 100% rename from src/lib/pickles/wrap_domains.mli rename to src/lib/crypto/pickles/wrap_domains.mli diff --git a/src/lib/pickles/wrap_hack.ml b/src/lib/crypto/pickles/wrap_hack.ml similarity index 100% rename from src/lib/pickles/wrap_hack.ml rename to src/lib/crypto/pickles/wrap_hack.ml diff --git a/src/lib/pickles/wrap_hack.mli b/src/lib/crypto/pickles/wrap_hack.mli similarity index 100% rename from src/lib/pickles/wrap_hack.mli rename to src/lib/crypto/pickles/wrap_hack.mli diff --git a/src/lib/pickles/wrap_main.ml b/src/lib/crypto/pickles/wrap_main.ml similarity index 100% rename from src/lib/pickles/wrap_main.ml rename to src/lib/crypto/pickles/wrap_main.ml diff --git a/src/lib/pickles/wrap_main.mli b/src/lib/crypto/pickles/wrap_main.mli similarity index 100% rename from src/lib/pickles/wrap_main.mli rename to src/lib/crypto/pickles/wrap_main.mli diff --git a/src/lib/pickles/wrap_main_inputs.ml b/src/lib/crypto/pickles/wrap_main_inputs.ml similarity index 100% rename from src/lib/pickles/wrap_main_inputs.ml rename to src/lib/crypto/pickles/wrap_main_inputs.ml diff --git a/src/lib/pickles/wrap_main_inputs.mli b/src/lib/crypto/pickles/wrap_main_inputs.mli similarity index 100% rename from src/lib/pickles/wrap_main_inputs.mli rename to src/lib/crypto/pickles/wrap_main_inputs.mli diff --git a/src/lib/pickles/wrap_proof.ml b/src/lib/crypto/pickles/wrap_proof.ml similarity index 100% rename from src/lib/pickles/wrap_proof.ml rename to src/lib/crypto/pickles/wrap_proof.ml diff --git a/src/lib/pickles/wrap_proof.mli b/src/lib/crypto/pickles/wrap_proof.mli similarity index 100% rename from src/lib/pickles/wrap_proof.mli rename to src/lib/crypto/pickles/wrap_proof.mli diff --git a/src/lib/pickles/wrap_verifier.ml b/src/lib/crypto/pickles/wrap_verifier.ml similarity index 100% rename from src/lib/pickles/wrap_verifier.ml rename to src/lib/crypto/pickles/wrap_verifier.ml diff --git a/src/lib/pickles/wrap_verifier.mli b/src/lib/crypto/pickles/wrap_verifier.mli similarity index 100% rename from src/lib/pickles/wrap_verifier.mli rename to src/lib/crypto/pickles/wrap_verifier.mli diff --git a/src/lib/pickles/wrap_wire_proof.ml b/src/lib/crypto/pickles/wrap_wire_proof.ml similarity index 100% rename from src/lib/pickles/wrap_wire_proof.ml rename to src/lib/crypto/pickles/wrap_wire_proof.ml diff --git a/src/lib/pickles/wrap_wire_proof.mli b/src/lib/crypto/pickles/wrap_wire_proof.mli similarity index 100% rename from src/lib/pickles/wrap_wire_proof.mli rename to src/lib/crypto/pickles/wrap_wire_proof.mli diff --git a/src/lib/pickles_base/domain.ml b/src/lib/crypto/pickles_base/domain.ml similarity index 100% rename from src/lib/pickles_base/domain.ml rename to src/lib/crypto/pickles_base/domain.ml diff --git a/src/lib/pickles_base/domain.mli b/src/lib/crypto/pickles_base/domain.mli similarity index 100% rename from src/lib/pickles_base/domain.mli rename to src/lib/crypto/pickles_base/domain.mli diff --git a/src/lib/pickles_base/domains.ml b/src/lib/crypto/pickles_base/domains.ml similarity index 100% rename from src/lib/pickles_base/domains.ml rename to src/lib/crypto/pickles_base/domains.ml diff --git a/src/lib/pickles_base/domains.mli b/src/lib/crypto/pickles_base/domains.mli similarity index 100% rename from src/lib/pickles_base/domains.mli rename to src/lib/crypto/pickles_base/domains.mli diff --git a/src/lib/pickles_base/dune b/src/lib/crypto/pickles_base/dune similarity index 100% rename from src/lib/pickles_base/dune rename to src/lib/crypto/pickles_base/dune diff --git a/src/lib/pickles_base/one_hot_vector/dune b/src/lib/crypto/pickles_base/one_hot_vector/dune similarity index 100% rename from src/lib/pickles_base/one_hot_vector/dune rename to src/lib/crypto/pickles_base/one_hot_vector/dune diff --git a/src/lib/pickles_base/one_hot_vector/one_hot_vector.ml b/src/lib/crypto/pickles_base/one_hot_vector/one_hot_vector.ml similarity index 100% rename from src/lib/pickles_base/one_hot_vector/one_hot_vector.ml rename to src/lib/crypto/pickles_base/one_hot_vector/one_hot_vector.ml diff --git a/src/lib/pickles_base/one_hot_vector/one_hot_vector.mli b/src/lib/crypto/pickles_base/one_hot_vector/one_hot_vector.mli similarity index 100% rename from src/lib/pickles_base/one_hot_vector/one_hot_vector.mli rename to src/lib/crypto/pickles_base/one_hot_vector/one_hot_vector.mli diff --git a/src/lib/pickles_base/proofs_verified.ml b/src/lib/crypto/pickles_base/proofs_verified.ml similarity index 100% rename from src/lib/pickles_base/proofs_verified.ml rename to src/lib/crypto/pickles_base/proofs_verified.ml diff --git a/src/lib/pickles_base/proofs_verified.mli b/src/lib/crypto/pickles_base/proofs_verified.mli similarity index 100% rename from src/lib/pickles_base/proofs_verified.mli rename to src/lib/crypto/pickles_base/proofs_verified.mli diff --git a/src/lib/pickles_base/side_loaded_verification_key.ml b/src/lib/crypto/pickles_base/side_loaded_verification_key.ml similarity index 100% rename from src/lib/pickles_base/side_loaded_verification_key.ml rename to src/lib/crypto/pickles_base/side_loaded_verification_key.ml diff --git a/src/lib/pickles_base/side_loaded_verification_key.mli b/src/lib/crypto/pickles_base/side_loaded_verification_key.mli similarity index 100% rename from src/lib/pickles_base/side_loaded_verification_key.mli rename to src/lib/crypto/pickles_base/side_loaded_verification_key.mli diff --git a/src/lib/pickles_base/test/dune b/src/lib/crypto/pickles_base/test/dune similarity index 100% rename from src/lib/pickles_base/test/dune rename to src/lib/crypto/pickles_base/test/dune diff --git a/src/lib/pickles_base/test/main.ml b/src/lib/crypto/pickles_base/test/main.ml similarity index 100% rename from src/lib/pickles_base/test/main.ml rename to src/lib/crypto/pickles_base/test/main.ml diff --git a/src/lib/pickles_types/README.md b/src/lib/crypto/pickles_types/README.md similarity index 100% rename from src/lib/pickles_types/README.md rename to src/lib/crypto/pickles_types/README.md diff --git a/src/lib/pickles_types/dune b/src/lib/crypto/pickles_types/dune similarity index 100% rename from src/lib/pickles_types/dune rename to src/lib/crypto/pickles_types/dune diff --git a/src/lib/pickles_types/pickles_types.ml b/src/lib/crypto/pickles_types/pickles_types.ml similarity index 100% rename from src/lib/pickles_types/pickles_types.ml rename to src/lib/crypto/pickles_types/pickles_types.ml diff --git a/src/lib/pickles_types/pickles_types.mli b/src/lib/crypto/pickles_types/pickles_types.mli similarity index 100% rename from src/lib/pickles_types/pickles_types.mli rename to src/lib/crypto/pickles_types/pickles_types.mli diff --git a/src/lib/random_oracle/dune b/src/lib/crypto/random_oracle/dune similarity index 100% rename from src/lib/random_oracle/dune rename to src/lib/crypto/random_oracle/dune diff --git a/src/lib/random_oracle/intf.ml b/src/lib/crypto/random_oracle/intf.ml similarity index 100% rename from src/lib/random_oracle/intf.ml rename to src/lib/crypto/random_oracle/intf.ml diff --git a/src/lib/random_oracle/permutation/dune b/src/lib/crypto/random_oracle/permutation/dune similarity index 100% rename from src/lib/random_oracle/permutation/dune rename to src/lib/crypto/random_oracle/permutation/dune diff --git a/src/lib/random_oracle/permutation/external/dune b/src/lib/crypto/random_oracle/permutation/external/dune similarity index 100% rename from src/lib/random_oracle/permutation/external/dune rename to src/lib/crypto/random_oracle/permutation/external/dune diff --git a/src/lib/random_oracle/permutation/external/random_oracle_permutation.ml b/src/lib/crypto/random_oracle/permutation/external/random_oracle_permutation.ml similarity index 100% rename from src/lib/random_oracle/permutation/external/random_oracle_permutation.ml rename to src/lib/crypto/random_oracle/permutation/external/random_oracle_permutation.ml diff --git a/src/lib/random_oracle/permutation/ocaml/dune b/src/lib/crypto/random_oracle/permutation/ocaml/dune similarity index 100% rename from src/lib/random_oracle/permutation/ocaml/dune rename to src/lib/crypto/random_oracle/permutation/ocaml/dune diff --git a/src/lib/random_oracle/permutation/ocaml/random_oracle_permutation.ml b/src/lib/crypto/random_oracle/permutation/ocaml/random_oracle_permutation.ml similarity index 100% rename from src/lib/random_oracle/permutation/ocaml/random_oracle_permutation.ml rename to src/lib/crypto/random_oracle/permutation/ocaml/random_oracle_permutation.ml diff --git a/src/lib/random_oracle/permutation/random_oracle_permutation.mli b/src/lib/crypto/random_oracle/permutation/random_oracle_permutation.mli similarity index 100% rename from src/lib/random_oracle/permutation/random_oracle_permutation.mli rename to src/lib/crypto/random_oracle/permutation/random_oracle_permutation.mli diff --git a/src/lib/random_oracle/random_oracle.ml b/src/lib/crypto/random_oracle/random_oracle.ml similarity index 100% rename from src/lib/random_oracle/random_oracle.ml rename to src/lib/crypto/random_oracle/random_oracle.ml diff --git a/src/lib/random_oracle/random_oracle.mli b/src/lib/crypto/random_oracle/random_oracle.mli similarity index 100% rename from src/lib/random_oracle/random_oracle.mli rename to src/lib/crypto/random_oracle/random_oracle.mli diff --git a/src/lib/random_oracle_input/dune b/src/lib/crypto/random_oracle_input/dune similarity index 100% rename from src/lib/random_oracle_input/dune rename to src/lib/crypto/random_oracle_input/dune diff --git a/src/lib/random_oracle_input/random_oracle_input.ml b/src/lib/crypto/random_oracle_input/random_oracle_input.ml similarity index 100% rename from src/lib/random_oracle_input/random_oracle_input.ml rename to src/lib/crypto/random_oracle_input/random_oracle_input.ml diff --git a/src/lib/secrets/dune b/src/lib/crypto/secrets/dune similarity index 100% rename from src/lib/secrets/dune rename to src/lib/crypto/secrets/dune diff --git a/src/lib/secrets/hardware_wallets.ml b/src/lib/crypto/secrets/hardware_wallets.ml similarity index 100% rename from src/lib/secrets/hardware_wallets.ml rename to src/lib/crypto/secrets/hardware_wallets.ml diff --git a/src/lib/secrets/keypair.ml b/src/lib/crypto/secrets/keypair.ml similarity index 100% rename from src/lib/secrets/keypair.ml rename to src/lib/crypto/secrets/keypair.ml diff --git a/src/lib/secrets/keypair_common.ml b/src/lib/crypto/secrets/keypair_common.ml similarity index 100% rename from src/lib/secrets/keypair_common.ml rename to src/lib/crypto/secrets/keypair_common.ml diff --git a/src/lib/secrets/keypair_read_write.ml b/src/lib/crypto/secrets/keypair_read_write.ml similarity index 100% rename from src/lib/secrets/keypair_read_write.ml rename to src/lib/crypto/secrets/keypair_read_write.ml diff --git a/src/lib/secrets/libp2p_keypair.ml b/src/lib/crypto/secrets/libp2p_keypair.ml similarity index 100% rename from src/lib/secrets/libp2p_keypair.ml rename to src/lib/crypto/secrets/libp2p_keypair.ml diff --git a/src/lib/secrets/password.ml b/src/lib/crypto/secrets/password.ml similarity index 100% rename from src/lib/secrets/password.ml rename to src/lib/crypto/secrets/password.ml diff --git a/src/lib/secrets/password.mli b/src/lib/crypto/secrets/password.mli similarity index 100% rename from src/lib/secrets/password.mli rename to src/lib/crypto/secrets/password.mli diff --git a/src/lib/secrets/privkey_error.ml b/src/lib/crypto/secrets/privkey_error.ml similarity index 100% rename from src/lib/secrets/privkey_error.ml rename to src/lib/crypto/secrets/privkey_error.ml diff --git a/src/lib/secrets/secret_box.ml b/src/lib/crypto/secrets/secret_box.ml similarity index 100% rename from src/lib/secrets/secret_box.ml rename to src/lib/crypto/secrets/secret_box.ml diff --git a/src/lib/secrets/secret_box.mli b/src/lib/crypto/secrets/secret_box.mli similarity index 100% rename from src/lib/secrets/secret_box.mli rename to src/lib/crypto/secrets/secret_box.mli diff --git a/src/lib/secrets/secret_file.ml b/src/lib/crypto/secrets/secret_file.ml similarity index 100% rename from src/lib/secrets/secret_file.ml rename to src/lib/crypto/secrets/secret_file.ml diff --git a/src/lib/secrets/secret_file.mli b/src/lib/crypto/secrets/secret_file.mli similarity index 100% rename from src/lib/secrets/secret_file.mli rename to src/lib/crypto/secrets/secret_file.mli diff --git a/src/lib/secrets/uptime_keypair.ml b/src/lib/crypto/secrets/uptime_keypair.ml similarity index 100% rename from src/lib/secrets/uptime_keypair.ml rename to src/lib/crypto/secrets/uptime_keypair.ml diff --git a/src/lib/secrets/wallets.ml b/src/lib/crypto/secrets/wallets.ml similarity index 100% rename from src/lib/secrets/wallets.ml rename to src/lib/crypto/secrets/wallets.ml diff --git a/src/lib/secrets/wallets.mli b/src/lib/crypto/secrets/wallets.mli similarity index 100% rename from src/lib/secrets/wallets.mli rename to src/lib/crypto/secrets/wallets.mli diff --git a/src/lib/signature_lib/dune b/src/lib/crypto/signature_lib/dune similarity index 100% rename from src/lib/signature_lib/dune rename to src/lib/crypto/signature_lib/dune diff --git a/src/lib/signature_lib/find_address/dune b/src/lib/crypto/signature_lib/find_address/dune similarity index 100% rename from src/lib/signature_lib/find_address/dune rename to src/lib/crypto/signature_lib/find_address/dune diff --git a/src/lib/signature_lib/find_address/find_address.ml b/src/lib/crypto/signature_lib/find_address/find_address.ml similarity index 100% rename from src/lib/signature_lib/find_address/find_address.ml rename to src/lib/crypto/signature_lib/find_address/find_address.ml diff --git a/src/lib/signature_lib/keypair.ml b/src/lib/crypto/signature_lib/keypair.ml similarity index 100% rename from src/lib/signature_lib/keypair.ml rename to src/lib/crypto/signature_lib/keypair.ml diff --git a/src/lib/signature_lib/keypair.mli b/src/lib/crypto/signature_lib/keypair.mli similarity index 100% rename from src/lib/signature_lib/keypair.mli rename to src/lib/crypto/signature_lib/keypair.mli diff --git a/src/lib/signature_lib/private_key.ml b/src/lib/crypto/signature_lib/private_key.ml similarity index 100% rename from src/lib/signature_lib/private_key.ml rename to src/lib/crypto/signature_lib/private_key.ml diff --git a/src/lib/signature_lib/private_key.mli b/src/lib/crypto/signature_lib/private_key.mli similarity index 100% rename from src/lib/signature_lib/private_key.mli rename to src/lib/crypto/signature_lib/private_key.mli diff --git a/src/lib/signature_lib/public_key.ml b/src/lib/crypto/signature_lib/public_key.ml similarity index 100% rename from src/lib/signature_lib/public_key.ml rename to src/lib/crypto/signature_lib/public_key.ml diff --git a/src/lib/signature_lib/public_key.mli b/src/lib/crypto/signature_lib/public_key.mli similarity index 100% rename from src/lib/signature_lib/public_key.mli rename to src/lib/crypto/signature_lib/public_key.mli diff --git a/src/lib/signature_lib/schnorr.ml b/src/lib/crypto/signature_lib/schnorr.ml similarity index 100% rename from src/lib/signature_lib/schnorr.ml rename to src/lib/crypto/signature_lib/schnorr.ml diff --git a/src/lib/signature_lib/test/dune b/src/lib/crypto/signature_lib/test/dune similarity index 100% rename from src/lib/signature_lib/test/dune rename to src/lib/crypto/signature_lib/test/dune diff --git a/src/lib/signature_lib/test/signature_lib_tests.ml b/src/lib/crypto/signature_lib/test/signature_lib_tests.ml similarity index 100% rename from src/lib/signature_lib/test/signature_lib_tests.ml rename to src/lib/crypto/signature_lib/test/signature_lib_tests.ml diff --git a/src/lib/signature_lib/test/test_private_key.ml b/src/lib/crypto/signature_lib/test/test_private_key.ml similarity index 100% rename from src/lib/signature_lib/test/test_private_key.ml rename to src/lib/crypto/signature_lib/test/test_private_key.ml diff --git a/src/lib/snark_bits/bits.ml b/src/lib/crypto/snark_bits/bits.ml similarity index 100% rename from src/lib/snark_bits/bits.ml rename to src/lib/crypto/snark_bits/bits.ml diff --git a/src/lib/snark_bits/bits_intf.ml b/src/lib/crypto/snark_bits/bits_intf.ml similarity index 100% rename from src/lib/snark_bits/bits_intf.ml rename to src/lib/crypto/snark_bits/bits_intf.ml diff --git a/src/lib/snark_bits/dune b/src/lib/crypto/snark_bits/dune similarity index 100% rename from src/lib/snark_bits/dune rename to src/lib/crypto/snark_bits/dune diff --git a/src/lib/snark_keys_header/README.md b/src/lib/crypto/snark_keys_header/README.md similarity index 100% rename from src/lib/snark_keys_header/README.md rename to src/lib/crypto/snark_keys_header/README.md diff --git a/src/lib/snark_keys_header/dune b/src/lib/crypto/snark_keys_header/dune similarity index 100% rename from src/lib/snark_keys_header/dune rename to src/lib/crypto/snark_keys_header/dune diff --git a/src/lib/snark_keys_header/snark_keys_header.ml b/src/lib/crypto/snark_keys_header/snark_keys_header.ml similarity index 100% rename from src/lib/snark_keys_header/snark_keys_header.ml rename to src/lib/crypto/snark_keys_header/snark_keys_header.ml diff --git a/src/lib/snark_keys_header/tests/dune b/src/lib/crypto/snark_keys_header/tests/dune similarity index 100% rename from src/lib/snark_keys_header/tests/dune rename to src/lib/crypto/snark_keys_header/tests/dune diff --git a/src/lib/snark_keys_header/tests/test_snark_keys_header.ml b/src/lib/crypto/snark_keys_header/tests/test_snark_keys_header.ml similarity index 100% rename from src/lib/snark_keys_header/tests/test_snark_keys_header.ml rename to src/lib/crypto/snark_keys_header/tests/test_snark_keys_header.ml diff --git a/src/lib/snark_params/dune b/src/lib/crypto/snark_params/dune similarity index 100% rename from src/lib/snark_params/dune rename to src/lib/crypto/snark_params/dune diff --git a/src/lib/snark_params/snark_intf.ml b/src/lib/crypto/snark_params/snark_intf.ml similarity index 100% rename from src/lib/snark_params/snark_intf.ml rename to src/lib/crypto/snark_params/snark_intf.ml diff --git a/src/lib/snark_params/snark_params.ml b/src/lib/crypto/snark_params/snark_params.ml similarity index 100% rename from src/lib/snark_params/snark_params.ml rename to src/lib/crypto/snark_params/snark_params.ml diff --git a/src/lib/snark_params/snark_util.ml b/src/lib/crypto/snark_params/snark_util.ml similarity index 100% rename from src/lib/snark_params/snark_util.ml rename to src/lib/crypto/snark_params/snark_util.ml diff --git a/src/lib/snark_params/test/dune b/src/lib/crypto/snark_params/test/dune similarity index 100% rename from src/lib/snark_params/test/dune rename to src/lib/crypto/snark_params/test/dune diff --git a/src/lib/snark_params/test/test_snark_params.ml b/src/lib/crypto/snark_params/test/test_snark_params.ml similarity index 100% rename from src/lib/snark_params/test/test_snark_params.ml rename to src/lib/crypto/snark_params/test/test_snark_params.ml diff --git a/src/lib/snarky_blake2/README.md b/src/lib/crypto/snarky_blake2/README.md similarity index 100% rename from src/lib/snarky_blake2/README.md rename to src/lib/crypto/snarky_blake2/README.md diff --git a/src/lib/snarky_blake2/dune b/src/lib/crypto/snarky_blake2/dune similarity index 100% rename from src/lib/snarky_blake2/dune rename to src/lib/crypto/snarky_blake2/dune diff --git a/src/lib/snarky_blake2/snarky_blake2.ml b/src/lib/crypto/snarky_blake2/snarky_blake2.ml similarity index 100% rename from src/lib/snarky_blake2/snarky_blake2.ml rename to src/lib/crypto/snarky_blake2/snarky_blake2.ml diff --git a/src/lib/snarky_blake2/snarky_blake2.mli b/src/lib/crypto/snarky_blake2/snarky_blake2.mli similarity index 100% rename from src/lib/snarky_blake2/snarky_blake2.mli rename to src/lib/crypto/snarky_blake2/snarky_blake2.mli diff --git a/src/lib/snarky_blake2/test/dune b/src/lib/crypto/snarky_blake2/test/dune similarity index 100% rename from src/lib/snarky_blake2/test/dune rename to src/lib/crypto/snarky_blake2/test/dune diff --git a/src/lib/snarky_blake2/test/test.ml b/src/lib/crypto/snarky_blake2/test/test.ml similarity index 100% rename from src/lib/snarky_blake2/test/test.ml rename to src/lib/crypto/snarky_blake2/test/test.ml diff --git a/src/lib/snarky_blake2/uint32.ml b/src/lib/crypto/snarky_blake2/uint32.ml similarity index 100% rename from src/lib/snarky_blake2/uint32.ml rename to src/lib/crypto/snarky_blake2/uint32.ml diff --git a/src/lib/snarky_blake2/uint32.mli b/src/lib/crypto/snarky_blake2/uint32.mli similarity index 100% rename from src/lib/snarky_blake2/uint32.mli rename to src/lib/crypto/snarky_blake2/uint32.mli diff --git a/src/lib/snarky_curves/dune b/src/lib/crypto/snarky_curves/dune similarity index 100% rename from src/lib/snarky_curves/dune rename to src/lib/crypto/snarky_curves/dune diff --git a/src/lib/snarky_curves/snarky_curves.ml b/src/lib/crypto/snarky_curves/snarky_curves.ml similarity index 100% rename from src/lib/snarky_curves/snarky_curves.ml rename to src/lib/crypto/snarky_curves/snarky_curves.ml diff --git a/src/lib/snarky_field_extensions/dune b/src/lib/crypto/snarky_field_extensions/dune similarity index 100% rename from src/lib/snarky_field_extensions/dune rename to src/lib/crypto/snarky_field_extensions/dune diff --git a/src/lib/snarky_field_extensions/field_extensions.ml b/src/lib/crypto/snarky_field_extensions/field_extensions.ml similarity index 100% rename from src/lib/snarky_field_extensions/field_extensions.ml rename to src/lib/crypto/snarky_field_extensions/field_extensions.ml diff --git a/src/lib/snarky_field_extensions/intf.ml b/src/lib/crypto/snarky_field_extensions/intf.ml similarity index 100% rename from src/lib/snarky_field_extensions/intf.ml rename to src/lib/crypto/snarky_field_extensions/intf.ml diff --git a/src/lib/snarky_group_map/checked_map.ml b/src/lib/crypto/snarky_group_map/checked_map.ml similarity index 100% rename from src/lib/snarky_group_map/checked_map.ml rename to src/lib/crypto/snarky_group_map/checked_map.ml diff --git a/src/lib/snarky_group_map/checked_map.mli b/src/lib/crypto/snarky_group_map/checked_map.mli similarity index 100% rename from src/lib/snarky_group_map/checked_map.mli rename to src/lib/crypto/snarky_group_map/checked_map.mli diff --git a/src/lib/snarky_group_map/dune b/src/lib/crypto/snarky_group_map/dune similarity index 100% rename from src/lib/snarky_group_map/dune rename to src/lib/crypto/snarky_group_map/dune diff --git a/src/lib/snarky_group_map/snarky_group_map.ml b/src/lib/crypto/snarky_group_map/snarky_group_map.ml similarity index 100% rename from src/lib/snarky_group_map/snarky_group_map.ml rename to src/lib/crypto/snarky_group_map/snarky_group_map.ml diff --git a/src/lib/snarky_group_map/snarky_group_map.mli b/src/lib/crypto/snarky_group_map/snarky_group_map.mli similarity index 100% rename from src/lib/snarky_group_map/snarky_group_map.mli rename to src/lib/crypto/snarky_group_map/snarky_group_map.mli diff --git a/src/lib/snarky_log/dune b/src/lib/crypto/snarky_log/dune similarity index 100% rename from src/lib/snarky_log/dune rename to src/lib/crypto/snarky_log/dune diff --git a/src/lib/snarky_log/snarky_log.ml b/src/lib/crypto/snarky_log/snarky_log.ml similarity index 100% rename from src/lib/snarky_log/snarky_log.ml rename to src/lib/crypto/snarky_log/snarky_log.ml diff --git a/src/lib/snarky_taylor/README.md b/src/lib/crypto/snarky_taylor/README.md similarity index 100% rename from src/lib/snarky_taylor/README.md rename to src/lib/crypto/snarky_taylor/README.md diff --git a/src/lib/snarky_taylor/dune b/src/lib/crypto/snarky_taylor/dune similarity index 100% rename from src/lib/snarky_taylor/dune rename to src/lib/crypto/snarky_taylor/dune diff --git a/src/lib/snarky_taylor/floating_point.ml b/src/lib/crypto/snarky_taylor/floating_point.ml similarity index 100% rename from src/lib/snarky_taylor/floating_point.ml rename to src/lib/crypto/snarky_taylor/floating_point.ml diff --git a/src/lib/snarky_taylor/floating_point.mli b/src/lib/crypto/snarky_taylor/floating_point.mli similarity index 100% rename from src/lib/snarky_taylor/floating_point.mli rename to src/lib/crypto/snarky_taylor/floating_point.mli diff --git a/src/lib/snarky_taylor/snarky_taylor.ml b/src/lib/crypto/snarky_taylor/snarky_taylor.ml similarity index 100% rename from src/lib/snarky_taylor/snarky_taylor.ml rename to src/lib/crypto/snarky_taylor/snarky_taylor.ml diff --git a/src/lib/snarky_taylor/tests/dune b/src/lib/crypto/snarky_taylor/tests/dune similarity index 100% rename from src/lib/snarky_taylor/tests/dune rename to src/lib/crypto/snarky_taylor/tests/dune diff --git a/src/lib/snarky_taylor/tests/floating_point_test.ml b/src/lib/crypto/snarky_taylor/tests/floating_point_test.ml similarity index 100% rename from src/lib/snarky_taylor/tests/floating_point_test.ml rename to src/lib/crypto/snarky_taylor/tests/floating_point_test.ml diff --git a/src/lib/snarky_taylor/tests/snarky_taylor_test.ml b/src/lib/crypto/snarky_taylor/tests/snarky_taylor_test.ml similarity index 100% rename from src/lib/snarky_taylor/tests/snarky_taylor_test.ml rename to src/lib/crypto/snarky_taylor/tests/snarky_taylor_test.ml diff --git a/src/lib/string_sign/README.md b/src/lib/crypto/string_sign/README.md similarity index 100% rename from src/lib/string_sign/README.md rename to src/lib/crypto/string_sign/README.md diff --git a/src/lib/string_sign/dune b/src/lib/crypto/string_sign/dune similarity index 100% rename from src/lib/string_sign/dune rename to src/lib/crypto/string_sign/dune diff --git a/src/lib/string_sign/string_sign.ml b/src/lib/crypto/string_sign/string_sign.ml similarity index 100% rename from src/lib/string_sign/string_sign.ml rename to src/lib/crypto/string_sign/string_sign.ml diff --git a/src/lib/string_sign/tests/dune b/src/lib/crypto/string_sign/tests/dune similarity index 100% rename from src/lib/string_sign/tests/dune rename to src/lib/crypto/string_sign/tests/dune diff --git a/src/lib/string_sign/tests/test_string_sign.ml b/src/lib/crypto/string_sign/tests/test_string_sign.ml similarity index 100% rename from src/lib/string_sign/tests/test_string_sign.ml rename to src/lib/crypto/string_sign/tests/test_string_sign.ml diff --git a/src/lib/daemon_rpcs/daemon_rpcs.ml b/src/lib/daemon_rpcs/daemon_rpcs.ml index 94cf8931b778..ebff8f5bbb25 100644 --- a/src/lib/daemon_rpcs/daemon_rpcs.ml +++ b/src/lib/daemon_rpcs/daemon_rpcs.ml @@ -133,6 +133,14 @@ module Chain_id_inputs = struct State_hash.Stable.Latest.t * Genesis_constants.t * string list * int * int [@@deriving bin_io_unversioned] + let of_inputs (inputs : Chain_id.Inputs.t) : response = + ( inputs.genesis_state_hash + , inputs.genesis_constants + , List.map inputs.constraint_system_digests ~f:(fun (_, digest) -> + Md5.to_hex digest ) + , inputs.protocol_transaction_version + , inputs.protocol_network_version ) + let rpc : (query, response) Rpc.Rpc.t = Rpc.Rpc.create ~name:"Chain_id_inputs" ~version:0 ~bin_query ~bin_response end diff --git a/src/lib/genesis_constants/genesis_constants.ml b/src/lib/genesis_constants/genesis_constants.ml index 7f3949453ff5..0c71abb396c0 100644 --- a/src/lib/genesis_constants/genesis_constants.ml +++ b/src/lib/genesis_constants/genesis_constants.ml @@ -1,5 +1,17 @@ open Core_kernel +(** Proof level controls how proofs are handled during execution. + + - [Full]: Generates and verifies actual proofs. This is used in production + and creates the real constraint systems. Circuit statistics (constraint + counts, public/auxiliary input sizes) are only meaningful with this level. + + - [Check]: Runs the constraint system logic for verification but skips + actual proof generation. Useful for testing correctness without the + overhead of proof generation. + + - [No_check]: Skips both proof generation and verification. Fastest mode, + used for quick testing where proofs are not needed. *) module Proof_level = struct type t = Full | Check | No_check [@@deriving bin_io_unversioned, equal] diff --git a/src/lib/genesis_ledger/genesis_ledger.ml b/src/lib/genesis_ledger/genesis_ledger.ml index 1a1d9f5d3e4e..320bea8b7e31 100644 --- a/src/lib/genesis_ledger/genesis_ledger.ml +++ b/src/lib/genesis_ledger/genesis_ledger.ml @@ -1,4 +1,5 @@ open Core_kernel +open Async open Currency open Signature_lib open Mina_base @@ -79,7 +80,8 @@ module Utils = struct (Ledger.merkle_root genesis_mask) (Root_ledger.merkle_root root) ) ; assert (Root_ledger.depth root = depth) ; - Root_ledger.create_checkpoint ~config root () |> Or_error.return + Root_ledger.copy_reconfigured ~config root () + |> Deferred.map ~f:Or_error.return let create_root_from_backing_root_with_directory genesis_mask root ~directory ~depth () = @@ -179,13 +181,13 @@ module Make (Inputs : Intf.Ledger_input_intf) : Intf.S = struct let backing_ledger, mask = Lazy.force backing_ledger in match backing_ledger with | `Ephemeral ledger -> - let open Or_error.Let_syntax in let root = Root_ledger.create ~logger ~config ~depth () in (* We are transferring to an unmasked view of the root, so this is used solely for the transfer side effect *) - let%map _dest = + let%map.Deferred.Or_error _dest = Ledger_transfer_mask.transfer_accounts ~src:ledger ~dest:(Root_ledger.as_unmasked root) + |> Deferred.return in root | `Root ledger -> diff --git a/src/lib/genesis_ledger/intf.ml b/src/lib/genesis_ledger/intf.ml index 5452f7aed50f..81986556d15f 100644 --- a/src/lib/genesis_ledger/intf.ml +++ b/src/lib/genesis_ledger/intf.ml @@ -75,9 +75,15 @@ end module type S = sig val t : Mina_ledger.Ledger.t Lazy.t - (** Create a new root ledger that is equal in state to the genesis ledger *) + (** Create a new root ledger that is equal in state to the genesis ledger. The + resulting backing will match what is requested in [config]; this may + require the primary genesis ledger database to be migrated at the + destination. *) val create_root : - config:Root_ledger.Config.t -> depth:int -> unit -> Root_ledger.t Or_error.t + config:Root_ledger.Config.t + -> depth:int + -> unit + -> Root_ledger.t Async.Deferred.Or_error.t (** Create a new root ledger that is equal in state to the genesis ledger, using a directory path instead of a config *) diff --git a/src/lib/genesis_ledger_helper/genesis_ledger_helper.ml b/src/lib/genesis_ledger_helper/genesis_ledger_helper.ml index 87667cb3784b..b55bf942f68a 100644 --- a/src/lib/genesis_ledger_helper/genesis_ledger_helper.ml +++ b/src/lib/genesis_ledger_helper/genesis_ledger_helper.ml @@ -82,23 +82,29 @@ let assert_filehash_equal ~file ~hash ~logger = failwith "Tarball hash mismatch" module Ledger = struct - let hash_filename hash ~ledger_name_prefix = - let str = - (* Consider the serialization of accounts as well as the hash. In - particular, adding fields that are - * hashed as a bit string - * default to an all-zero bit representation - may result in the same hash, but the accounts in the ledger will not - match the account record format. - *) - hash - ^ Bin_prot.Writer.to_string Mina_base.Account.Stable.Latest.bin_writer_t - Mina_base.Account.empty - in + (* Consider the serialization of accounts as well as the hash. In + particular, adding fields that are + * hashed as a bit string + * default to an all-zero bit representation + may result in the same hash, but the accounts in the ledger will not + match the account record format. + *) + let hash_filename hash ~ledger_name_prefix ~account_hash = + let str = hash ^ account_hash in ledger_name_prefix ^ "_" ^ Blake2.to_hex (Blake2.digest_string str) ^ ".tar.gz" + let hash_filename_stable hash ~ledger_name_prefix = + let account_hash = Lazy.force Mina_base.Account.empty_account_string in + hash_filename hash ~ledger_name_prefix ~account_hash + + let hash_filename_hardfork hash ~ledger_name_prefix = + let account_hash = + Lazy.force Mina_base.Account.Hardfork.empty_account_string + in + hash_filename hash ~ledger_name_prefix ~account_hash + let named_filename ~(constraint_constants : Genesis_constants.Constraint_constants.t) ~num_accounts ~balances ~ledger_name_prefix ?other_data name = @@ -190,7 +196,7 @@ module Ledger = struct let%bind hash_filename = match config.hash with | Some hash -> - let hash_filename = hash_filename hash ~ledger_name_prefix in + let hash_filename = hash_filename_stable hash ~ledger_name_prefix in search_local_and_s3 hash_filename | None -> return None @@ -223,8 +229,8 @@ module Ledger = struct | _, Some name -> search_local_and_s3 name ) - let generate_tar ~logger ~target_dir ~ledger_name_prefix ~root_hash - ~ledger_dirname () = + let generate_tar_with_hash_filename ~hash_filename ~logger ~target_dir + ~ledger_name_prefix ~root_hash ~ledger_dirname () = let root_hash = Ledger_hash.to_base58_check root_hash in let%bind () = Unix.mkdir ~p:() target_dir in let tar_path = target_dir ^/ hash_filename root_hash ~ledger_name_prefix in @@ -253,12 +259,22 @@ module Ledger = struct ] ; Error err + let generate_tar_stable ~logger ~target_dir ~ledger_name_prefix ~root_hash + ~ledger_dirname () = + generate_tar_with_hash_filename ~hash_filename:hash_filename_stable ~logger + ~target_dir ~ledger_name_prefix ~root_hash ~ledger_dirname () + + let generate_tar_hardfork ~logger ~target_dir ~ledger_name_prefix ~root_hash + ~ledger_dirname () = + generate_tar_with_hash_filename ~hash_filename:hash_filename_hardfork + ~logger ~target_dir ~ledger_name_prefix ~root_hash ~ledger_dirname () + let generate_ledger_tar ~genesis_dir ~logger ~ledger_name_prefix ledger = Mina_ledger.Ledger.commit ledger ; let dirname = Option.value_exn (Mina_ledger.Ledger.get_directory ledger) in let root_hash = Mina_ledger.Ledger.merkle_root ledger in - generate_tar ~logger ~target_dir:genesis_dir ~ledger_name_prefix ~root_hash - ~ledger_dirname:dirname () + generate_tar_stable ~logger ~target_dir:genesis_dir ~ledger_name_prefix + ~root_hash ~ledger_dirname:dirname () let padded_accounts_from_runtime_config_opt ~logger ~proof_level ~ledger_name_prefix ?overwrite_version (config : Runtime_config.Ledger.t) @@ -615,7 +631,7 @@ module Epoch_data = struct in [%log trace] "Loaded staking epoch ledger from $ledger_file" ~metadata:[ ("ledger_file", `String ledger_file) ] ; - ( { Consensus.Genesis_epoch_data.Data.ledger = staking_ledger + ( { Consensus.Genesis_data.Epoch.Data.ledger = staking_ledger ; seed = Epoch_seed.of_base58_check_exn config.staking.seed } , { config.staking with ledger = config' } ) @@ -638,7 +654,7 @@ module Epoch_data = struct reusing staking ledger" ; Deferred.Or_error.return ( Some - { Consensus.Genesis_epoch_data.Data.ledger = + { Consensus.Genesis_data.Epoch.Data.ledger = staking.ledger ; seed = Epoch_seed.of_base58_check_exn seed } @@ -654,7 +670,7 @@ module Epoch_data = struct [%log trace] "Loaded next epoch ledger from $ledger_file" ~metadata:[ ("ledger_file", `String ledger_file) ] ; ( Some - { Consensus.Genesis_epoch_data.Data.ledger = next_ledger + { Consensus.Genesis_data.Epoch.Data.ledger = next_ledger ; seed = Epoch_seed.of_base58_check_exn seed } , Some @@ -669,7 +685,7 @@ module Epoch_data = struct because the ledger is lazy, we don't want to force it in order to check that invariant *) - ( Some { Consensus.Genesis_epoch_data.staking; next } + ( Some { Consensus.Genesis_data.Epoch.staking; next } , Some { Runtime_config.Epoch_data.staking = staking_config ; next = next_config @@ -739,9 +755,12 @@ module Genesis_proof = struct in let open Staged_ledger_diff in let protocol_state_with_hashes = - Mina_state.Genesis_protocol_state.t ~genesis_ledger:ledger - ~genesis_epoch_data ~constraint_constants ~consensus_constants - ~genesis_body_reference + let genesis_ledger = Consensus.Genesis_data.Ledger.to_hashed ledger in + let genesis_epoch_data = + Consensus.Genesis_data.Epoch.to_hashed genesis_epoch_data + in + Mina_state.Genesis_protocol_state.t ~genesis_ledger ~genesis_epoch_data + ~constraint_constants ~consensus_constants ~genesis_body_reference in { Genesis_proof.Inputs.runtime_config ; constraint_constants @@ -843,7 +862,7 @@ let print_config ~logger config = let inputs_from_config_file ?(genesis_dir = Cache_dir.autogen_path) ~logger ~cli_proof_level ~(genesis_constants : Genesis_constants.t) ~(constraint_constants : Genesis_constants.Constraint_constants.t) - ~ledger_backing ~proof_level:compiled_proof_level ?overwrite_version + ~proof_level:compiled_proof_level ?overwrite_version (config : Runtime_config.t) = print_config ~logger config ; let open Deferred.Or_error.Let_syntax in @@ -899,11 +918,26 @@ let inputs_from_config_file ?(genesis_dir = Cache_dir.autogen_path) ~logger "Proof level %s is not compatible with compile-time proof level %s" (str proof_level) (str compiled) in + (* If the backing type were set to Converting_db here, then the daemon would + be forced to keep a migrated copy of the genesis ledgers around on disk the + entire time it operated. This is a waste of disk space; the daemon only + ever uses the genesis ledgers to populate Root ledgers when bootstrapping + from genesis, which should happen quite infrequently (usually only once + during startup, and only if the transition frontier on disk is too far + behind the network). + + To avoid keeping migrated genesis ledgers around on disk, the backing here + is set to [Stable_db] even if the daemon is configured to maintain synced + ledgers for an upcoming hard fork. As a result, if the daemon does need to + bootstrap from genesis, it will migrate its genesis ledgers on-demand while + executing one of the implementations of [create_root] from + genesis_ledger/intf.ml. *) + let genesis_backing_type = Mina_ledger.Root.Config.Stable_db in let%bind genesis_ledger, ledger_config, ledger_file = match config.ledger with | Some ledger -> Ledger.load ~proof_level ~genesis_dir ~logger ~constraint_constants - ~genesis_backing_type:ledger_backing ?overwrite_version ledger + ~genesis_backing_type ?overwrite_version ledger | None -> [%log fatal] "No ledger was provided in the runtime configuration" ; Deferred.Or_error.errorf @@ -913,7 +947,7 @@ let inputs_from_config_file ?(genesis_dir = Cache_dir.autogen_path) ~logger ~metadata:[ ("ledger_file", `String ledger_file) ] ; let%bind genesis_epoch_data, genesis_epoch_data_config = Epoch_data.load ~proof_level ~genesis_dir ~logger ~constraint_constants - ~genesis_backing_type:ledger_backing config.epoch_data + ~genesis_backing_type config.epoch_data in let config = { config with @@ -930,12 +964,11 @@ let inputs_from_config_file ?(genesis_dir = Cache_dir.autogen_path) ~logger ~blockchain_proof_system_id ~genesis_epoch_data let init_from_config_file ~cli_proof_level ~genesis_constants - ~constraint_constants ~logger ~proof_level ~ledger_backing - ?overwrite_version ?genesis_dir (config : Runtime_config.t) : - Precomputed_values.t Deferred.Or_error.t = + ~constraint_constants ~logger ~proof_level ?overwrite_version ?genesis_dir + (config : Runtime_config.t) : Precomputed_values.t Deferred.Or_error.t = inputs_from_config_file ~cli_proof_level ~genesis_constants - ~constraint_constants ~logger ~proof_level ~ledger_backing - ?overwrite_version ?genesis_dir config + ~constraint_constants ~logger ~proof_level ?overwrite_version ?genesis_dir + config |> Deferred.Or_error.map ~f:Genesis_proof.create_values_no_proof let upgrade_old_config ~logger filename json = diff --git a/src/lib/genesis_proof/genesis_proof.ml b/src/lib/genesis_proof/genesis_proof.ml index aeb577ded412..0b774854893b 100644 --- a/src/lib/genesis_proof/genesis_proof.ml +++ b/src/lib/genesis_proof/genesis_proof.ml @@ -9,7 +9,8 @@ module Inputs = struct ; proof_level : Genesis_constants.Proof_level.t ; genesis_constants : Genesis_constants.t ; genesis_ledger : Genesis_ledger.Packed.t - ; genesis_epoch_data : Consensus.Genesis_epoch_data.t + ; genesis_epoch_data : + Genesis_ledger.Packed.t Consensus.Genesis_data.Epoch.t ; genesis_body_reference : Consensus.Body_reference.t ; consensus_constants : Consensus.Constants.t ; protocol_state_with_hashes : @@ -87,7 +88,8 @@ module T = struct ; genesis_constants : Genesis_constants.t ; proof_level : Genesis_constants.Proof_level.t ; genesis_ledger : Genesis_ledger.Packed.t - ; genesis_epoch_data : Consensus.Genesis_epoch_data.t + ; genesis_epoch_data : + Genesis_ledger.Packed.t Consensus.Genesis_data.Epoch.t ; genesis_body_reference : Consensus.Body_reference.t ; consensus_constants : Consensus.Constants.t ; protocol_state_with_hashes : diff --git a/src/lib/ledger_catchup/super_catchup.ml b/src/lib/ledger_catchup/super_catchup.ml index 56a160061424..1ef7faec74f6 100644 --- a/src/lib/ledger_catchup/super_catchup.ml +++ b/src/lib/ledger_catchup/super_catchup.ml @@ -381,10 +381,7 @@ let try_to_connect_hash_chain t hashes ~frontier let module T = struct type t = State_hash.t list [@@deriving to_yojson] end in - let all_hashes = - List.map (Transition_frontier.all_breadcrumbs frontier) ~f:(fun b -> - Frontier_base.Breadcrumb.state_hash b ) - in + let all_hashes = Transition_frontier.all_state_hashes frontier in [%log debug] ~metadata: [ ("n", `Int (List.length acc)) diff --git a/src/lib/mina_base/account.ml b/src/lib/mina_base/account.ml index 8578d3865871..58a5343c3f14 100644 --- a/src/lib/mina_base/account.ml +++ b/src/lib/mina_base/account.ml @@ -668,6 +668,9 @@ let empty = let empty_digest = lazy (digest empty) +let empty_account_string = + lazy (Bin_prot.Writer.to_string Stable.Latest.bin_writer_t empty) + let create account_id balance = let public_key = Account_id.public_key account_id in let token_id = Account_id.token_id account_id in @@ -1072,27 +1075,54 @@ module Hardfork = struct [@@deriving sexp, equal, hash, compare, yojson, hlist, fields, bin_io_unversioned] - let of_stable (account : Stable.Latest.t) : t = - { public_key = account.public_key - ; token_id = account.token_id - ; token_symbol = account.token_symbol - ; balance = account.balance - ; nonce = account.nonce - ; receipt_chain_hash = account.receipt_chain_hash - ; delegate = account.delegate - ; voting_for = account.voting_for - ; timing = account.timing - ; permissions = account.permissions - ; zkapp = Option.map ~f:Zkapp_account.Hardfork.of_stable account.zkapp + (* This function converts current account to Mesa account *) + let migrate_to_mesa ~hardfork_slot:_ + ({ public_key + ; token_id + ; token_symbol + ; balance + ; nonce + ; receipt_chain_hash + ; delegate + ; voting_for + ; timing + ; permissions + ; zkapp + } : + Stable.Latest.t ) : t = + { public_key + ; token_id + ; token_symbol + ; balance + ; nonce + ; receipt_chain_hash + ; delegate + ; voting_for + ; timing + ; permissions + ; zkapp } - (* This function converts Berkeley account to Mesa account *) - let migrate_from_berkeley ~hardfork_slot (account : Stable.Latest.t) : t = - slot_reduction_update ~hardfork_slot account |> of_stable - let balance { balance; _ } = balance - let empty = of_stable empty + (** An empty Mesa account. Note that this is not [of_stable] on the empty + Berkeley account, because [of_stable] deliberately avoids changing the + permissions of accounts. For that reason we use the anticipated Mesa + [Permissions.Hardfork.user_default] permissions explicitly. + *) + let empty : t = + { public_key = Public_key.Compressed.empty + ; token_id = Token_id.default + ; token_symbol = Token_symbol.default + ; balance = Balance.zero + ; nonce = Nonce.zero + ; receipt_chain_hash = Receipt.Chain_hash.empty + ; delegate = None + ; voting_for = State_hash.dummy + ; timing = Timing.Untimed + ; permissions = Permissions.Hardfork.user_default + ; zkapp = None + } let identifier ({ public_key; token_id; _ } : t) = Account_id.create public_key token_id @@ -1124,6 +1154,8 @@ module Hardfork = struct (Random_oracle.pack_input (to_input t)) let empty_digest = lazy (digest empty) + + let empty_account_string = lazy (Bin_prot.Writer.to_string bin_writer_t empty) end (* An unstable account is needed when we're doing ledger migration. The main diff --git a/src/lib/mina_base/aux_hash.ml b/src/lib/mina_base/aux_hash.ml new file mode 100644 index 000000000000..fe0fcf40ceb1 --- /dev/null +++ b/src/lib/mina_base/aux_hash.ml @@ -0,0 +1,81 @@ +open Core_kernel + +let length_in_bits = 256 + +let length_in_bytes = length_in_bits / 8 + +[%%versioned +module Stable = struct + module V1 = struct + type t = Mina_stdlib.Bounded_types.String.Stable.V1.t + [@@deriving sexp, equal, compare, hash, yojson] + + let to_latest = Fn.id + + module Base58_check = Base58_check.Make (struct + let description = "Aux hash" + + let version_byte = Base58_check.Version_bytes.staged_ledger_hash_aux_hash + end) + + let to_base58_check s = Base58_check.encode s + + let of_base58_check_exn s = Base58_check.decode_exn s + + let to_yojson s = `String (to_base58_check s) + + let of_yojson = function + | `String s -> ( + match Base58_check.decode s with + | Error e -> + Error + (sprintf "Aux_hash.of_yojson, bad Base58Check:%s" + (Error.to_string_hum e) ) + | Ok x -> + Ok x ) + | _ -> + Error "Aux_hash.of_yojson expected `String" + end +end] + +[%%define_locally +Stable.Latest. + ( to_yojson + , of_yojson + , to_base58_check + , of_base58_check_exn + , compare + , sexp_of_t )] + +let of_bytes = Fn.id + +let to_bytes = Fn.id + +let dummy : t = String.init length_in_bytes ~f:(fun _ -> '\000') + +let of_sha256 : Digestif.SHA256.t -> t = + Fn.compose of_bytes Digestif.SHA256.to_raw_string + +let gen : t Quickcheck.Generator.t = + let char_generator = + Base_quickcheck.Generator.of_list + [ '0' + ; '1' + ; '2' + ; '3' + ; '4' + ; '5' + ; '6' + ; '7' + ; '8' + ; '9' + ; 'A' + ; 'B' + ; 'C' + ; 'D' + ; 'E' + ; 'F' + ] + in + String.gen_with_length (length_in_bytes * 2) char_generator + |> Quickcheck.Generator.map ~f:(Fn.compose of_sha256 Digestif.SHA256.of_hex) diff --git a/src/lib/mina_base/chain_id.ml b/src/lib/mina_base/chain_id.ml new file mode 100644 index 000000000000..a365faafb3c7 --- /dev/null +++ b/src/lib/mina_base/chain_id.ml @@ -0,0 +1,38 @@ +open Core_kernel + +module Inputs = struct + type t = + { genesis_state_hash : Data_hash_lib.State_hash.t + ; genesis_constants : Genesis_constants.t + ; constraint_system_digests : (string * Md5_lib.t) list + ; protocol_transaction_version : int + ; protocol_network_version : int + } +end + +let make (inputs : Inputs.t) = + (* if this changes, also change Mina_commands.chain_id_inputs *) + let genesis_state_hash = + State_hash.to_base58_check inputs.genesis_state_hash + in + let genesis_constants_hash = + Genesis_constants.hash inputs.genesis_constants + in + let all_snark_keys = + List.map inputs.constraint_system_digests ~f:(fun (_, digest) -> + Md5.to_hex digest ) + |> String.concat ~sep:"" + in + let version_digest v = Int.to_string v |> Md5.digest_string |> Md5.to_hex in + let protocol_transaction_version_digest = + version_digest inputs.protocol_transaction_version + in + let protocol_network_version_digest = + version_digest inputs.protocol_network_version + in + let b2 = + Blake2.digest_string + ( genesis_state_hash ^ all_snark_keys ^ genesis_constants_hash + ^ protocol_transaction_version_digest ^ protocol_network_version_digest ) + in + Blake2.to_hex b2 diff --git a/src/lib/mina_base/mina_base.ml b/src/lib/mina_base/mina_base.ml index 4104b5b99352..f0ee4b559173 100644 --- a/src/lib/mina_base/mina_base.ml +++ b/src/lib/mina_base/mina_base.ml @@ -3,7 +3,9 @@ module Util = Mina_base_util module Account = Account module Account_id = Account_id module Account_timing = Account_timing +module Aux_hash = Aux_hash module Call_stack_digest = Call_stack_digest +module Chain_id = Chain_id module Coinbase = Coinbase module Coinbase_fee_transfer = Coinbase_fee_transfer module Control = Control diff --git a/src/lib/mina_base/permissions.ml b/src/lib/mina_base/permissions.ml index 155ab1186ddb..e1b213ee15d7 100644 --- a/src/lib/mina_base/permissions.ml +++ b/src/lib/mina_base/permissions.ml @@ -675,3 +675,41 @@ let%test_unit "json value" = setTiming: "Signature" }|json} |> Yojson.Safe.from_string |> Yojson.Safe.to_string ) + +module Hardfork = struct + type t = Stable.Latest.t [@@deriving equal, sexp, compare] + + let hardfork_txn_version = Mina_numbers.Txn_version.(succ current) + + let user_default : t = + { edit_state = Signature + ; send = Signature + ; receive = None + ; set_delegate = Signature + ; set_permissions = Signature + ; set_verification_key = (Signature, hardfork_txn_version) + ; set_zkapp_uri = Signature + ; edit_action_state = Signature + ; set_token_symbol = Signature + ; increment_nonce = Signature + ; set_voting_for = Signature + ; set_timing = Signature + ; access = None + } + + let empty : t = + { edit_state = None + ; send = None + ; receive = None + ; access = None + ; set_delegate = None + ; set_permissions = None + ; set_verification_key = (None, hardfork_txn_version) + ; set_zkapp_uri = None + ; edit_action_state = None + ; set_token_symbol = None + ; increment_nonce = None + ; set_voting_for = None + ; set_timing = None + } +end diff --git a/src/lib/mina_base/permissions.mli b/src/lib/mina_base/permissions.mli index 2e0ecfbc5335..9cd2d10135f3 100644 --- a/src/lib/mina_base/permissions.mli +++ b/src/lib/mina_base/permissions.mli @@ -145,3 +145,11 @@ val deriver : as 'a ) -> 'a + +module Hardfork : sig + type t = Stable.Latest.t [@@deriving equal, sexp, compare] + + val user_default : t + + val empty : t +end diff --git a/src/lib/mina_base/staged_ledger_hash.ml b/src/lib/mina_base/staged_ledger_hash.ml index 82fa351932dc..9e874da73178 100644 --- a/src/lib/mina_base/staged_ledger_hash.ml +++ b/src/lib/mina_base/staged_ledger_hash.ml @@ -14,89 +14,7 @@ module Make_sig (A : Wire_types.Types.S) = struct end module Make_str (A : Wire_types.Concrete) = struct - module Aux_hash = struct - let length_in_bits = 256 - - let length_in_bytes = length_in_bits / 8 - - [%%versioned - module Stable = struct - module V1 = struct - type t = Mina_stdlib.Bounded_types.String.Stable.V1.t - [@@deriving sexp, equal, compare, hash] - - let to_latest = Fn.id - - module Base58_check = Base58_check.Make (struct - let description = "Aux hash" - - let version_byte = - Base58_check.Version_bytes.staged_ledger_hash_aux_hash - end) - - let to_base58_check s = Base58_check.encode s - - let of_base58_check_exn s = Base58_check.decode_exn s - - let to_yojson s = `String (to_base58_check s) - - let of_yojson = function - | `String s -> ( - match Base58_check.decode s with - | Error e -> - Error - (sprintf "Aux_hash.of_yojson, bad Base58Check:%s" - (Error.to_string_hum e) ) - | Ok x -> - Ok x ) - | _ -> - Error "Aux_hash.of_yojson expected `String" - end - end] - - [%%define_locally - Stable.Latest. - ( to_yojson - , of_yojson - , to_base58_check - , of_base58_check_exn - , compare - , sexp_of_t )] - - let of_bytes = Fn.id - - let to_bytes = Fn.id - - let dummy : t = String.init length_in_bytes ~f:(fun _ -> '\000') - - let of_sha256 : Digestif.SHA256.t -> t = - Fn.compose of_bytes Digestif.SHA256.to_raw_string - - let gen : t Quickcheck.Generator.t = - let char_generator = - Base_quickcheck.Generator.of_list - [ '0' - ; '1' - ; '2' - ; '3' - ; '4' - ; '5' - ; '6' - ; '7' - ; '8' - ; '9' - ; 'A' - ; 'B' - ; 'C' - ; 'D' - ; 'E' - ; 'F' - ] - in - String.gen_with_length (length_in_bytes * 2) char_generator - |> Quickcheck.Generator.map - ~f:(Fn.compose of_sha256 Digestif.SHA256.of_hex) - end + module Aux_hash = Aux_hash module Pending_coinbase_aux = struct let length_in_bits = 256 diff --git a/src/lib/mina_base/zkapp_account.ml b/src/lib/mina_base/zkapp_account.ml index 32873edd3f07..3e6fb61bc75c 100644 --- a/src/lib/mina_base/zkapp_account.ml +++ b/src/lib/mina_base/zkapp_account.ml @@ -440,10 +440,7 @@ let gen_uri = let gen : t Quickcheck.Generator.t = let open Quickcheck in let open Generator.Let_syntax in - let app_state = - Pickles_types.Vector.init Zkapp_state.Max_state_size.n ~f:(fun _ -> - F.random () ) - in + let%bind app_state = Zkapp_state.Value.gen in let%bind zkapp_version = Mina_numbers.Zkapp_version.gen in let%bind seq_state = Generator.list_with_length 5 Field.gen in let%map zkapp_uri = gen_uri in @@ -469,16 +466,6 @@ module Hardfork = struct Poly.Stable.Latest.t [@@deriving sexp, equal, hash, compare, yojson, bin_io_unversioned] - let of_stable (account : Stable.Latest.t) : t = - { app_state = Zkapp_state.Hardfork.Value.of_stable account.app_state - ; verification_key = account.verification_key - ; zkapp_version = account.zkapp_version - ; action_state = account.action_state - ; last_action_slot = account.last_action_slot - ; proved_state = account.proved_state - ; zkapp_uri = account.zkapp_uri - } - let to_input (t : t) : _ Random_oracle.Input.Chunked.t = let open Random_oracle.Input.Chunked in let f mk acc field = mk (Core_kernel.Field.get field t) :: acc in @@ -503,7 +490,5 @@ module Hardfork = struct Random_oracle.( hash ~init:Hash_prefix_states.zkapp_account (pack_input (to_input t))) - let default = of_stable default - let default_digest = lazy (digest default) end diff --git a/src/lib/mina_base/zkapp_state.ml b/src/lib/mina_base/zkapp_state.ml index e1d3ba02a891..1b678ecf067f 100644 --- a/src/lib/mina_base/zkapp_state.ml +++ b/src/lib/mina_base/zkapp_state.ml @@ -61,6 +61,14 @@ module Value = struct type t = Zkapp_basic.F.t V.t [@@deriving sexp, equal, yojson, hash, compare] let (_ : (t, Stable.Latest.t) Type_equal.t) = Type_equal.T + + let gen : t Quickcheck.Generator.t = + let open Quickcheck.Generator.Let_syntax in + let%map fields = + Quickcheck.Generator.list_with_length max_size_int + Snark_params.Tick.Field.gen + in + V.of_list_exn fields end let to_input (t : _ V.t) ~f = @@ -87,8 +95,5 @@ module Hardfork = struct module Value = struct type t = Zkapp_basic.F.Stable.V1.t V.t [@@deriving sexp, equal, hash, compare, yojson, bin_io_unversioned] - - let of_stable (value : Value.Stable.Latest.t) : t = - Vector.extend_front_exn value Nat.N32.n Zkapp_basic.F.zero end end diff --git a/src/lib/mina_block/validation.ml b/src/lib/mina_block/validation.ml index b59f0590039d..ac3e81256109 100644 --- a/src/lib/mina_block/validation.ml +++ b/src/lib/mina_block/validation.ml @@ -399,8 +399,8 @@ let skip_delta_block_chain_validation `This_block_was_not_received_via_gossip (Mina_stdlib.Nonempty_list.singleton previous_protocol_state_hash) ) let validate_frontier_dependencies ~to_header - ~context:(module Context : CONTEXT) ~root_block ~is_block_in_frontier - (t, validation) = + ~context:(module Context : CONTEXT) ~root_consensus_state + ~is_block_in_frontier (t, validation) = let module Context = struct include Context @@ -413,13 +413,6 @@ let validate_frontier_dependencies ~to_header let open Result.Let_syntax in let hash = State_hash.With_state_hashes.state_hash t in let protocol_state = Fn.compose Header.protocol_state to_header in - let root_consensus_state = - With_hash.map - ~f: - (Fn.compose Protocol_state.consensus_state - (Fn.compose Header.protocol_state Block.header) ) - root_block - in let parent_hash = Protocol_state.previous_state_hash (protocol_state @@ With_hash.data t) in diff --git a/src/lib/mina_block/validation.mli b/src/lib/mina_block/validation.mli index f8d681e60e70..798a6bb97ec7 100644 --- a/src/lib/mina_block/validation.mli +++ b/src/lib/mina_block/validation.mli @@ -283,7 +283,8 @@ val skip_delta_block_chain_validation : val validate_frontier_dependencies : to_header:('a -> Header.t) -> context:(module CONTEXT) - -> root_block:Block.with_hash + -> root_consensus_state: + Consensus.Data.Consensus_state.Value.t State_hash.With_state_hashes.t -> is_block_in_frontier:(Frozen_ledger_hash.t -> bool) -> ('a, State_hash.State_hashes.t) With_hash.t * ( 'b diff --git a/src/lib/mina_commands/mina_commands.ml b/src/lib/mina_commands/mina_commands.ml index 74dd3df79f18..84420736a328 100644 --- a/src/lib/mina_commands/mina_commands.ml +++ b/src/lib/mina_commands/mina_commands.ml @@ -206,8 +206,7 @@ module Receipt_chain_verifier = Merkle_list_verifier.Make (struct Receipt.Chain_hash.cons_zkapp_command_commitment fee_payer_index elt parent_hash *) end) -(* keep this code in sync with Mina_cli_entrypoint.chain_id *) -let chain_id_inputs (t : Mina_lib.t) = +let chain_id_inputs (t : Mina_lib.t) : Chain_id.Inputs.t = (* these are the inputs to Blake2.digest_string in Mina.chain_id *) let config = Mina_lib.config t in let precomputed_values = config.precomputed_values in @@ -215,20 +214,18 @@ let chain_id_inputs (t : Mina_lib.t) = (Precomputed_values.genesis_state_hashes precomputed_values).state_hash in let genesis_constants = precomputed_values.genesis_constants in - let snark_keys = - Lazy.force precomputed_values.constraint_system_digests - |> List.map ~f:(fun (_, digest) -> Md5.to_hex digest) - in let protocol_version = Protocol_version.current in let protocol_transaction_version = Protocol_version.transaction protocol_version in let protocol_network_version = Protocol_version.network protocol_version in - ( genesis_state_hash - , genesis_constants - , snark_keys - , protocol_transaction_version - , protocol_network_version ) + { Chain_id.Inputs.genesis_state_hash + ; genesis_constants + ; constraint_system_digests = + Lazy.force precomputed_values.constraint_system_digests + ; protocol_transaction_version + ; protocol_network_version + } let verify_payment t (addr : Account_id.t) (verifying_txn : User_command.Stable.Latest.t) (init_receipt, proof) = diff --git a/src/lib/mina_graphql/mina_graphql.ml b/src/lib/mina_graphql/mina_graphql.ml index 52d5c38cb406..0f52b4dc2fbd 100644 --- a/src/lib/mina_graphql/mina_graphql.ml +++ b/src/lib/mina_graphql/mina_graphql.ml @@ -2084,11 +2084,9 @@ module Queries = struct field "genesisBlock" ~typ:(non_null Types.block) ~args:[] ~doc:"Get the genesis block" ~resolve:(fun { ctx = mina; _ } () -> let open Mina_state in - let { Precomputed_values.genesis_ledger - ; constraint_constants - ; consensus_constants - ; genesis_epoch_data + let { Precomputed_values.constraint_constants ; proof_data + ; protocol_state_with_hashes ; _ } = (Mina_lib.config mina).precomputed_values @@ -2096,9 +2094,7 @@ module Queries = struct let { With_hash.data = genesis_state ; hash = { State_hash.State_hashes.state_hash = hash; _ } } = - let open Staged_ledger_diff in - Genesis_protocol_state.t ~genesis_ledger ~genesis_epoch_data - ~constraint_constants ~consensus_constants ~genesis_body_reference + protocol_state_with_hashes in let winner = fst Consensus_state_hooks.genesis_winner in { With_hash.data = diff --git a/src/lib/mina_intf/transition_frontier_components_intf.ml b/src/lib/mina_intf/transition_frontier_components_intf.ml index 262087bddcd4..7ad7814e3f08 100644 --- a/src/lib/mina_intf/transition_frontier_components_intf.ml +++ b/src/lib/mina_intf/transition_frontier_components_intf.ml @@ -181,8 +181,8 @@ module type Best_tip_prover_intf = sig val prove : context:(module CONTEXT) -> transition_frontier - -> ( Mina_block.t State_hash.With_state_hashes.t - , State_body_hash.t list * Mina_block.t ) + -> ( Frontier_base.Breadcrumb.t + , State_body_hash.t list * Frontier_base.Breadcrumb.t ) Proof_carrying_data.t option @@ -208,8 +208,8 @@ module type Consensus_best_tip_prover_intf = sig context:(module CONTEXT) -> frontier:transition_frontier -> Consensus.Data.Consensus_state.Value.t State_hash.With_state_hashes.t - -> ( Mina_block.t - , State_body_hash.t list * Mina_block.t ) + -> ( Frontier_base.Breadcrumb.t + , State_body_hash.t list * Frontier_base.Breadcrumb.t ) Proof_carrying_data.t option diff --git a/src/lib/mina_ledger/ledger.ml b/src/lib/mina_ledger/ledger.ml index 25e26768ce0b..11c886f8a5ae 100644 --- a/src/lib/mina_ledger/ledger.ml +++ b/src/lib/mina_ledger/ledger.ml @@ -493,7 +493,9 @@ module Ledger_inner = struct (struct type converted_account = Account.Hardfork.t - let convert = Account.Hardfork.of_stable + let convert = + Account.Hardfork.migrate_to_mesa + ~hardfork_slot:Mina_numbers.Global_slot_since_genesis.zero let converted_equal = Account.Hardfork.equal @@ -965,7 +967,11 @@ let%test_unit "user_command application on converting ledger" = let account_converted = Hardfork_db.get_at_index_exn cl index in assert ( Mina_base.Account.Hardfork.( - equal (of_stable account) account_converted) ) ) ; + equal + (Account.Hardfork.migrate_to_mesa + ~hardfork_slot: + Mina_numbers.Global_slot_since_genesis.zero account ) + account_converted) ) ) ; (* Assert that the converted ledger doesn't have anything "extra" compared to the primary ledger *) Hardfork_db.iteri cl ~f:(fun index account_converted -> let account = L.get_at_index_exn l index in diff --git a/src/lib/mina_ledger/root.ml b/src/lib/mina_ledger/root.ml index 287da89eb364..4f231d3ecdaf 100644 --- a/src/lib/mina_ledger/root.ml +++ b/src/lib/mina_ledger/root.ml @@ -1,3 +1,4 @@ +open Async open Core open Mina_base @@ -180,7 +181,7 @@ module T = struct ; hardfork_slot } -> let module Converting_ledger = Ledger.Make_converting (struct - let convert = Account.Hardfork.migrate_from_berkeley ~hardfork_slot + let convert = Account.Hardfork.migrate_to_mesa ~hardfork_slot end) in let config : Converting_ledger.Config.t = { primary_directory; converting_directory } @@ -197,7 +198,7 @@ module T = struct Stable_db (Ledger.Db.create ~depth ()) | Converting_db hardfork_slot -> let module Converting_ledger = Ledger.Make_converting (struct - let convert = Account.Hardfork.migrate_from_berkeley ~hardfork_slot + let convert = Account.Hardfork.migrate_to_mesa ~hardfork_slot end) in Converting_db ( (module Converting_ledger) @@ -275,7 +276,7 @@ module T = struct let addrs_and_accounts = List.mapi stable_locations_and_accounts ~f:(fun i acct -> ( Ledger.Hardfork_db.Addr.of_int_exn ~ledger_depth i - , Account.Hardfork.migrate_from_berkeley ~hardfork_slot acct ) ) + , Account.Hardfork.migrate_to_mesa ~hardfork_slot acct ) ) in let rec set_chunks accounts = let%bind () = Async_unix.Scheduler.yield () in @@ -303,7 +304,7 @@ module T = struct ~message:"Invariant: database must be in a directory" in let module Converting_ledger = Ledger.Make_converting (struct - let convert = Account.Hardfork.migrate_from_berkeley ~hardfork_slot + let convert = Account.Hardfork.migrate_to_mesa ~hardfork_slot end) in let converting_config = Converting_ledger.Config.with_primary ~directory_name @@ -388,6 +389,33 @@ module T = struct | Converting_db ((module Converting_ledger), db, _) -> ( Converting_ledger.primary_ledger db , Some (Converting_ledger.converting_ledger db) ) + + let copy_reconfigured t ~config () = + let open Deferred.Let_syntax in + (* We must handle the transformation + (stable|converting)->(stable|converting). Rather than handle all four + separately, it ends up being simpler to start by asking if the two + backings are equal or not. *) + if + Config.equal_backing_type (backing_of_t t) + (Config.backing_of_config config) + then + (* If the src/dest backings are equal, simply checkpoint *) + create_checkpoint t ~config () |> return + else + (* Otherwise, copy the stable database and then migrate if necessary *) + let dest_root = + Stable_db + (Ledger.Db.create_checkpoint + (fst (unsafely_decompose_root t)) + ~directory_name:(Config.primary_directory config) + () ) + in + match Config.backing_of_config config with + | Stable_db -> + return dest_root + | Converting_db hardfork_slot -> + make_converting ~hardfork_slot dest_root end include T diff --git a/src/lib/mina_ledger/root.mli b/src/lib/mina_ledger/root.mli index b26993ec34c7..b9c67d7855f8 100644 --- a/src/lib/mina_ledger/root.mli +++ b/src/lib/mina_ledger/root.mli @@ -82,9 +82,9 @@ val create_temporary : (** Retrieve the hash of the merkle root of the root ledger *) val merkle_root : t -> root_hash -(** Make a checkpoint of the root ledger and return a new root ledger backed - by that checkpoint. Throws an exception if the config does not match the - backing type of the root. *) +(** Make a checkpoint of the root ledger and return a new root ledger backed by + that checkpoint. Throws an exception if the config does not match the + backing type of the root. *) val create_checkpoint : t -> config:Config.t -> unit -> t (** Make a checkpoint of the root ledger. Throws an exception if the config @@ -105,6 +105,11 @@ val make_converting : -> t -> t Async.Deferred.t +(** Create a copy of the given root ledger. The resulting root will have a + backing that matches the one given in [config]; the stable database will be + migrated at the destination if necessary. *) +val copy_reconfigured : t -> config:Config.t -> unit -> t Async.Deferred.t + (** View the root ledger as an unmasked [Any_ledger] so it can be used by code that does not need to know how the root is implemented *) val as_unmasked : t -> Ledger.Any_ledger.witness diff --git a/src/lib/mina_ledger/test/test_mina_ledger.ml b/src/lib/mina_ledger/test/test_mina_ledger.ml index 1fcdde46d39e..4455e94d16a1 100644 --- a/src/lib/mina_ledger/test/test_mina_ledger.ml +++ b/src/lib/mina_ledger/test/test_mina_ledger.ml @@ -95,7 +95,7 @@ module Root_test = struct let check_converting_open ~primary_dir ~hardfork_slot = let module Converting_ledger = L.Make_converting (struct - let convert = Account.Hardfork.migrate_from_berkeley ~hardfork_slot + let convert = Account.Hardfork.migrate_to_mesa ~hardfork_slot end) in Converting_ledger.( create diff --git a/src/lib/mina_lib/config.ml b/src/lib/mina_lib/config.ml index 8218e735ee10..c84fd72c7328 100644 --- a/src/lib/mina_lib/config.ml +++ b/src/lib/mina_lib/config.ml @@ -21,7 +21,6 @@ type t = ; pids : Child_processes.Termination.t ; trust_system : Trust_system.t ; monitor : Monitor.t option - ; is_seed : bool ; disable_node_status : bool ; block_production_keypairs : Keypair.And_compressed_pk.Set.t ; coinbase_receiver : Consensus.Coinbase_receiver.t diff --git a/src/lib/mina_lib/mina_lib.ml b/src/lib/mina_lib/mina_lib.ml index d6e5585f7689..2c1da37bbe0c 100644 --- a/src/lib/mina_lib/mina_lib.ml +++ b/src/lib/mina_lib/mina_lib.ml @@ -2222,7 +2222,7 @@ let create ~commit_id ?wallets (config : Config.t) = Transition_router.run ~context:(module Context) ~trust_system:config.trust_system ~verifier ~network:net - ~is_seed:config.is_seed ~is_demo_mode:config.demo_mode + ~is_seed:config.net_config.is_seed ~is_demo_mode:config.demo_mode ~time_controller:config.time_controller ~consensus_local_state:config.consensus_local_state ~persistent_root_location:config.persistent_root_location @@ -2447,7 +2447,8 @@ let create ~commit_id ?wallets (config : Config.t) = ~genesis_timestamp: config.precomputed_values.genesis_constants.protocol .genesis_state_timestamp - ~net ~is_seed:config.is_seed ~demo_mode:config.demo_mode + ~net ~is_seed:config.net_config.is_seed + ~demo_mode:config.demo_mode ~transition_frontier_and_catchup_signal_incr ~online_status_incr:(Var.watch @@ of_broadcast_pipe online_status) ~first_connection_incr: @@ -3004,8 +3005,8 @@ module Hardfork_config = struct (** Generate the tar file and runtime ledger config for the given root database, and close and delete the database *) - let generate_tar_and_config ~get_directory ~get_root_hash ~logger ~target_dir - ~ledger_name_prefix root = + let generate_tar_and_config ~generate_tar ~get_directory ~get_root_hash + ~logger ~target_dir ~ledger_name_prefix root = let open Deferred.Or_error.Let_syntax in let root_hash = get_root_hash root in let ledger_dirname = @@ -3013,8 +3014,8 @@ module Hardfork_config = struct |> Option.value_exn ~message:"Root ledger must have a directory" in let%bind tar_path = - Genesis_ledger_helper.Ledger.generate_tar ~logger ~target_dir - ~ledger_name_prefix ~root_hash ~ledger_dirname () + generate_tar ~logger ~target_dir ~ledger_name_prefix ~root_hash + ~ledger_dirname () in let%map s3_data_hash = Genesis_ledger_helper.sha3_hash tar_path @@ -3043,22 +3044,24 @@ module Hardfork_config = struct close () ; result with exn -> close () ; raise exn - let generate_tars_and_configs ~get_directory ~get_root_hash ~logger - ~target_dir genesis_ledger genesis_staking_ledger + let generate_tars_and_configs ~generate_tar ~get_directory ~get_root_hash + ~logger ~target_dir genesis_ledger genesis_staking_ledger genesis_next_epoch_ledger = let open Deferred.Or_error.Let_syntax in Core.Unix.mkdir_p target_dir ; let%bind genesis_ledger_config = - generate_tar_and_config ~get_directory ~get_root_hash ~logger ~target_dir - ~ledger_name_prefix:"genesis_ledger" genesis_ledger + generate_tar_and_config ~generate_tar ~get_directory ~get_root_hash + ~logger ~target_dir ~ledger_name_prefix:"genesis_ledger" genesis_ledger in let%bind genesis_staking_ledger_config = - generate_tar_and_config ~get_directory ~get_root_hash ~logger ~target_dir - ~ledger_name_prefix:"epoch_ledger" genesis_staking_ledger + generate_tar_and_config ~generate_tar ~get_directory ~get_root_hash + ~logger ~target_dir ~ledger_name_prefix:"epoch_ledger" + genesis_staking_ledger in let%map genesis_next_epoch_ledger_config = - generate_tar_and_config ~get_directory ~get_root_hash ~logger ~target_dir - ~ledger_name_prefix:"epoch_ledger" genesis_next_epoch_ledger + generate_tar_and_config ~generate_tar ~get_directory ~get_root_hash + ~logger ~target_dir ~ledger_name_prefix:"epoch_ledger" + genesis_next_epoch_ledger in ( genesis_ledger_config , genesis_staking_ledger_config @@ -3091,7 +3094,9 @@ module Hardfork_config = struct Core.Unix.mkdir_p config_dir ; let genesis_dir = config_dir ^/ "genesis" in let%bind genesis_config = - generate_tars_and_configs ~get_directory:Ledger.Db.get_directory + generate_tars_and_configs + ~generate_tar:Genesis_ledger_helper.Ledger.generate_tar_stable + ~get_directory:Ledger.Db.get_directory ~get_root_hash:Ledger.Db.merkle_root ~logger ~target_dir:genesis_dir genesis_ledger genesis_staking_ledger genesis_next_epoch_ledger in @@ -3111,7 +3116,9 @@ module Hardfork_config = struct Core.Unix.mkdir_p config_dir ; let genesis_dir = config_dir ^/ "genesis" in let%bind genesis_config = - generate_tars_and_configs ~get_directory:Ledger.Hardfork_db.get_directory + generate_tars_and_configs + ~generate_tar:Genesis_ledger_helper.Ledger.generate_tar_hardfork + ~get_directory:Ledger.Hardfork_db.get_directory ~get_root_hash:Ledger.Hardfork_db.merkle_root ~logger ~target_dir:genesis_dir genesis_ledger genesis_staking_ledger genesis_next_epoch_ledger diff --git a/src/lib/mina_lib/tests/tests.ml b/src/lib/mina_lib/tests/tests.ml index 44a4cd0fa98b..819f278fbb46 100644 --- a/src/lib/mina_lib/tests/tests.ml +++ b/src/lib/mina_lib/tests/tests.ml @@ -83,7 +83,6 @@ let%test_module "Epoch ledger sync tests" = ~genesis_dir:(make_dirname "genesis_dir") ~constraint_constants ~genesis_constants ~logger ~proof_level:No_check runtime_config ~cli_proof_level:None - ~ledger_backing:Stable_db with | Ok precomputed_values -> precomputed_values @@ -131,7 +130,7 @@ let%test_module "Epoch ledger sync tests" = ~max_subtree_depth:None ~default_subtree_depth:None () end in let genesis_ledger = Genesis_ledger.for_unit_tests in - let genesis_epoch_data : Consensus.Genesis_epoch_data.t = None in + let genesis_epoch_data = None in let genesis_state_hash = Quickcheck.random_value Ledger_hash.gen in let consensus_local_state = Consensus.Data.Local_state.create diff --git a/src/lib/mina_net2/libp2p_helper.ml b/src/lib/mina_net2/libp2p_helper.ml index 3d9a097b8f51..2eafdbf3165f 100644 --- a/src/lib/mina_net2/libp2p_helper.ml +++ b/src/lib/mina_net2/libp2p_helper.ml @@ -118,6 +118,21 @@ let%test "record_of_yojson 1" = lines ) [ true; false ] +(** State for managing a libp2p_helper child process and interactions with it. + Push messages (which do not need direct responses) between libp2p_helper and + the parent ocaml process do not need tracking here. RPC requests sent from + the parent to the libp2p_helper do need responses; these are coordinated + through the [outstanding_requests] table. + + 1. Before sending a request to the libp2p_helper in [do_rpc], an empty + [Ivar.t] is added to the [outstanding_requests] table. The request will then + be sent, and the requester will wait on the [Ivar.t]. + + 2. When processing a response from the libp2p_helper in + [handle_incoming_message], the entry in the [outstanding_requests] table for + the associated request will be removed. The [Ivar.t] will then be filled + with the response. +*) type t = { process : Child_processes.t ; logger : Logger.t @@ -126,6 +141,8 @@ type t = ; outstanding_requests : Libp2p_ipc.rpc_response_body Or_error.t Ivar.t Libp2p_ipc.Sequence_number.Table.t + (** A table tracking requests to the libp2p helper that need + responses *) } let handle_libp2p_helper_termination t ~pids ~killed result = @@ -196,15 +213,13 @@ let handle_incoming_message t msg ~handle_push_message = RpcMessageHeader.sequence_number_get rpc_header in record_message_delay (RpcMessageHeader.time_sent_get rpc_header) ; - match Hashtbl.find t.outstanding_requests sequence_number with + match + Hashtbl.find_and_remove t.outstanding_requests sequence_number + with | Some ivar -> - if Ivar.is_full ivar then - [%log' error t.logger] - "Attempted fill outstanding libp2p_helper RPC request \ - more than once" - else - Ivar.fill ivar - (Libp2p_ipc.rpc_response_to_or_error rpc_response) + (* Invariant: no ivar is filled when they're in [t.outstanding_requests] *) + Ivar.fill ivar + (Libp2p_ipc.rpc_response_to_or_error rpc_response) | None -> [%log' error t.logger] "Attempted to fill outstanding libp2p_helper RPC request, \ diff --git a/src/lib/mina_networking/rpcs.ml b/src/lib/mina_networking/rpcs.ml index 76725e8af442..69e36308d71f 100644 --- a/src/lib/mina_networking/rpcs.ml +++ b/src/lib/mina_networking/rpcs.ml @@ -47,24 +47,23 @@ end type ctx = (module CONTEXT) -let validate_protocol_versions ~logger ~trust_system ~rpc_name ~sender blocks = +let validate_protocol_versions ~logger ~trust_system ~rpc_name ~sender headers = let version_errors = let invalid_current_versions = - List.filter blocks ~f:(fun block -> - Mina_block.header block |> Mina_block.Header.current_protocol_version + List.filter headers ~f:(fun header -> + Mina_block.Header.current_protocol_version header |> Protocol_version.is_valid |> not ) in let invalid_next_versions = - List.filter blocks ~f:(fun block -> - Mina_block.header block - |> Mina_block.Header.proposed_protocol_version_opt + List.filter headers ~f:(fun header -> + Mina_block.Header.proposed_protocol_version_opt header |> Option.for_all ~f:Protocol_version.is_valid |> not ) in let current_version_mismatches = - List.filter blocks ~f:(fun block -> - Mina_block.header block |> Mina_block.Header.current_protocol_version + List.filter headers ~f:(fun header -> + Mina_block.Header.current_protocol_version header |> Protocol_version.compatible_with_daemon |> not ) in List.map invalid_current_versions ~f:(fun x -> @@ -77,8 +76,7 @@ let validate_protocol_versions ~logger ~trust_system ~rpc_name ~sender blocks = (* NB: these errors aren't always accurate... sometimes we are calling this when we were requested to serve an outdated block (requested vs sent) *) Deferred.List.iter version_errors ~how:`Parallel - ~f:(fun (version_error, block) -> - let header = Mina_block.header block in + ~f:(fun (version_error, header) -> let block_protocol_version = Mina_block.Header.current_protocol_version header in @@ -539,7 +537,7 @@ module Get_transition_chain = struct validate_protocol_versions ~logger ~trust_system ~rpc_name:"Get_transition_chain" ~sender:(Envelope.Incoming.sender request) - blocks + (List.map blocks ~f:Mina_block.header) in Option.some_if valid_versions @@ List.map ~f:Mina_block.read_all_proofs_from_disk blocks @@ -951,11 +949,13 @@ module Get_ancestry = struct in None | Some { proof = chain, base_block; data = block } -> + let block = Frontier_base.Breadcrumb.block block in + let base_block = Frontier_base.Breadcrumb.block base_block in let%map valid_versions = validate_protocol_versions ~logger ~trust_system ~rpc_name:"Get_ancestry" ~sender:(Envelope.Incoming.sender request) - [ base_block ] + [ Mina_block.header base_block ] in Option.some_if valid_versions { Proof_carrying_data.proof = @@ -1137,11 +1137,7 @@ module Get_best_tip = struct let result = let open Option.Let_syntax in let%bind frontier = get_transition_frontier () in - let%map proof_with_data = - Best_tip_prover.prove ~context:(module Context) frontier - in - (* strip hash from proof data *) - Proof_carrying_data.map proof_with_data ~f:With_hash.data + Best_tip_prover.prove ~context:(module Context) frontier in match result with | None -> @@ -1154,16 +1150,18 @@ module Get_best_tip = struct in None | Some { data = data_block; proof = chain, proof_block } -> + let data_block = Frontier_base.Breadcrumb.block data_block in + let proof_block = Frontier_base.Breadcrumb.block proof_block in let%map data_valid_versions = validate_protocol_versions ~logger ~trust_system ~rpc_name:"Get_best_tip (data)" ~sender:(Envelope.Incoming.sender request) - [ data_block ] + [ Mina_block.header data_block ] and proof_valid_versions = validate_protocol_versions ~logger ~trust_system ~rpc_name:"Get_best_tip (proof)" ~sender:(Envelope.Incoming.sender request) - [ proof_block ] + [ Mina_block.header proof_block ] in Option.some_if (data_valid_versions && proof_valid_versions) diff --git a/src/lib/mina_state/genesis_protocol_state.ml b/src/lib/mina_state/genesis_protocol_state.ml index c15026284eba..aad9e3119043 100644 --- a/src/lib/mina_state/genesis_protocol_state.ml +++ b/src/lib/mina_state/genesis_protocol_state.ml @@ -2,12 +2,6 @@ open Core_kernel let t ~genesis_ledger ~genesis_epoch_data ~constraint_constants ~consensus_constants ~genesis_body_reference = - let genesis_ledger_forced = - Lazy.force @@ Genesis_ledger.Packed.t genesis_ledger - in - let genesis_ledger_hash = - Mina_ledger.Ledger.merkle_root genesis_ledger_forced - in let protocol_constants = Consensus.Constants.to_protocol_constants consensus_constants in @@ -32,7 +26,9 @@ let t ~genesis_ledger ~genesis_epoch_data ~constraint_constants ~f:(fun { state_hash; _ } -> state_hash) ) ~blockchain_state: (Blockchain_state.genesis ~constraint_constants ~consensus_constants - ~genesis_ledger_hash ~genesis_body_reference ) + ~genesis_ledger_hash: + (Consensus.Genesis_data.Hashed.hash genesis_ledger) + ~genesis_body_reference ) ~consensus_state:genesis_consensus_state ~constants:protocol_constants in With_hash.of_data ~hash_data:Protocol_state.hashes state diff --git a/src/lib/mina_state/genesis_protocol_state.mli b/src/lib/mina_state/genesis_protocol_state.mli index 3f40dc1b09a9..bb017d4db0ba 100644 --- a/src/lib/mina_state/genesis_protocol_state.mli +++ b/src/lib/mina_state/genesis_protocol_state.mli @@ -1,8 +1,9 @@ open Mina_base val t : - genesis_ledger:Genesis_ledger.Packed.t - -> genesis_epoch_data:Consensus.Genesis_epoch_data.t + genesis_ledger:Consensus.Genesis_data.Hashed.t + -> genesis_epoch_data: + Consensus.Genesis_data.Hashed.t Consensus.Genesis_data.Epoch.t -> constraint_constants:Genesis_constants.Constraint_constants.t -> consensus_constants:Consensus.Constants.t -> genesis_body_reference:Consensus.Body_reference.t diff --git a/src/lib/mina_state/protocol_state.ml b/src/lib/mina_state/protocol_state.ml index 771f000be27d..7e2f01cfcaed 100644 --- a/src/lib/mina_state/protocol_state.ml +++ b/src/lib/mina_state/protocol_state.ml @@ -293,8 +293,9 @@ module Make_str (A : Wire_types.Concrete) = struct hash else state.body.genesis_state_hash - let negative_one ~genesis_ledger ~genesis_epoch_data ~constraint_constants - ~consensus_constants ~genesis_body_reference = + let negative_one ~(genesis_ledger : Consensus.Genesis_data.Hashed.t) + ~genesis_epoch_data ~constraint_constants ~consensus_constants + ~genesis_body_reference = { Poly.Stable.Latest.previous_state_hash = State_hash.of_hash Outside_hash_image.t ; body = @@ -302,8 +303,7 @@ module Make_str (A : Wire_types.Concrete) = struct Blockchain_state.negative_one ~constraint_constants ~consensus_constants ~genesis_ledger_hash: - (Mina_ledger.Ledger.merkle_root - (Lazy.force (Genesis_ledger.Packed.t genesis_ledger)) ) + (Consensus.Genesis_data.Hashed.hash genesis_ledger) ~genesis_body_reference ; genesis_state_hash = State_hash.of_hash Outside_hash_image.t ; consensus_state = diff --git a/src/lib/mina_state/protocol_state_intf.ml b/src/lib/mina_state/protocol_state_intf.ml index b3d2b3e96989..613f76cd6cbc 100644 --- a/src/lib/mina_state/protocol_state_intf.ml +++ b/src/lib/mina_state/protocol_state_intf.ml @@ -148,8 +148,9 @@ module type Full = sig val constants : (_, (_, _, _, 'a) Body.t) Poly.t -> 'a val negative_one : - genesis_ledger:Genesis_ledger.Packed.t - -> genesis_epoch_data:Consensus.Genesis_epoch_data.t + genesis_ledger:Consensus.Genesis_data.Hashed.t + -> genesis_epoch_data: + Consensus.Genesis_data.Hashed.t Consensus.Genesis_data.Epoch.t -> constraint_constants:Genesis_constants.Constraint_constants.t -> consensus_constants:Consensus.Constants.t -> genesis_body_reference:Consensus.Body_reference.t diff --git a/src/lib/network_pool/test/indexed_pool_tests.ml b/src/lib/network_pool/test/indexed_pool_tests.ml index d70ad3e04554..a35c1a1c9e77 100644 --- a/src/lib/network_pool/test/indexed_pool_tests.ml +++ b/src/lib/network_pool/test/indexed_pool_tests.ml @@ -407,8 +407,11 @@ let dummy_state_view = let compile_time_genesis = (*not using Precomputed_values.for_unit_test because of dependency cycle*) Mina_state.Genesis_protocol_state.t - ~genesis_ledger:Genesis_ledger.for_unit_tests - ~genesis_epoch_data:Consensus.Genesis_epoch_data.for_unit_tests + ~genesis_ledger: + (Consensus.Genesis_data.Ledger.to_hashed Genesis_ledger.for_unit_tests) + ~genesis_epoch_data: + (Consensus.Genesis_data.Epoch.to_hashed + Consensus.Genesis_data.Epoch.for_unit_tests ) ~genesis_body_reference:Staged_ledger_diff.genesis_body_reference ~constraint_constants ~consensus_constants in diff --git a/src/lib/network_pool/transaction_pool.ml b/src/lib/network_pool/transaction_pool.ml index 3c3b43e7a926..572b60502569 100644 --- a/src/lib/network_pool/transaction_pool.ml +++ b/src/lib/network_pool/transaction_pool.ml @@ -1713,8 +1713,12 @@ let%test_module _ = let compile_time_genesis = (*not using Precomputed_values.for_unit_test because of dependency cycle*) Mina_state.Genesis_protocol_state.t - ~genesis_ledger:Genesis_ledger.for_unit_tests - ~genesis_epoch_data:Consensus.Genesis_epoch_data.for_unit_tests + ~genesis_ledger: + (Consensus.Genesis_data.Ledger.to_hashed + Genesis_ledger.for_unit_tests ) + ~genesis_epoch_data: + (Consensus.Genesis_data.Epoch.to_hashed + Consensus.Genesis_data.Epoch.for_unit_tests ) ~constraint_constants ~consensus_constants ~genesis_body_reference:Staged_ledger_diff.genesis_body_reference in diff --git a/src/lib/node_config/dune b/src/lib/node_config/dune index 009a351845f9..c3e29dcfde77 100644 --- a/src/lib/node_config/dune +++ b/src/lib/node_config/dune @@ -6,7 +6,6 @@ node_config_version node_config_unconfigurable_constants node_config_profiled) - (instrumentation (backend bisect_ppx)) (preprocess diff --git a/src/lib/node_config/for_unit_tests/node_config_for_unit_tests.ml b/src/lib/node_config/for_unit_tests/node_config_for_unit_tests.ml index af05a7975621..a2f3ac81ee16 100644 --- a/src/lib/node_config/for_unit_tests/node_config_for_unit_tests.ml +++ b/src/lib/node_config/for_unit_tests/node_config_for_unit_tests.ml @@ -52,6 +52,8 @@ let compaction_interval = None let (network : string) = ("testnet" : string) +let (profile : string) = ("dev" : string) + let (vrf_poll_interval : int) = (0 : int) let zkapp_cmd_limit = None diff --git a/src/lib/node_config/intf/node_config_intf.mli b/src/lib/node_config/intf/node_config_intf.mli index f002290bbd39..3970f996f470 100644 --- a/src/lib/node_config/intf/node_config_intf.mli +++ b/src/lib/node_config/intf/node_config_intf.mli @@ -74,6 +74,8 @@ module type Profiled = sig val network : string + val profile : string + val zkapp_cmd_limit : int option val sync_ledger_max_subtree_depth : int diff --git a/src/lib/node_config/profiled/dev.ml b/src/lib/node_config/profiled/dev.ml index 2d1c9d32c7e0..f9214e5f24e9 100644 --- a/src/lib/node_config/profiled/dev.ml +++ b/src/lib/node_config/profiled/dev.ml @@ -44,6 +44,8 @@ let block_window_duration = 2000 let network = "testnet" +let profile = "dev" + let compaction_interval = None let vrf_poll_interval = 0 diff --git a/src/lib/node_config/profiled/devnet.ml b/src/lib/node_config/profiled/devnet.ml index ea7e3277078e..93b5aef07f87 100644 --- a/src/lib/node_config/profiled/devnet.ml +++ b/src/lib/node_config/profiled/devnet.ml @@ -3,3 +3,5 @@ include Mainnet let genesis_state_timestamp = "2021-09-24T00:00:00Z" let network = "testnet" + +let profile = "devnet" diff --git a/src/lib/node_config/profiled/dune b/src/lib/node_config/profiled/dune index ff33e64f1604..0691872e1980 100644 --- a/src/lib/node_config/profiled/dune +++ b/src/lib/node_config/profiled/dune @@ -4,4 +4,5 @@ (libraries comptime core_kernel node_config_intf) (instrumentation (backend bisect_ppx)) - (preprocess (pps ppx_version))) + (preprocess + (pps ppx_version))) diff --git a/src/lib/node_config/profiled/lightnet.ml b/src/lib/node_config/profiled/lightnet.ml index 548fe577a0ab..7b7beb38c16d 100644 --- a/src/lib/node_config/profiled/lightnet.ml +++ b/src/lib/node_config/profiled/lightnet.ml @@ -44,6 +44,8 @@ let block_window_duration = 20000 let network = "testnet" +let profile = "lightnet" + let compaction_interval = Some (2 * block_window_duration) let vrf_poll_interval = 5000 diff --git a/src/lib/node_config/profiled/mainnet.ml b/src/lib/node_config/profiled/mainnet.ml index f2b5301e529a..36531cb15eca 100644 --- a/src/lib/node_config/profiled/mainnet.ml +++ b/src/lib/node_config/profiled/mainnet.ml @@ -44,6 +44,8 @@ let block_window_duration = 90000 let network = "mainnet" +let profile = "mainnet" + let compaction_interval = Some (2 * block_window_duration) let vrf_poll_interval = 5000 diff --git a/src/lib/parallel_scan/parallel_scan.ml b/src/lib/parallel_scan/parallel_scan.ml index 3a4dac17e28c..69b988e63005 100644 --- a/src/lib/parallel_scan/parallel_scan.ml +++ b/src/lib/parallel_scan/parallel_scan.ml @@ -1430,25 +1430,6 @@ let last_emitted_value t = t.acc let current_job_sequence_number t = t.curr_job_seq_no -let base_jobs_on_latest_tree t = - let depth = Int.ceil_log2 t.max_base_jobs in - List.filter_map - (Tree.jobs_on_level ~depth ~level:depth - (Mina_stdlib.Nonempty_list.head t.trees) ) - ~f:(fun job -> match job with Base d -> Some d | Merge _ -> None) - -(* 0-based indexing, so 0 indicates next-to-latest tree *) -let base_jobs_on_earlier_tree t ~index = - let depth = Int.ceil_log2 t.max_base_jobs in - let earlier_trees = Mina_stdlib.Nonempty_list.tail t.trees in - match List.nth earlier_trees index with - | None -> - [] - | Some tree -> - let jobs = Tree.jobs_on_level ~depth ~level:depth tree in - List.filter_map jobs ~f:(fun job -> - match job with Base d -> Some d | Merge _ -> None ) - let partition_if_overflowing : ('merge, 'base) t -> Space_partition.t = fun t -> let cur_tree_space = free_space_on_current_tree t in diff --git a/src/lib/parallel_scan/parallel_scan.mli b/src/lib/parallel_scan/parallel_scan.mli index c740e5a0a1c2..a36cd783cc51 100644 --- a/src/lib/parallel_scan/parallel_scan.mli +++ b/src/lib/parallel_scan/parallel_scan.mli @@ -288,17 +288,6 @@ val view_jobs_with_position : -> ('base -> 'c) -> 'c Job_view.t list list -(** All the base jobs that are part of the latest tree being filled - * i.e., does not include base jobs that are part of previous trees not - * promoted to the merge jobs yet*) -val base_jobs_on_latest_tree : ('merge, 'base) State.t -> 'base list - -(** All the base jobs that are part of a tree before the latest tree - index is 0-based, 0 is the next-to-latest tree -*) -val base_jobs_on_earlier_tree : - ('merge, 'base) State.t -> index:int -> 'base list - (** Returns true only if the next 'd that could be enqueued is on a new tree*) val next_on_new_tree : ('merge, 'base) State.t -> bool diff --git a/src/lib/pickles/common.mli b/src/lib/pickles/common.mli deleted file mode 100644 index e3d38c045ca1..000000000000 --- a/src/lib/pickles/common.mli +++ /dev/null @@ -1,207 +0,0 @@ -val wrap_domains : proofs_verified:int -> Import.Domains.Stable.V2.t - -val actual_wrap_domain_size : - log_2_domain_size:int -> Pickles_base.Proofs_verified.t - -(** [when_profiling profiling default] returns [profiling] when environment - variable [PICKLES_PROFILING] is set to anything else than [0] or [false], - [default] otherwise. - - TODO: This function should use labels to avoid mistakenly interverting - profiling and default cases. - *) -val when_profiling : 'a -> 'a -> 'a - -(** [time label f] times function [f] and prints the measured time to [stdout] - prepended with [label], when profiling is set (see {!val:when_profiling}). - - Otherwise, it just runs [f]. - *) -val time : string -> (unit -> 'a) -> 'a - -val tick_shifts : log2_size:int -> Pasta_bindings.Fp.t array - -val tock_shifts : log2_size:int -> Pasta_bindings.Fq.t array - -val group_map : - (module Group_map.Field_intf.S_unchecked with type t = 'a) - -> a:'a - -> b:'a - -> ('a -> 'a * 'a) Core_kernel.Staged.t - -val bits_to_bytes : bool list -> string - -(** [finite_exn v] returns [(a, b)] when [v] is {!val:Finite(a,b)}, - [Invalid_argument] otherwise.*) -val finite_exn : 'a Kimchi_types.or_infinity -> 'a * 'a - -val ft_comm : - add:('comm -> 'comm -> 'comm) - -> scale:('comm -> 'scalar -> 'comm) - -> negate:('comm -> 'comm) - -> verification_key:'comm array Pickles_types.Plonk_verification_key_evals.t - -> plonk: - ( 'd - , 'e - , 'scalar - , 'g - , 'f - , 'bool ) - Import.Types.Wrap.Proof_state.Deferred_values.Plonk.In_circuit.t - -> t_comm:'comm array - -> 'comm - -val combined_evaluation : - (module Snarky_backendless.Snark_intf.Run - with type field = 'f - and type field_var = 'v ) - -> xi:'v - -> ('v, 'v Snarky_backendless.Boolean.t) Pickles_types.Opt.t array list - -> 'v - -module Max_degree : sig - val wrap_log2 : int - - val step : int - - val step_log2 : int -end - -module Shifts : sig - val tick1 : Backend.Tick.Field.t Pickles_types.Shifted_value.Type1.Shift.t - - val tock2 : Backend.Tock.Field.t Pickles_types.Shifted_value.Type2.Shift.t -end - -module Lookup_parameters : sig - type ('a, 'b) zero_value := - ( Import.Challenge.Constant.t - , 'a - , Impls.Wrap.Field.Constant.t Pickles_types.Shifted_value.Type2.t - , 'b Pickles_types.Shifted_value.Type2.t ) - Composition_types.Zero_values.t - - val tick_zero : - (Impls.Step.Field.t, Impls.Step.Field.t * Impls.Step.Boolean.var) zero_value - - val tock_zero : (Impls.Wrap.Field.t, Impls.Wrap.Field.t) zero_value -end - -(** Inner Product Argument *) -module Ipa : sig - type 'a challenge := - ( Import.Challenge.Constant.t Import.Scalar_challenge.t - Import.Bulletproof_challenge.t - , 'a ) - Pickles_types.Vector.t - - type ('a, 'b) compute_sg := 'a challenge -> 'b * 'b - - module Wrap : sig - val compute_challenge : - Import.Challenge.Constant.t Import.Scalar_challenge.t - -> Backend.Tock.Field.t - - val endo_to_field : - Import.Challenge.Constant.t Import.Scalar_challenge.t - -> Backend.Tock.Field.t - - val compute_challenges : - 'a challenge -> (Backend.Tock.Field.t, 'a) Pickles_types.Vector.t - - val compute_sg : ('a, Pasta_bindings.Fp.t) compute_sg - end - - module Step : sig - val compute_challenge : - Import.Challenge.Constant.t Import.Scalar_challenge.t - -> Backend.Tick.Field.t - - val endo_to_field : - Import.Challenge.Constant.t Import.Scalar_challenge.t - -> Backend.Tick.Field.t - - val compute_challenges : - 'a challenge -> (Backend.Tick.Field.t, 'a) Pickles_types.Vector.t - - val compute_sg : ('a, Pasta_bindings.Fq.t) compute_sg - - val accumulator_check : - ( (Pasta_bindings.Fq.t * Pasta_bindings.Fq.t) - * (Pasta_bindings.Fp.t, 'a) Pickles_types.Vector.t ) - list - -> bool Promise.t - end -end - -val hash_messages_for_next_step_proof : - app_state:('a -> Kimchi_pasta.Basic.Fp.Stable.Latest.t Core_kernel.Array.t) - -> ( Backend.Tock.Curve.Affine.t array - (* the type for the verification key *) - , 'a - (* the state of the application *) - , ( Kimchi_pasta.Basic.Fp.Stable.Latest.t - * Kimchi_pasta.Basic.Fp.Stable.Latest.t - , 'n ) - Pickles_types.Vector.t - (* challenge polynomial commitments. We use the full parameter type to - restrict the size of the vector to be the same than the one for the next - parameter which are the bulletproof challenges *) - , ( (Kimchi_pasta.Basic.Fp.Stable.Latest.t, 'm) Pickles_types.Vector.t - , 'n - (* size of the vector *) ) - Pickles_types.Vector.t - (* bulletproof challenges *) ) - Import.Types.Step.Proof_state.Messages_for_next_step_proof.t - -> Import.Types.Digest.Constant.t - -val tick_public_input_of_statement : - max_proofs_verified:'max_proofs_verified Pickles_types.Nat.t - -> 'max_proofs_verified Impls.Step.statement - -> Backend.Tick.Field.Vector.elt list - -val tock_public_input_of_statement : - feature_flags: - Pickles_types.Opt.Flag.t Pickles_types.Plonk_types.Features.Full.t - -> ( Limb_vector.Challenge.Constant.t - , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t - , Impls.Wrap.Other_field.Constant.t Pickles_types.Shifted_value.Type1.t - , Impls.Wrap.Other_field.Constant.t Pickles_types.Shifted_value.Type1.t - option - , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t - option - , bool - , Import.Types.Digest.Constant.t - , Import.Types.Digest.Constant.t - , Import.Types.Digest.Constant.t - , ( Limb_vector.Challenge.Constant.t - Kimchi_backend_common.Scalar_challenge.t - Composition_types.Bulletproof_challenge.t - , Pickles_types.Nat.z Backend.Tick.Rounds.plus_n ) - Pickles_types.Vector.t - , Composition_types.Branch_data.t ) - Import.Types.Wrap.Statement.In_circuit.t - -> Backend.Tock.Field.Vector.elt list - -val tock_unpadded_public_input_of_statement : - feature_flags: - Pickles_types.Opt.Flag.t Pickles_types.Plonk_types.Features.Full.t - -> ( Limb_vector.Challenge.Constant.t - , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t - , Impls.Wrap.Other_field.Constant.t Pickles_types.Shifted_value.Type1.t - , Impls.Wrap.Other_field.Constant.t Pickles_types.Shifted_value.Type1.t - option - , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t - option - , bool - , Import.Types.Digest.Constant.t - , Import.Types.Digest.Constant.t - , Import.Types.Digest.Constant.t - , ( Limb_vector.Challenge.Constant.t - Kimchi_backend_common.Scalar_challenge.t - Composition_types.Bulletproof_challenge.t - , Pickles_types.Nat.z Backend.Tick.Rounds.plus_n ) - Pickles_types.Vector.t - , Composition_types.Branch_data.t ) - Import.Types.Wrap.Statement.In_circuit.t - -> Backend.Tock.Field.Vector.elt list diff --git a/src/lib/pickles/impls.mli b/src/lib/pickles/impls.mli deleted file mode 100644 index 4531817e0775..000000000000 --- a/src/lib/pickles/impls.mli +++ /dev/null @@ -1,172 +0,0 @@ -open Pickles_types - -module Wrap_impl : - module type of - Snarky_backendless.Snark.Run.Make - (Kimchi_pasta_snarky_backend.Pallas_based_plonk) - -module Step : sig - module Impl : - module type of - Snarky_backendless.Snark.Run.Make - (Kimchi_pasta_snarky_backend.Vesta_based_plonk) - - include module type of Impl - - module Verification_key = Backend.Tick.Verification_key - module Proving_key = Backend.Tick.Proving_key - - module Digest : module type of Import.Digest.Make (Impl) - - module Challenge : module type of Import.Challenge.Make (Impl) - - module Keypair : sig - type t = { pk : Proving_key.t; vk : Verification_key.t } [@@deriving fields] - - val create : pk:Proving_key.t -> vk:Verification_key.t -> t - - val generate : - ?lazy_mode:bool - -> prev_challenges:int - -> Kimchi_pasta_constraint_system.Vesta_constraint_system.t - -> t - end - - module Other_field : sig - type t = Field.t * Boolean.var - - module Constant = Backend.Tock.Field - - val forbidden_shifted_values : (Impl.field * bool) list lazy_t - - val typ_unchecked : (t, Constant.t) Typ.t - - val typ : (t, Constant.t) Impl.Typ.t - end - - type unfinalized_proof = - ( Challenge.Constant.t - , Challenge.Constant.t Import.Scalar_challenge.t - , Backend.Tock.Field.t Shifted_value.Type2.t - , ( Challenge.Constant.t Import.Scalar_challenge.t - Import.Types.Bulletproof_challenge.t - , Backend.Tock.Rounds.n ) - Vector.t - , Digest.Constant.t - , bool ) - Import.Types.Step.Proof_state.Per_proof.In_circuit.t - - type 'proofs_verified statement = - ( (unfinalized_proof, 'proofs_verified) Vector.t - , Import.Types.Digest.Constant.t - , (Import.Types.Digest.Constant.t, 'proofs_verified) Vector.t ) - Import.Types.Step.Statement.t - - type unfinalized_proof_var = - ( Field.t - , Field.t Import.Scalar_challenge.t - , Other_field.t Shifted_value.Type2.t - , ( Field.t Import.Scalar_challenge.t Import.Types.Bulletproof_challenge.t - , Backend.Tock.Rounds.n ) - Vector.t - , Field.t - , Boolean.var ) - Import.Types.Step.Proof_state.Per_proof.In_circuit.t - - type 'proofs_verified statement_var = - ( (unfinalized_proof_var, 'proofs_verified) Vector.t - , Impl.Field.t - , (Impl.Field.t, 'proofs_verified) Vector.t ) - Import.Types.Step.Statement.t - - val input : - proofs_verified:'proofs_verified Nat.t - -> ( 'proofs_verified statement_var - , 'proofs_verified statement ) - Import.Spec.Step_etyp.t - - module Async_promise : module type of Async_generic (Promise) -end - -module Wrap : sig - module Impl : - module type of - Snarky_backendless.Snark.Run.Make - (Kimchi_pasta_snarky_backend.Pallas_based_plonk) - - include module type of Impl - - module Challenge : module type of Import.Challenge.Make (Impl) - - module Digest : module type of Import.Digest.Make (Impl) - - module Wrap_field = Backend.Tock.Field - module Step_field = Backend.Tick.Field - module Verification_key = Backend.Tock.Verification_key - module Proving_key = Backend.Tock.Proving_key - - module Keypair : sig - type t = { pk : Proving_key.t; vk : Verification_key.t } [@@deriving fields] - - val create : pk:Proving_key.t -> vk:Verification_key.t -> t - - val generate : - ?lazy_mode:bool - -> prev_challenges:int - -> Kimchi_pasta_constraint_system.Pallas_constraint_system.t - -> t - end - - module Other_field : sig - type t = Field.t - - module Constant = Backend.Tick.Field - - val forbidden_shifted_values : Impl.field list lazy_t - - val typ_unchecked : (Impl.Field.t, Backend.Tick.Field.t) Impl.Typ.t - - val typ : (Impl.Field.t, Backend.Tick.Field.t) Impl.Typ.t - end - - val input : - feature_flags:Opt.Flag.t Plonk_types.Features.Full.t - -> unit - -> ( ( Impl.Field.t - , Impl.Field.t Composition_types.Scalar_challenge.t - , Impl.Field.t Pickles_types.Shifted_value.Type1.t - , ( Impl.Field.t Pickles_types.Shifted_value.Type1.t - , Impl.Field.t Snarky_backendless.Snark_intf.Boolean0.t ) - Pickles_types.Opt.t - , ( Impl.Field.t Composition_types.Scalar_challenge.t - , Impl.Field.t Snarky_backendless.Snark_intf.Boolean0.t ) - Pickles_types.Opt.t - , Impl.Boolean.var - , Impl.Field.t - , Impl.Field.t - , Impl.Field.t - , ( Impl.Field.t Kimchi_backend_common.Scalar_challenge.t - Composition_types.Bulletproof_challenge.t - , Pickles_types.Nat.z Backend.Tick.Rounds.plus_n ) - Pickles_types.Vector.t - , Impl.Field.t ) - Import.Types.Wrap.Statement.In_circuit.t - , ( Limb_vector.Challenge.Constant.t - , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t - , Other_field.Constant.t Pickles_types.Shifted_value.Type1.t - , Other_field.Constant.t Pickles_types.Shifted_value.Type1.t option - , Limb_vector.Challenge.Constant.t Composition_types.Scalar_challenge.t - option - , bool - , Import.Types.Digest.Constant.t - , Import.Types.Digest.Constant.t - , Import.Types.Digest.Constant.t - , ( Limb_vector.Challenge.Constant.t - Kimchi_backend_common.Scalar_challenge.t - Composition_types.Bulletproof_challenge.t - , Pickles_types.Nat.z Backend.Tick.Rounds.plus_n ) - Pickles_types.Vector.t - , Composition_types.Branch_data.t ) - Import.Types.Wrap.Statement.In_circuit.t ) - Import.Spec.Wrap_etyp.t -end diff --git a/src/lib/pickles/step.mli b/src/lib/pickles/step.mli deleted file mode 100644 index 6f1a6e41cefb..000000000000 --- a/src/lib/pickles/step.mli +++ /dev/null @@ -1,77 +0,0 @@ -open Pickles_types - -module Make - (Inductive_rule : Inductive_rule.Intf with type 'a proof = 'a Proof.t) - (A : Pickles_types.Poly_types.T0) (A_value : sig - type t - end) - (Max_proofs_verified : Pickles_types.Nat.Add.Intf_transparent) : sig - module Step_branch_data : module type of Step_branch_data.Make (Inductive_rule) - - val f : - ?handler: - ( Snarky_backendless.Request.request - -> Snarky_backendless.Request.response ) - -> proof_cache:Proof_cache.t option - -> ( A.t - , A_value.t - , 'ret_var - , 'ret_value - , 'auxiliary_var - , 'auxiliary_value - , Max_proofs_verified.n - , 'self_branches - , 'prev_vars - , 'prev_values - , 'local_widths - , 'local_heights ) - Step_branch_data.t - -> A_value.t - -> maxes: - (module Pickles_types.Hlist.Maxes.S - with type length = Max_proofs_verified.n - and type ns = 'max_local_max_proof_verifieds ) - -> prevs_length:('prev_vars, 'prevs_length) Pickles_types.Hlist.Length.t - -> self:('a, 'b, 'c, 'd) Tag.t - -> step_domains: - (Import.Domains.t, 'self_branches) Pickles_types.Vector.t Promise.t - -> feature_flags:Opt.Flag.t Plonk_types.Features.Full.t - -> self_dlog_plonk_index: - Backend.Tick.Inner_curve.Affine.t array - Pickles_types.Plonk_verification_key_evals.t - -> public_input: - ( 'var - , 'value - , A.t - , A_value.t - , 'ret_var - , 'ret_value ) - Inductive_rule.public_input - -> auxiliary_typ:('auxiliary_var, 'auxiliary_value) Impls.Step.Typ.t - -> Kimchi_pasta.Vesta_based_plonk.Keypair.t - -> Impls.Wrap.Verification_key.t - -> ( ( 'value - , ( Unfinalized.Constant.t - , Max_proofs_verified.n ) - Pickles_types.Vector.t - , (Backend.Tock.Curve.Affine.t, 'prevs_length) Pickles_types.Vector.t - , ( Import.Challenge.Constant.t Import.Types.Scalar_challenge.t - Import.Types.Bulletproof_challenge.t - Import.Types.Step_bp_vec.t - , 'prevs_length ) - Pickles_types.Vector.t - , 'local_widths - Pickles_types.Hlist.H1.T - (Proof.Base.Messages_for_next_proof_over_same_field.Wrap) - .t - , ( ( Backend.Tock.Field.t - , Backend.Tock.Field.t array ) - Pickles_types.Plonk_types.All_evals.t - , Max_proofs_verified.n ) - Pickles_types.Vector.t ) - Proof.Base.Step.t - * 'ret_value - * 'auxiliary_value - * (int, 'prevs_length) Pickles_types.Vector.t ) - Promise.t -end diff --git a/src/lib/ppx_mina/tests/.ocamlformat b/src/lib/ppx_mina/tests/.ocamlformat new file mode 120000 index 000000000000..cec86d3e6a99 --- /dev/null +++ b/src/lib/ppx_mina/tests/.ocamlformat @@ -0,0 +1 @@ +./src/.ocamlformat \ No newline at end of file diff --git a/src/lib/ppx_version/test/.ocamlformat b/src/lib/ppx_version/test/.ocamlformat new file mode 120000 index 000000000000..cec86d3e6a99 --- /dev/null +++ b/src/lib/ppx_version/test/.ocamlformat @@ -0,0 +1 @@ +./src/.ocamlformat \ No newline at end of file diff --git a/src/lib/ppx_version/test/versioned_module_good.ml b/src/lib/ppx_version/test/versioned_module_good.ml index 210b68ef1aa7..2caba425fbef 100644 --- a/src/lib/ppx_version/test/versioned_module_good.ml +++ b/src/lib/ppx_version/test/versioned_module_good.ml @@ -131,7 +131,9 @@ module M4 = struct module V2 = struct [@@@with_all_version_tags] - type t = { a : int; b : Mina_stdlib.Bounded_types.String.Tagged.Stable.V1.t } [@@deriving equal] + type t = + { a : int; b : Mina_stdlib.Bounded_types.String.Tagged.Stable.V1.t } + [@@deriving equal] let to_latest = Fn.id end @@ -139,7 +141,8 @@ module M4 = struct module V1 = struct [@@@with_all_version_tags] - type t = { a : Mina_stdlib.Bounded_types.String.Tagged.Stable.V1.t; b : int } + type t = + { a : Mina_stdlib.Bounded_types.String.Tagged.Stable.V1.t; b : int } let to_latest ({ a; b } : t) : Latest.t = { a = b; b = a } end diff --git a/src/lib/precomputed_values/precomputed_values.ml b/src/lib/precomputed_values/precomputed_values.ml index b7453b16a3ea..e5f64eacfc5c 100644 --- a/src/lib/precomputed_values/precomputed_values.ml +++ b/src/lib/precomputed_values/precomputed_values.ml @@ -23,8 +23,11 @@ let for_unit_tests = (let open Staged_ledger_diff in let protocol_state_with_hashes = Mina_state.Genesis_protocol_state.t - ~genesis_ledger:Genesis_ledger.for_unit_tests - ~genesis_epoch_data:Consensus.Genesis_epoch_data.for_unit_tests + ~genesis_ledger: + (Consensus.Genesis_data.Ledger.to_hashed Genesis_ledger.for_unit_tests) + ~genesis_epoch_data: + (Consensus.Genesis_data.Epoch.to_hashed + Consensus.Genesis_data.Epoch.for_unit_tests ) ~constraint_constants: Genesis_constants.For_unit_tests.Constraint_constants.t ~consensus_constants:(Lazy.force Consensus.Constants.for_unit_tests) @@ -36,7 +39,7 @@ let for_unit_tests = ; proof_level = Genesis_constants.For_unit_tests.Proof_level.t ; genesis_constants = Genesis_constants.For_unit_tests.t ; genesis_ledger = Genesis_ledger.for_unit_tests - ; genesis_epoch_data = Consensus.Genesis_epoch_data.for_unit_tests + ; genesis_epoch_data = Consensus.Genesis_data.Epoch.for_unit_tests ; genesis_body_reference ; consensus_constants = Lazy.force Consensus.Constants.for_unit_tests ; protocol_state_with_hashes diff --git a/src/lib/prover/prover.ml b/src/lib/prover/prover.ml index 5ab17aab3ad8..46e33293a9a2 100644 --- a/src/lib/prover/prover.ml +++ b/src/lib/prover/prover.ml @@ -571,8 +571,12 @@ let create_genesis_block_inputs (genesis_inputs : Genesis_proof.Inputs.t) = let consensus_constants = genesis_inputs.consensus_constants in let prev_state = let open Staged_ledger_diff in - Protocol_state.negative_one ~genesis_ledger:genesis_inputs.genesis_ledger - ~genesis_epoch_data:genesis_inputs.genesis_epoch_data + Protocol_state.negative_one + ~genesis_ledger: + (Consensus.Genesis_data.Ledger.to_hashed genesis_inputs.genesis_ledger) + ~genesis_epoch_data: + (Consensus.Genesis_data.Epoch.to_hashed + genesis_inputs.genesis_epoch_data ) ~constraint_constants ~consensus_constants ~genesis_body_reference in let genesis_epoch_ledger = diff --git a/src/lib/snark_profiler_lib/snark_profiler_lib.ml b/src/lib/snark_profiler_lib/snark_profiler_lib.ml index de44712b0940..22effab599db 100644 --- a/src/lib/snark_profiler_lib/snark_profiler_lib.ml +++ b/src/lib/snark_profiler_lib/snark_profiler_lib.ml @@ -459,7 +459,7 @@ let rec pair_up = function let state_body ~logger ~(genesis_constants : Genesis_constants.t) ~(constraint_constants : Genesis_constants.Constraint_constants.t) = lazy - (let genesis_epoch_data = Consensus.Genesis_epoch_data.compiled in + (let genesis_epoch_data = Consensus.Genesis_data.Epoch.compiled in let consensus_constants = Consensus.Constants.create ~constraint_constants ~protocol_constants:genesis_constants.protocol @@ -477,8 +477,11 @@ let state_body ~logger ~(genesis_constants : Genesis_constants.t) let logger = logger end) in Mina_state.Genesis_protocol_state.t - ~genesis_ledger:(module Test_genesis_ledger) - ~genesis_epoch_data ~constraint_constants ~consensus_constants + ~genesis_ledger: + (Consensus.Genesis_data.Ledger.to_hashed (module Test_genesis_ledger)) + ~genesis_epoch_data: + (Consensus.Genesis_data.Epoch.to_hashed genesis_epoch_data) + ~constraint_constants ~consensus_constants ~genesis_body_reference:Staged_ledger_diff.genesis_body_reference |> With_hash.data |> Mina_state.Protocol_state.body ) diff --git a/src/lib/snarky b/src/lib/snarky index d97a38c44828..9f55ef7c2f25 160000 --- a/src/lib/snarky +++ b/src/lib/snarky @@ -1 +1 @@ -Subproject commit d97a38c448285294ed3631412b7f01f39a043d1e +Subproject commit 9f55ef7c2f2570365aeb24b6ddfc713f48be3117 diff --git a/src/lib/staged_ledger/application_state.ml b/src/lib/staged_ledger/application_state.ml new file mode 100644 index 000000000000..83f50afe413f --- /dev/null +++ b/src/lib/staged_ledger/application_state.ml @@ -0,0 +1,94 @@ +open Core_kernel +open Mina_base +open Mina_transaction + +module Make (Txn : sig + type t [@@deriving to_yojson] + + val key : t -> Account_id.t + + val is_zkapp_command : t -> bool + + val to_user_command : t -> User_command.t +end) = +struct + type t = + { valid_seq : Txn.t Sequence.t + ; invalid : (Txn.t * Error.t) list + ; skipped_by_fee_payer : Txn.t list Account_id.Map.t + ; zkapp_space_remaining : int option + ; total_space_remaining : int + } + + let init ?zkapp_limit ~total_limit = + { valid_seq = Sequence.empty + ; invalid = [] + ; skipped_by_fee_payer = Account_id.Map.empty + ; zkapp_space_remaining = zkapp_limit + ; total_space_remaining = total_limit + } + + let add_skipped_txn t (txn : Txn.t) = + Account_id.Map.update t.skipped_by_fee_payer (Txn.key txn) + ~f:(Option.value_map ~default:[ txn ] ~f:(List.cons txn)) + + let dependency_skipped txn t = + Account_id.Map.mem t.skipped_by_fee_payer (Txn.key txn) + + let try_applying_txn ?logger ~apply (state : t) (txn : Txn.t) = + let open Continue_or_stop in + match state.zkapp_space_remaining with + | _ when state.total_space_remaining < 1 -> + Stop (state.valid_seq, state.invalid) + | Some zkapp_limit when Txn.is_zkapp_command txn && zkapp_limit < 1 -> + Continue { state with skipped_by_fee_payer = add_skipped_txn state txn } + | Some _ when dependency_skipped txn state -> + Continue { state with skipped_by_fee_payer = add_skipped_txn state txn } + | _ -> ( + match + O1trace.sync_thread "validate_transaction_against_staged_ledger" + (fun () -> apply (Transaction.Command (Txn.to_user_command txn))) + with + | Error e -> + Option.iter logger ~f:(fun logger -> + [%log error] + ~metadata: + [ ("user_command", Txn.to_yojson txn) + ; ("error", Error_json.error_to_yojson e) + ] + "Staged_ledger_diff creation: Skipping user command: \ + $user_command due to error: $error" ) ; + Continue { state with invalid = (txn, e) :: state.invalid } + | Ok _txn_partially_applied -> + let valid_seq = + Sequence.append (Sequence.singleton txn) state.valid_seq + in + let zkapp_space_remaining = + Option.map state.zkapp_space_remaining ~f:(fun limit -> + if Txn.is_zkapp_command txn then limit - 1 else limit ) + in + Continue + { state with + valid_seq + ; zkapp_space_remaining + ; total_space_remaining = state.total_space_remaining - 1 + } ) +end + +module Valid_user_command = Make (struct + type t = User_command.Valid.t [@@deriving to_yojson] + + let key = function + | User_command.Zkapp_command cmd -> + Zkapp_command.(Valid.forget cmd |> fee_payer) + | Signed_command cmd -> + Signed_command.(forget_check cmd |> fee_payer) + + let is_zkapp_command = function + | User_command.Zkapp_command _ -> + true + | Signed_command _ -> + false + + let to_user_command = User_command.forget_check +end) diff --git a/src/lib/staged_ledger/staged_ledger.ml b/src/lib/staged_ledger/staged_ledger.ml index d6a5db12efd5..714c033dd41a 100644 --- a/src/lib/staged_ledger/staged_ledger.ml +++ b/src/lib/staged_ledger/staged_ledger.ml @@ -222,10 +222,14 @@ module T = struct let verify ~verifier:{ logger; verifier } ts = verify_proofs ~logger ~verifier - (List.map ts ~f:(fun (p, m) -> - ( Ledger_proof.Cached.read_proof_from_disk p - , Ledger_proof.Cached.statement p - , m ) ) ) + (List.map ts + ~f:(fun + ({ proof; sok_msg; _ } : + Scan_state.Ledger_proof_with_sok_message.t ) + -> + ( Ledger_proof.Cached.read_proof_from_disk proof + , Ledger_proof.Cached.statement proof + , sok_msg ) ) ) end module Statement_scanner_with_proofs = @@ -241,10 +245,6 @@ module T = struct ; pending_coinbase_collection : Pending_coinbase.t } - let proof_txns_with_state_hashes t = - Scan_state.latest_ledger_proof_txs t.scan_state - |> Option.bind ~f:Mina_stdlib.Nonempty_list.of_list_opt - let scan_state { scan_state; _ } = scan_state let all_work_pairs t @@ -418,7 +418,7 @@ module T = struct ; pending_coinbase_collection } : Staged_ledger_hash.t = Staged_ledger_hash.of_aux_ledger_and_coinbase_hash - Scan_state.(Stable.Latest.hash @@ read_all_proofs_from_disk scan_state) + (Scan_state.hash scan_state) (Ledger.merkle_root ledger) pending_coinbase_collection @@ -587,14 +587,12 @@ module T = struct ; sok_digest = () } in - ( { Scan_state.Transaction_with_witness.transaction_with_info = applied_txn - ; state_hash = state_and_body_hash - ; first_pass_ledger_witness = pre_stmt.first_pass_ledger_witness - ; second_pass_ledger_witness = ledger_witness - ; init_stack = pre_stmt.init_stack - ; statement - ; block_global_slot = global_slot - } + ( Scan_state.Transaction_with_witness.create + ~transaction_with_info:applied_txn ~state_hash:state_and_body_hash + ~first_pass_ledger_witness:pre_stmt.first_pass_ledger_witness + ~second_pass_ledger_witness:ledger_witness + ~init_stack:pre_stmt.init_stack ~statement + ~block_global_slot:global_slot , Mina_transaction_logic.Transaction_applied.new_accounts applied_txn ) let apply_transactions_first_pass ~yield ~constraint_constants ~global_slot @@ -2011,88 +2009,6 @@ module T = struct : Ledger.unattached_mask ) ; r - module Application_state = struct - type txn = - ( Signed_command.With_valid_signature.t - , Zkapp_command.Valid.t ) - User_command.t_ - - type t = - { valid_seq : txn Sequence.t - ; invalid : (txn * Error.t) list - ; skipped_by_fee_payer : txn list Account_id.Map.t - ; zkapp_space_remaining : int option - ; total_space_remaining : int - } - - let init ?zkapp_limit ~total_limit = - { valid_seq = Sequence.empty - ; invalid = [] - ; skipped_by_fee_payer = Account_id.Map.empty - ; zkapp_space_remaining = zkapp_limit - ; total_space_remaining = total_limit - } - - let txn_key = function - | User_command.Zkapp_command cmd -> - Zkapp_command.(Valid.forget cmd |> fee_payer) - | User_command.Signed_command cmd -> - Signed_command.(forget_check cmd |> fee_payer) - - let add_skipped_txn t (txn : txn) = - Account_id.Map.update t.skipped_by_fee_payer (txn_key txn) - ~f:(Option.value_map ~default:[ txn ] ~f:(List.cons txn)) - - let dependency_skipped txn t = - Account_id.Map.mem t.skipped_by_fee_payer (txn_key txn) - - let try_applying_txn ?logger ~apply (state : t) (txn : txn) = - let open Continue_or_stop in - match (state.zkapp_space_remaining, txn) with - | _ when state.total_space_remaining < 1 -> - Stop (state.valid_seq, state.invalid) - | Some zkapp_limit, User_command.Zkapp_command _ when zkapp_limit < 1 -> - Continue - { state with skipped_by_fee_payer = add_skipped_txn state txn } - | Some _, _ when dependency_skipped txn state -> - Continue - { state with skipped_by_fee_payer = add_skipped_txn state txn } - | _ -> ( - match - O1trace.sync_thread "validate_transaction_against_staged_ledger" - (fun () -> - apply (Transaction.Command (User_command.forget_check txn)) ) - with - | Error e -> - Option.iter logger ~f:(fun logger -> - [%log error] - ~metadata: - [ ("user_command", User_command.Valid.to_yojson txn) - ; ("error", Error_json.error_to_yojson e) - ] - "Staged_ledger_diff creation: Skipping user command: \ - $user_command due to error: $error" ) ; - Continue { state with invalid = (txn, e) :: state.invalid } - | Ok _txn_partially_applied -> - let valid_seq = - Sequence.append (Sequence.singleton txn) state.valid_seq - in - let zkapp_space_remaining = - Option.map state.zkapp_space_remaining ~f:(fun limit -> - match txn with - | Zkapp_command _ -> - limit - 1 - | Signed_command _ -> - limit ) - in - Continue - { state with - valid_seq - ; zkapp_space_remaining - ; total_space_remaining = state.total_space_remaining - 1 - } ) - end - let create_diff ~(constraint_constants : Genesis_constants.Constraint_constants.t) ~(global_slot : Mina_numbers.Global_slot_since_genesis.t) @@ -2211,9 +2127,12 @@ module T = struct let valid_on_this_ledger, invalid_on_this_ledger = Sequence.fold_until transactions_by_fee ~init: - (Application_state.init ?zkapp_limit:zkapp_cmd_limit + (Application_state.Valid_user_command.init + ?zkapp_limit:zkapp_cmd_limit ~total_limit:(Scan_state.free_space t.scan_state) ) - ~f:(Application_state.try_applying_txn ~apply ~logger) + ~f: + (Application_state.Valid_user_command.try_applying_txn ~apply + ~logger ) ~finish:(fun state -> (state.valid_seq, state.invalid)) in [%log internal] "Generate_staged_ledger_diff" ; @@ -2267,6 +2186,10 @@ end include T +module For_tests = struct + module Application_state = Application_state +end + module Test_helpers = struct let constraint_constants = Genesis_constants.For_unit_tests.Constraint_constants.t @@ -2282,8 +2205,12 @@ module Test_helpers = struct let open Staged_ledger_diff in (*not using Precomputed_values.for_unit_test because of dependency cycle*) Mina_state.Genesis_protocol_state.t - ~genesis_ledger:Genesis_ledger.for_unit_tests - ~genesis_epoch_data:Consensus.Genesis_epoch_data.for_unit_tests + ~genesis_ledger: + (Consensus.Genesis_data.Ledger.to_hashed + Genesis_ledger.for_unit_tests ) + ~genesis_epoch_data: + (Consensus.Genesis_data.Epoch.to_hashed + Consensus.Genesis_data.Epoch.for_unit_tests ) ~constraint_constants ~consensus_constants ~genesis_body_reference in compile_time_genesis.data diff --git a/src/lib/staged_ledger/staged_ledger.mli b/src/lib/staged_ledger/staged_ledger.mli index 792937dff39c..6946acaceea0 100644 --- a/src/lib/staged_ledger/staged_ledger.mli +++ b/src/lib/staged_ledger/staged_ledger.mli @@ -21,6 +21,8 @@ module Scan_state : sig type t + val hash : t -> Staged_ledger_hash.Aux_hash.t + module Job_view : sig type t [@@deriving sexp, to_yojson] end @@ -37,36 +39,12 @@ module Scan_state : sig [@@deriving sexp] end - module Transactions_ordered : sig - module Poly : sig - type 'a t = - { first_pass : 'a list - ; second_pass : 'a list - ; previous_incomplete : 'a list - ; current_incomplete : 'a list - } - [@@deriving sexp, to_yojson] - end - - type t = Transaction_snark_scan_state.Transaction_with_witness.t Poly.t - end - val empty : constraint_constants:Genesis_constants.Constraint_constants.t -> unit -> t (** Statements of the required snark work *) val snark_job_list_json : t -> string - (** All the transactions with hash of the parent block in which they were - included in the order in which they were applied *) - val staged_transactions_with_state_hash : - t - -> ( Transaction.t With_status.t - * State_hash.t - * Mina_numbers.Global_slot_since_genesis.t ) - Transactions_ordered.Poly.t - list - (** Statements of all the pending work. Fails if there are any invalid statements in the scan state [t] *) val all_work_statements_exn : t -> Transaction_snark_work.Statement.t list @@ -194,16 +172,6 @@ val create_exn : val replace_ledger_exn : t -> Ledger.t -> t -(** Transactions corresponding to the most recent ledger proof in t *) -val proof_txns_with_state_hashes : - t - -> ( Transaction.t With_status.t - * State_hash.t - * Mina_numbers.Global_slot_since_genesis.t ) - Scan_state.Transactions_ordered.Poly.t - Mina_stdlib.Nonempty_list.t - option - val copy : t -> t val hash : t -> Staged_ledger_hash.t @@ -254,32 +222,6 @@ val apply_diff_unchecked : , Staged_ledger_error.t ) Deferred.Result.t -(* Internals of the txn application. This is only exposed to facilitate - writing unit tests. *) -module Application_state : sig - type txn = - ( Signed_command.With_valid_signature.t - , Zkapp_command.Valid.t ) - User_command.t_ - - type t = - { valid_seq : txn Sequence.t - ; invalid : (txn * Error.t) list - ; skipped_by_fee_payer : txn list Account_id.Map.t - ; zkapp_space_remaining : int option - ; total_space_remaining : int - } - - val init : ?zkapp_limit:int -> total_limit:int -> t - - val try_applying_txn : - ?logger:Logger.t - -> apply:(User_command.t Transaction.t_ -> ('a, Error.t) Result.t) - -> t - -> txn - -> (t, txn Sequence.t * (txn * Error.t) list) Continue_or_stop.t -end - (* This should memoize the snark verifications *) val create_diff : @@ -348,6 +290,10 @@ val all_work_pairs : (** Statements of all the pending work in t*) val all_work_statements_exn : t -> Transaction_snark_work.Statement.t list +module For_tests : sig + module Application_state = Application_state +end + module Test_helpers : sig val dummy_state_and_view : ?global_slot:Mina_numbers.Global_slot_since_genesis.t diff --git a/src/lib/staged_ledger/test/txn_application_test.ml b/src/lib/staged_ledger/test/txn_application_test.ml index 20571d5e7cad..ee91f8369eed 100644 --- a/src/lib/staged_ledger/test/txn_application_test.ml +++ b/src/lib/staged_ledger/test/txn_application_test.ml @@ -3,13 +3,15 @@ open Mina_base open Mina_generators open Mina_numbers open Mina_transaction -open Staged_ledger + +module Application_state = + Staged_ledger.For_tests.Application_state.Valid_user_command type apply = User_command.t Transaction.t_ - -> Ledger.Transaction_partially_applied.t Or_error.t + -> Staged_ledger.Ledger.Transaction_partially_applied.t Or_error.t -let gen_apply_and_txn : (apply * Application_state.txn) Quickcheck.Generator.t = +let gen_apply_and_txn : (apply * User_command.Valid.t) Quickcheck.Generator.t = let open Quickcheck.Generator in let open Let_syntax in let constraint_constants = @@ -20,7 +22,9 @@ let gen_apply_and_txn : (apply * Application_state.txn) Quickcheck.Generator.t = ~genesis_constants:Genesis_constants.For_unit_tests.t () in let%map global_slot = Global_slot_since_genesis.gen in - let current_state_view = Test_helpers.dummy_state_view ~global_slot () in + let current_state_view = + Staged_ledger.Test_helpers.dummy_state_view ~global_slot () + in let apply = Transaction_snark.Transaction_validator.apply_transaction_first_pass ~constraint_constants ~global_slot validating_ledger diff --git a/src/lib/sync_handler/sync_handler.ml b/src/lib/sync_handler/sync_handler.ml index 71f25bad8ab8..0b63c12d77e6 100644 --- a/src/lib/sync_handler/sync_handler.ml +++ b/src/lib/sync_handler/sync_handler.ml @@ -223,15 +223,13 @@ module Make (Inputs : Inputs_intf) : (Consensus.Hooks.select ~context:(module Context) ~existing: - (With_hash.map ~f:Mina_block.consensus_state + (Breadcrumb.consensus_state_with_hashes best_tip_with_witness.data ) ~candidate:seen_consensus_state ) `Keep in let%map () = Option.some_if is_tip_better () in - { best_tip_with_witness with - data = With_hash.data best_tip_with_witness.data - } + best_tip_with_witness let verify ~context:(module Context : CONTEXT) ~verifier observed_state peer_root = diff --git a/src/lib/transaction_snark/test/constraint_count/dune b/src/lib/transaction_snark/test/constraint_count/dune new file mode 100644 index 000000000000..97a8ba775e9d --- /dev/null +++ b/src/lib/transaction_snark/test/constraint_count/dune @@ -0,0 +1,12 @@ +(tests + (names test_constraint_count) + (libraries + alcotest + core_kernel + genesis_constants + mina_signature_kind + node_config + snark_params + transaction_snark) + (preprocess + (pps ppx_jane))) diff --git a/src/lib/transaction_snark/test/constraint_count/test_constraint_count.ml b/src/lib/transaction_snark/test/constraint_count/test_constraint_count.ml new file mode 100644 index 000000000000..31e50ed4b32e --- /dev/null +++ b/src/lib/transaction_snark/test/constraint_count/test_constraint_count.ml @@ -0,0 +1,286 @@ +(** Test to verify the constraint counts, public input sizes, auxiliary + input sizes, and digests of transaction SNARK circuits. + + Each circuit is tested by creating its constraint system once and + checking all expected values. + + The transaction SNARK has 5 rules: + 1. Base ("transaction") - Single non-zkApp transaction + 2. Merge ("merge") - Combines two proofs + 3. ZkApp Opt_signed_opt_signed - 2 optional signatures + 4. ZkApp Opt_signed - 1 optional signature + 5. ZkApp Proved - Side-loaded proof + + In production, these 5 circuits are compiled together via [Pickles.compile] + in [Transaction_snark.system]. The test helpers here use [Tick.constraint_system] + to extract each circuit's constraint system individually, which produces the + same constraints as the production compilation. + + This is useful for: + - Tracking constraint count changes over time + - Comparing with a Rust reimplementation + - Performance analysis + + IMPORTANT: If these tests fail due to changed constraint counts, public + input sizes, auxiliary input sizes, or digests, update the expected values + below AND the table in [transaction_snark_intf.ml] to keep the documentation + in sync. + + NOTE: Expected values vary by profile (dev, devnet, lightnet, mainnet) as + constraint counts depend on configuration parameters like ledger depth. *) + +open Core_kernel + +(** Expected values for a single circuit *) +type circuit_stats = + { constraints : int + ; public_input_size : int + ; auxiliary_input_size : int + ; digest : string + } + +(** Expected values for all circuits in a profile *) +type profile_expected_values = + { transaction_merge : circuit_stats + ; transaction_base : circuit_stats + ; zkapp_opt_signed_opt_signed : circuit_stats + ; zkapp_opt_signed : circuit_stats + ; zkapp_proved : circuit_stats + } + +let dev_expected_values = + { transaction_merge = + { constraints = 632 + ; public_input_size = 300 + ; auxiliary_input_size = 1895 + ; digest = "b8879f677f622a1d86648030701f43e1" + } + ; transaction_base = + { constraints = 12875 + ; public_input_size = 300 + ; auxiliary_input_size = 37502 + ; digest = "740db2397b0b01806a48f061a2e2b063" + } + ; zkapp_opt_signed_opt_signed = + { constraints = 16314 + ; public_input_size = 300 + ; auxiliary_input_size = 73512 + ; digest = "20f96be9061c1e15e49e4605b82eda14" + } + ; zkapp_opt_signed = + { constraints = 8915 + ; public_input_size = 300 + ; auxiliary_input_size = 40628 + ; digest = "3bec20ed2f245ab5bf831112efbd6b47" + } + ; zkapp_proved = + { constraints = 5137 + ; public_input_size = 300 + ; auxiliary_input_size = 39194 + ; digest = "69d2537da34047df00f856641b63e255" + } + } + +let devnet_expected_values = + { transaction_merge = + { constraints = 632 + ; public_input_size = 300 + ; auxiliary_input_size = 1895 + ; digest = "b8879f677f622a1d86648030701f43e1" + } + ; transaction_base = + { constraints = 15357 + ; public_input_size = 300 + ; auxiliary_input_size = 63806 + ; digest = "3bf6bb8a97665fe7a9df6fc146e4f942" + } + ; zkapp_opt_signed_opt_signed = + { constraints = 17983 + ; public_input_size = 300 + ; auxiliary_input_size = 91166 + ; digest = "4f386c1183e5eb2339448af2b3561147" + } + ; zkapp_opt_signed = + { constraints = 9772 + ; public_input_size = 300 + ; auxiliary_input_size = 49632 + ; digest = "f3a4815da42338a36753a9a70316b0da" + } + ; zkapp_proved = + { constraints = 5994 + ; public_input_size = 300 + ; auxiliary_input_size = 48198 + ; digest = "0ae9ea554906e54b70040aca15b59b76" + } + } + +let lightnet_expected_values = + { transaction_merge = + { constraints = 632 + ; public_input_size = 300 + ; auxiliary_input_size = 1895 + ; digest = "b8879f677f622a1d86648030701f43e1" + } + ; transaction_base = + { constraints = 15357 + ; public_input_size = 300 + ; auxiliary_input_size = 63806 + ; digest = "3bf6bb8a97665fe7a9df6fc146e4f942" + } + ; zkapp_opt_signed_opt_signed = + { constraints = 17983 + ; public_input_size = 300 + ; auxiliary_input_size = 91166 + ; digest = "4f386c1183e5eb2339448af2b3561147" + } + ; zkapp_opt_signed = + { constraints = 9772 + ; public_input_size = 300 + ; auxiliary_input_size = 49632 + ; digest = "f3a4815da42338a36753a9a70316b0da" + } + ; zkapp_proved = + { constraints = 5994 + ; public_input_size = 300 + ; auxiliary_input_size = 48198 + ; digest = "0ae9ea554906e54b70040aca15b59b76" + } + } + +let mainnet_expected_values = + { transaction_merge = + { constraints = 632 + ; public_input_size = 300 + ; auxiliary_input_size = 1895 + ; digest = "b8879f677f622a1d86648030701f43e1" + } + ; transaction_base = + { constraints = 15357 + ; public_input_size = 300 + ; auxiliary_input_size = 63806 + ; digest = "d31948e661cc662675b0c079458f714a" + } + ; zkapp_opt_signed_opt_signed = + { constraints = 17983 + ; public_input_size = 300 + ; auxiliary_input_size = 91166 + ; digest = "72c5328778d608cfb3dcebbf21bdc34e" + } + ; zkapp_opt_signed = + { constraints = 9772 + ; public_input_size = 300 + ; auxiliary_input_size = 49632 + ; digest = "56902d7807c649e45e6442c923030cbf" + } + ; zkapp_proved = + { constraints = 5994 + ; public_input_size = 300 + ; auxiliary_input_size = 48198 + ; digest = "9c4689245850e55ac1fe69647992462b" + } + } + +let expected_values = + match Node_config.profile with + | "dev" -> + dev_expected_values + | "devnet" -> + devnet_expected_values + | "lightnet" -> + lightnet_expected_values + | "mainnet" -> + mainnet_expected_values + | p -> + failwithf "Unknown profile: %s" p () + +(** Helper to check all circuit stats at once *) +let check_circuit_stats ~name ~expected cs = + let actual_constraints = + Snark_params.Tick.R1CS_constraint_system.get_rows_len cs + in + let actual_public_input_size = + Set_once.get_exn + (Snark_params.Tick.R1CS_constraint_system.get_public_input_size cs) + [%here] + in + let actual_auxiliary_input_size = + Set_once.get_exn + (Snark_params.Tick.R1CS_constraint_system.get_auxiliary_input_size cs) + [%here] + in + let actual_digest = + Md5_lib.to_hex (Snark_params.Tick.R1CS_constraint_system.digest cs) + in + Alcotest.(check int) + (Printf.sprintf "%s constraint count" name) + expected.constraints actual_constraints ; + Alcotest.(check int) + (Printf.sprintf "%s public input size" name) + expected.public_input_size actual_public_input_size ; + Alcotest.(check int) + (Printf.sprintf "%s auxiliary input size" name) + expected.auxiliary_input_size actual_auxiliary_input_size ; + Alcotest.(check string) + (Printf.sprintf "%s digest" name) + expected.digest actual_digest + +(** Test transaction-merge circuit *) +let test_transaction_merge () = + let cs = Transaction_snark.merge_constraint_system () in + check_circuit_stats ~name:"transaction-merge" + ~expected:expected_values.transaction_merge cs + +(** Test transaction-base circuit *) +let test_transaction_base () = + let signature_kind = Mina_signature_kind.t_DEPRECATED in + let constraint_constants = Genesis_constants.Compiled.constraint_constants in + let cs = + Transaction_snark.base_constraint_system ~signature_kind + ~constraint_constants + in + check_circuit_stats ~name:"transaction-base" + ~expected:expected_values.transaction_base cs + +(** Test zkapp-opt_signed-opt_signed circuit *) +let test_zkapp_opt_signed_opt_signed () = + let signature_kind = Mina_signature_kind.t_DEPRECATED in + let constraint_constants = Genesis_constants.Compiled.constraint_constants in + let cs = + Transaction_snark.zkapp_opt_signed_opt_signed_constraint_system + ~signature_kind ~constraint_constants + in + check_circuit_stats ~name:"zkapp-opt_signed-opt_signed" + ~expected:expected_values.zkapp_opt_signed_opt_signed cs + +(** Test zkapp-opt_signed circuit *) +let test_zkapp_opt_signed () = + let signature_kind = Mina_signature_kind.t_DEPRECATED in + let constraint_constants = Genesis_constants.Compiled.constraint_constants in + let cs = + Transaction_snark.zkapp_opt_signed_constraint_system ~signature_kind + ~constraint_constants + in + check_circuit_stats ~name:"zkapp-opt_signed" + ~expected:expected_values.zkapp_opt_signed cs + +(** Test zkapp-proved circuit *) +let test_zkapp_proved () = + let signature_kind = Mina_signature_kind.t_DEPRECATED in + let constraint_constants = Genesis_constants.Compiled.constraint_constants in + let cs = + Transaction_snark.zkapp_proved_constraint_system ~signature_kind + ~constraint_constants + in + check_circuit_stats ~name:"zkapp-proved" + ~expected:expected_values.zkapp_proved cs + +let () = + let open Alcotest in + run "Transaction Snark Circuit Stats" + [ ("transaction-merge", [ test_case "stats" `Slow test_transaction_merge ]) + ; ("transaction-base", [ test_case "stats" `Slow test_transaction_base ]) + ; ( "zkapp-opt_signed-opt_signed" + , [ test_case "stats" `Slow test_zkapp_opt_signed_opt_signed ] ) + ; ("zkapp-opt_signed", [ test_case "stats" `Slow test_zkapp_opt_signed ]) + ; ("zkapp-proved", [ test_case "stats" `Slow test_zkapp_proved ]) + ] diff --git a/src/lib/transaction_snark/test/print_transaction_snark_vk/dev_transaction_snark_vk.json b/src/lib/transaction_snark/test/print_transaction_snark_vk/dev_transaction_snark_vk.json new file mode 100644 index 000000000000..cb14e7bebfb0 --- /dev/null +++ b/src/lib/transaction_snark/test/print_transaction_snark_vk/dev_transaction_snark_vk.json @@ -0,0 +1 @@ +{"commitments":{"sigma_comm":[["0x2E1BA392A00DE111B47C704EBBD87382427FFBEBA2AC2CE2BA264CC51E3BC790","0x26B3DE969086079CB6A4B786DA27CC37E0A88D56D76DCC3B4CE5F49AB0D3AA29"],["0x0D149B771E2875BC64E26367286DA442FFF55680D6C195139CBFEC8C4475B5BC","0x13611F6910AE992655D8476804AE8662E0B1CDC7B516E93A7B5D0C05949A03B8"],["0x2866D41D0F4568697CAE2E29E0143418D47BEA50F1AE12425B89331098D8A3ED","0x004BFF1043678595301AF8FE0C298B7316AE437B71E1E859F76FAD73DCAF9C75"],["0x0C0A0F9037E1A0BB97A38BF8094693528DDEAF854EC70E4353CC5CE5C2A30CB2","0x09248EDD46C25527015B6C072D1B76541AA1297EF03F94180A7204C88DCF26C5"],["0x342AFEF0A1B4F12C3197FE74C6062CF723144009FD86E4E78CED54433AC498EB","0x13A25D9CCDB85F839EAF00C8CC6B98E829E0C43409AC31226E3E7492B6C081AC"],["0x14E9A3C599040F5A7257370AB0CF6D633A23A2647D30A0C201614E2A3419DB99","0x0EE1E0F0E5F7BAA5EF3EF72243D730F10CD46F8112CF8BE313428C528ABF352A"],["0x143B07B690BB601E6036F3F4992149A9B73AAB158F6536F239FFE4E7BB00059A","0x256C74B6A9540CA03362974176010574297558A064DBF2EC0E08FAB6171EF16A"]],"coefficients_comm":[["0x1FA825AC073524021C9843A5F712E40E3C5ED5EA699FAE86741FF743CAB559EA","0x14AB723D015006DA8C7BEE6D1AA2D2E25BC7970B7C2876D019B9E996AEAB942F"],["0x2E9E5220459C1604306466B5BBDDC9EDA3D070C5D4C03EFE56E2C0AF42F8CFB6","0x079CA3ACB258FF770A583BFA8E3C9FAD50849068E14B64BDA80CBEE73A9A691B"],["0x3C71294AE4FC806E09F7373F3BFD1162697B22DB30D872D53D7930CBC0E5F627","0x2EBEECEA5FD198F21FF92A17467F52F71BAA3531BE894B0A93878912B7AC9454"],["0x0365EC6FA6CECBD31B161BDDF3F05EF238DFD9BC8A0F557D28D584BCF6F37017","0x2AD15EC1538A9A4E0BED6E91E2B05AE8EC7A1C2397FF69F7106534EE460D4AEC"],["0x2C8C051DE7C26B58EA7980BA15DEA3376185195C88994A7514588E9BF894338D","0x1E74BCC50501AFCB9416BC7E5318085BFF381C9CD630D3A9DC091F5045BD99DC"],["0x3AAD0ED0B4C5E0A1B0CE319D9274302249C72194F3FED441FE537FB2A11C6263","0x327D285F17D172A5D5074DFC31A7CFC2AC29146C5CEBE84A8CADE806990B534F"],["0x3D0934AB41D41E63D5997E9057D4D78AF3AB629C0AF2100286FBA85F134D286C","0x0B55D1A90615E96F36E9E472545710275CFCE343FF5E8D6855C15D9AB0CA852C"],["0x314581EDE333D5DF81145C7135AAC1256A0ED8DE0F373E2DE5D6611BE451DD03","0x3F0413D92E6B11ADEB947399BFB444FED650994815D450EE22CC7F269B582821"],["0x31892AB0EF9007A18B6848D7CB34A81EFBCBD2B3036A340C679092547365A2A3","0x264CC495FA075632DA8422EDBCD433FEC19A4F8A51DB148FDC70115071733E0F"],["0x13C82FD025FAB969F472C5C12F5E4F57900C22DB012B76ADA26A6E2E7F7FC821","0x0FB4B331DBBA3496C166023B9144F1B63C3510F5E6B0F5EB2BA0DA9ADCC54218"],["0x37D11D9267DE38801E8F6F122157FC3C8FE0BD4FD513EFF2DD16CB060B0A3F5F","0x3B604CD996282DFF6B62A1B703872A1E9F097A01270C7AAE366C3113D06A65F2"],["0x3381AA1D603B2FBFDC07D3595980818B9951778D8B8C749C82DC8C8E220D9AFB","0x064762117042E4190071DB64DA1942D354A52F27A16DFC8C076BD78358AAB02D"],["0x33261352484985743D417BA2CEDCB1EA3350B7C866A7EF0EC16FD56775EC1910","0x0DBBA68C8DD57441290EC0CBAACB2FCFE8C1B66BCD82C081652BD48E4B2BB90E"],["0x3F396D7EA673FF7780810CBA86E987220CE8FEDC200C0C7FD82130BBC8901164","0x2E2BC6D59064975C81438A0752D5FAB68D9A982B2AB9783D818FF0B9A50EBE18"],["0x2CD7881A5E1A8AC5A93560747674C900355FC9C1FAC557551AC4245F0448B26D","0x1DD59EB809F1AAF32C6AFE0066208F98B88D3A39B4EE1FE3294290B2DEB127AB"]],"generic_comm":["0x11B6A2820578A4614717340BFAA4E5191DF1CE850BEEBCE5AB8B54CEAADFC3A1","0x076AF659D4EA65535FEDF29B860C24B4B5C4C169EE071EFE90B0D2895DC0E8CA"],"psm_comm":["0x3823B56EBC39DA397F591B5FBCFFF8AEA862F5615B1CDA8A6A59AB71DC8309E4","0x24A95165F4BA7182B6F2A17102773046AE2C9DA10FFE19E7938A6DAE51692740"],"complete_add_comm":["0x1A3D03420742C22690C09300D3A089A147AF67CD6CA1119B0DFF258E8F15B95E","0x0E59CBCCDA1DE60D5E34C73E3F5C33CBBCCC14B2D883B21CB684E8F362B7F10E"],"mul_comm":["0x2F9E472859CA4102EB9C3572AA5738B73CDA521600852AFA855109801BA64A85","0x1423FB421325ECB991EA017D09283D5D2C5D38AF4449C0864733B9CA6B7FEA28"],"emul_comm":["0x018B53E3C45C11738FB48A03BEDB61472324E4E80995AC4D19A7AED7E96F916C","0x304AE6D227798FB1A465DD40E581CDE95C88CF9A36BFB6F718898843E2D0E44D"],"endomul_scalar_comm":["0x1BE58E4FD71CDD885AC5AD7A158C92DD0C3FBDC9EC5D00ADC525CCDB1B2D5F84","0x122D91EB1FB77AAEB91018B297C0B8F73DCFE1ED6546C6DC64496624BFB23602"]},"index":{"domain":{"log_size_of_group":14,"group_gen":"0x1E5587687024253BB079B38D9C5371594958E496C605D3BD898B34D068AFBEE7"},"max_poly_size":32768,"public":40,"prev_challenges":2,"srs":null,"evals":{"sigma_comm":[{"unshifted":[["Finite",["0x2E1BA392A00DE111B47C704EBBD87382427FFBEBA2AC2CE2BA264CC51E3BC790","0x26B3DE969086079CB6A4B786DA27CC37E0A88D56D76DCC3B4CE5F49AB0D3AA29"]]],"shifted":null},{"unshifted":[["Finite",["0x0D149B771E2875BC64E26367286DA442FFF55680D6C195139CBFEC8C4475B5BC","0x13611F6910AE992655D8476804AE8662E0B1CDC7B516E93A7B5D0C05949A03B8"]]],"shifted":null},{"unshifted":[["Finite",["0x2866D41D0F4568697CAE2E29E0143418D47BEA50F1AE12425B89331098D8A3ED","0x004BFF1043678595301AF8FE0C298B7316AE437B71E1E859F76FAD73DCAF9C75"]]],"shifted":null},{"unshifted":[["Finite",["0x0C0A0F9037E1A0BB97A38BF8094693528DDEAF854EC70E4353CC5CE5C2A30CB2","0x09248EDD46C25527015B6C072D1B76541AA1297EF03F94180A7204C88DCF26C5"]]],"shifted":null},{"unshifted":[["Finite",["0x342AFEF0A1B4F12C3197FE74C6062CF723144009FD86E4E78CED54433AC498EB","0x13A25D9CCDB85F839EAF00C8CC6B98E829E0C43409AC31226E3E7492B6C081AC"]]],"shifted":null},{"unshifted":[["Finite",["0x14E9A3C599040F5A7257370AB0CF6D633A23A2647D30A0C201614E2A3419DB99","0x0EE1E0F0E5F7BAA5EF3EF72243D730F10CD46F8112CF8BE313428C528ABF352A"]]],"shifted":null},{"unshifted":[["Finite",["0x143B07B690BB601E6036F3F4992149A9B73AAB158F6536F239FFE4E7BB00059A","0x256C74B6A9540CA03362974176010574297558A064DBF2EC0E08FAB6171EF16A"]]],"shifted":null}],"coefficients_comm":[{"unshifted":[["Finite",["0x1FA825AC073524021C9843A5F712E40E3C5ED5EA699FAE86741FF743CAB559EA","0x14AB723D015006DA8C7BEE6D1AA2D2E25BC7970B7C2876D019B9E996AEAB942F"]]],"shifted":null},{"unshifted":[["Finite",["0x2E9E5220459C1604306466B5BBDDC9EDA3D070C5D4C03EFE56E2C0AF42F8CFB6","0x079CA3ACB258FF770A583BFA8E3C9FAD50849068E14B64BDA80CBEE73A9A691B"]]],"shifted":null},{"unshifted":[["Finite",["0x3C71294AE4FC806E09F7373F3BFD1162697B22DB30D872D53D7930CBC0E5F627","0x2EBEECEA5FD198F21FF92A17467F52F71BAA3531BE894B0A93878912B7AC9454"]]],"shifted":null},{"unshifted":[["Finite",["0x0365EC6FA6CECBD31B161BDDF3F05EF238DFD9BC8A0F557D28D584BCF6F37017","0x2AD15EC1538A9A4E0BED6E91E2B05AE8EC7A1C2397FF69F7106534EE460D4AEC"]]],"shifted":null},{"unshifted":[["Finite",["0x2C8C051DE7C26B58EA7980BA15DEA3376185195C88994A7514588E9BF894338D","0x1E74BCC50501AFCB9416BC7E5318085BFF381C9CD630D3A9DC091F5045BD99DC"]]],"shifted":null},{"unshifted":[["Finite",["0x3AAD0ED0B4C5E0A1B0CE319D9274302249C72194F3FED441FE537FB2A11C6263","0x327D285F17D172A5D5074DFC31A7CFC2AC29146C5CEBE84A8CADE806990B534F"]]],"shifted":null},{"unshifted":[["Finite",["0x3D0934AB41D41E63D5997E9057D4D78AF3AB629C0AF2100286FBA85F134D286C","0x0B55D1A90615E96F36E9E472545710275CFCE343FF5E8D6855C15D9AB0CA852C"]]],"shifted":null},{"unshifted":[["Finite",["0x314581EDE333D5DF81145C7135AAC1256A0ED8DE0F373E2DE5D6611BE451DD03","0x3F0413D92E6B11ADEB947399BFB444FED650994815D450EE22CC7F269B582821"]]],"shifted":null},{"unshifted":[["Finite",["0x31892AB0EF9007A18B6848D7CB34A81EFBCBD2B3036A340C679092547365A2A3","0x264CC495FA075632DA8422EDBCD433FEC19A4F8A51DB148FDC70115071733E0F"]]],"shifted":null},{"unshifted":[["Finite",["0x13C82FD025FAB969F472C5C12F5E4F57900C22DB012B76ADA26A6E2E7F7FC821","0x0FB4B331DBBA3496C166023B9144F1B63C3510F5E6B0F5EB2BA0DA9ADCC54218"]]],"shifted":null},{"unshifted":[["Finite",["0x37D11D9267DE38801E8F6F122157FC3C8FE0BD4FD513EFF2DD16CB060B0A3F5F","0x3B604CD996282DFF6B62A1B703872A1E9F097A01270C7AAE366C3113D06A65F2"]]],"shifted":null},{"unshifted":[["Finite",["0x3381AA1D603B2FBFDC07D3595980818B9951778D8B8C749C82DC8C8E220D9AFB","0x064762117042E4190071DB64DA1942D354A52F27A16DFC8C076BD78358AAB02D"]]],"shifted":null},{"unshifted":[["Finite",["0x33261352484985743D417BA2CEDCB1EA3350B7C866A7EF0EC16FD56775EC1910","0x0DBBA68C8DD57441290EC0CBAACB2FCFE8C1B66BCD82C081652BD48E4B2BB90E"]]],"shifted":null},{"unshifted":[["Finite",["0x3F396D7EA673FF7780810CBA86E987220CE8FEDC200C0C7FD82130BBC8901164","0x2E2BC6D59064975C81438A0752D5FAB68D9A982B2AB9783D818FF0B9A50EBE18"]]],"shifted":null},{"unshifted":[["Finite",["0x2CD7881A5E1A8AC5A93560747674C900355FC9C1FAC557551AC4245F0448B26D","0x1DD59EB809F1AAF32C6AFE0066208F98B88D3A39B4EE1FE3294290B2DEB127AB"]]],"shifted":null}],"generic_comm":{"unshifted":[["Finite",["0x11B6A2820578A4614717340BFAA4E5191DF1CE850BEEBCE5AB8B54CEAADFC3A1","0x076AF659D4EA65535FEDF29B860C24B4B5C4C169EE071EFE90B0D2895DC0E8CA"]]],"shifted":null},"psm_comm":{"unshifted":[["Finite",["0x3823B56EBC39DA397F591B5FBCFFF8AEA862F5615B1CDA8A6A59AB71DC8309E4","0x24A95165F4BA7182B6F2A17102773046AE2C9DA10FFE19E7938A6DAE51692740"]]],"shifted":null},"complete_add_comm":{"unshifted":[["Finite",["0x1A3D03420742C22690C09300D3A089A147AF67CD6CA1119B0DFF258E8F15B95E","0x0E59CBCCDA1DE60D5E34C73E3F5C33CBBCCC14B2D883B21CB684E8F362B7F10E"]]],"shifted":null},"mul_comm":{"unshifted":[["Finite",["0x2F9E472859CA4102EB9C3572AA5738B73CDA521600852AFA855109801BA64A85","0x1423FB421325ECB991EA017D09283D5D2C5D38AF4449C0864733B9CA6B7FEA28"]]],"shifted":null},"emul_comm":{"unshifted":[["Finite",["0x018B53E3C45C11738FB48A03BEDB61472324E4E80995AC4D19A7AED7E96F916C","0x304AE6D227798FB1A465DD40E581CDE95C88CF9A36BFB6F718898843E2D0E44D"]]],"shifted":null},"endomul_scalar_comm":{"unshifted":[["Finite",["0x1BE58E4FD71CDD885AC5AD7A158C92DD0C3FBDC9EC5D00ADC525CCDB1B2D5F84","0x122D91EB1FB77AAEB91018B297C0B8F73DCFE1ED6546C6DC64496624BFB23602"]]],"shifted":null},"xor_comm":null,"range_check0_comm":null,"range_check1_comm":null,"foreign_field_add_comm":null,"foreign_field_mul_comm":null,"rot_comm":null},"shifts":["0x0000000000000000000000000000000000000000000000000000000000000001","0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3","0x007CF68160D84012626E0046A932AD12E68B3394D6E2A001A537FFB40D3527C6","0x0077D45AECB939AE97A3952B48189964AA209609F19BE4A4B89F339A33440F6D","0x0077C7E54505D4771F6AF1FED2195500481EF1F3C0397B0AC819E678BD2309B4","0x00B3AF68ECC6AE7A4727F0708EDF4736BE1C99281FA380846E42264C62407484","0x00381CA4536FC0ED935D50A74A87136F1A0675B618898DBCE67E564AB20174A1"],"lookup_index":null,"zk_rows":3},"data":{"constraints":16384}} \ No newline at end of file diff --git a/src/lib/transaction_snark/test/print_transaction_snark_vk/devnet_transaction_snark_vk.json b/src/lib/transaction_snark/test/print_transaction_snark_vk/devnet_transaction_snark_vk.json new file mode 100644 index 000000000000..916d035451cd --- /dev/null +++ b/src/lib/transaction_snark/test/print_transaction_snark_vk/devnet_transaction_snark_vk.json @@ -0,0 +1 @@ +{"commitments":{"sigma_comm":[["0x2E1BA392A00DE111B47C704EBBD87382427FFBEBA2AC2CE2BA264CC51E3BC790","0x26B3DE969086079CB6A4B786DA27CC37E0A88D56D76DCC3B4CE5F49AB0D3AA29"],["0x0D149B771E2875BC64E26367286DA442FFF55680D6C195139CBFEC8C4475B5BC","0x13611F6910AE992655D8476804AE8662E0B1CDC7B516E93A7B5D0C05949A03B8"],["0x2866D41D0F4568697CAE2E29E0143418D47BEA50F1AE12425B89331098D8A3ED","0x004BFF1043678595301AF8FE0C298B7316AE437B71E1E859F76FAD73DCAF9C75"],["0x0C0A0F9037E1A0BB97A38BF8094693528DDEAF854EC70E4353CC5CE5C2A30CB2","0x09248EDD46C25527015B6C072D1B76541AA1297EF03F94180A7204C88DCF26C5"],["0x342AFEF0A1B4F12C3197FE74C6062CF723144009FD86E4E78CED54433AC498EB","0x13A25D9CCDB85F839EAF00C8CC6B98E829E0C43409AC31226E3E7492B6C081AC"],["0x14E9A3C599040F5A7257370AB0CF6D633A23A2647D30A0C201614E2A3419DB99","0x0EE1E0F0E5F7BAA5EF3EF72243D730F10CD46F8112CF8BE313428C528ABF352A"],["0x143B07B690BB601E6036F3F4992149A9B73AAB158F6536F239FFE4E7BB00059A","0x256C74B6A9540CA03362974176010574297558A064DBF2EC0E08FAB6171EF16A"]],"coefficients_comm":[["0x1B8C2F3BCFC1CFB119A2F5578857FD4250BC61F3073AF8E6133A2FFF22587D62","0x08467C8767BE8A0535EE4F0B7752331FEDFBB874D2867196589472C63ED0F4EE"],["0x02DFC1EEE77EED029610FA0DF5ADD702E43C1A375E8CCCE0415661C1E5305496","0x13A4384EC2710DC90FCA1C7661D29FB99F6D901D0F8E48F347C5872124B229C1"],["0x3C71294AE4FC806E09F7373F3BFD1162697B22DB30D872D53D7930CBC0E5F627","0x2EBEECEA5FD198F21FF92A17467F52F71BAA3531BE894B0A93878912B7AC9454"],["0x0365EC6FA6CECBD31B161BDDF3F05EF238DFD9BC8A0F557D28D584BCF6F37017","0x2AD15EC1538A9A4E0BED6E91E2B05AE8EC7A1C2397FF69F7106534EE460D4AEC"],["0x2C8C051DE7C26B58EA7980BA15DEA3376185195C88994A7514588E9BF894338D","0x1E74BCC50501AFCB9416BC7E5318085BFF381C9CD630D3A9DC091F5045BD99DC"],["0x0EC418D79967745A11673BBD0705F4E393D674752F23AD34939E1DCFC90CA8F5","0x3D752AF986D062BF3F93D34C18D9BE01ED26D0F12EE332C3C4A890207984AF6C"],["0x14BC4280B5A4B7D7218BEAEEC028ED47D1B956C4728FEABEF8BE45445B5145EB","0x054D39BB32C137011373C1741766CD6AAE74648E9C556A23C62F281F1098F7EF"],["0x314581EDE333D5DF81145C7135AAC1256A0ED8DE0F373E2DE5D6611BE451DD03","0x3F0413D92E6B11ADEB947399BFB444FED650994815D450EE22CC7F269B582821"],["0x31892AB0EF9007A18B6848D7CB34A81EFBCBD2B3036A340C679092547365A2A3","0x264CC495FA075632DA8422EDBCD433FEC19A4F8A51DB148FDC70115071733E0F"],["0x13C82FD025FAB969F472C5C12F5E4F57900C22DB012B76ADA26A6E2E7F7FC821","0x0FB4B331DBBA3496C166023B9144F1B63C3510F5E6B0F5EB2BA0DA9ADCC54218"],["0x37D11D9267DE38801E8F6F122157FC3C8FE0BD4FD513EFF2DD16CB060B0A3F5F","0x3B604CD996282DFF6B62A1B703872A1E9F097A01270C7AAE366C3113D06A65F2"],["0x3381AA1D603B2FBFDC07D3595980818B9951778D8B8C749C82DC8C8E220D9AFB","0x064762117042E4190071DB64DA1942D354A52F27A16DFC8C076BD78358AAB02D"],["0x33261352484985743D417BA2CEDCB1EA3350B7C866A7EF0EC16FD56775EC1910","0x0DBBA68C8DD57441290EC0CBAACB2FCFE8C1B66BCD82C081652BD48E4B2BB90E"],["0x3F396D7EA673FF7780810CBA86E987220CE8FEDC200C0C7FD82130BBC8901164","0x2E2BC6D59064975C81438A0752D5FAB68D9A982B2AB9783D818FF0B9A50EBE18"],["0x2CD7881A5E1A8AC5A93560747674C900355FC9C1FAC557551AC4245F0448B26D","0x1DD59EB809F1AAF32C6AFE0066208F98B88D3A39B4EE1FE3294290B2DEB127AB"]],"generic_comm":["0x11B6A2820578A4614717340BFAA4E5191DF1CE850BEEBCE5AB8B54CEAADFC3A1","0x076AF659D4EA65535FEDF29B860C24B4B5C4C169EE071EFE90B0D2895DC0E8CA"],"psm_comm":["0x3823B56EBC39DA397F591B5FBCFFF8AEA862F5615B1CDA8A6A59AB71DC8309E4","0x24A95165F4BA7182B6F2A17102773046AE2C9DA10FFE19E7938A6DAE51692740"],"complete_add_comm":["0x1A3D03420742C22690C09300D3A089A147AF67CD6CA1119B0DFF258E8F15B95E","0x0E59CBCCDA1DE60D5E34C73E3F5C33CBBCCC14B2D883B21CB684E8F362B7F10E"],"mul_comm":["0x2F9E472859CA4102EB9C3572AA5738B73CDA521600852AFA855109801BA64A85","0x1423FB421325ECB991EA017D09283D5D2C5D38AF4449C0864733B9CA6B7FEA28"],"emul_comm":["0x018B53E3C45C11738FB48A03BEDB61472324E4E80995AC4D19A7AED7E96F916C","0x304AE6D227798FB1A465DD40E581CDE95C88CF9A36BFB6F718898843E2D0E44D"],"endomul_scalar_comm":["0x1BE58E4FD71CDD885AC5AD7A158C92DD0C3FBDC9EC5D00ADC525CCDB1B2D5F84","0x122D91EB1FB77AAEB91018B297C0B8F73DCFE1ED6546C6DC64496624BFB23602"]},"index":{"domain":{"log_size_of_group":14,"group_gen":"0x1E5587687024253BB079B38D9C5371594958E496C605D3BD898B34D068AFBEE7"},"max_poly_size":32768,"public":40,"prev_challenges":2,"srs":null,"evals":{"sigma_comm":[{"unshifted":[["Finite",["0x2E1BA392A00DE111B47C704EBBD87382427FFBEBA2AC2CE2BA264CC51E3BC790","0x26B3DE969086079CB6A4B786DA27CC37E0A88D56D76DCC3B4CE5F49AB0D3AA29"]]],"shifted":null},{"unshifted":[["Finite",["0x0D149B771E2875BC64E26367286DA442FFF55680D6C195139CBFEC8C4475B5BC","0x13611F6910AE992655D8476804AE8662E0B1CDC7B516E93A7B5D0C05949A03B8"]]],"shifted":null},{"unshifted":[["Finite",["0x2866D41D0F4568697CAE2E29E0143418D47BEA50F1AE12425B89331098D8A3ED","0x004BFF1043678595301AF8FE0C298B7316AE437B71E1E859F76FAD73DCAF9C75"]]],"shifted":null},{"unshifted":[["Finite",["0x0C0A0F9037E1A0BB97A38BF8094693528DDEAF854EC70E4353CC5CE5C2A30CB2","0x09248EDD46C25527015B6C072D1B76541AA1297EF03F94180A7204C88DCF26C5"]]],"shifted":null},{"unshifted":[["Finite",["0x342AFEF0A1B4F12C3197FE74C6062CF723144009FD86E4E78CED54433AC498EB","0x13A25D9CCDB85F839EAF00C8CC6B98E829E0C43409AC31226E3E7492B6C081AC"]]],"shifted":null},{"unshifted":[["Finite",["0x14E9A3C599040F5A7257370AB0CF6D633A23A2647D30A0C201614E2A3419DB99","0x0EE1E0F0E5F7BAA5EF3EF72243D730F10CD46F8112CF8BE313428C528ABF352A"]]],"shifted":null},{"unshifted":[["Finite",["0x143B07B690BB601E6036F3F4992149A9B73AAB158F6536F239FFE4E7BB00059A","0x256C74B6A9540CA03362974176010574297558A064DBF2EC0E08FAB6171EF16A"]]],"shifted":null}],"coefficients_comm":[{"unshifted":[["Finite",["0x1B8C2F3BCFC1CFB119A2F5578857FD4250BC61F3073AF8E6133A2FFF22587D62","0x08467C8767BE8A0535EE4F0B7752331FEDFBB874D2867196589472C63ED0F4EE"]]],"shifted":null},{"unshifted":[["Finite",["0x02DFC1EEE77EED029610FA0DF5ADD702E43C1A375E8CCCE0415661C1E5305496","0x13A4384EC2710DC90FCA1C7661D29FB99F6D901D0F8E48F347C5872124B229C1"]]],"shifted":null},{"unshifted":[["Finite",["0x3C71294AE4FC806E09F7373F3BFD1162697B22DB30D872D53D7930CBC0E5F627","0x2EBEECEA5FD198F21FF92A17467F52F71BAA3531BE894B0A93878912B7AC9454"]]],"shifted":null},{"unshifted":[["Finite",["0x0365EC6FA6CECBD31B161BDDF3F05EF238DFD9BC8A0F557D28D584BCF6F37017","0x2AD15EC1538A9A4E0BED6E91E2B05AE8EC7A1C2397FF69F7106534EE460D4AEC"]]],"shifted":null},{"unshifted":[["Finite",["0x2C8C051DE7C26B58EA7980BA15DEA3376185195C88994A7514588E9BF894338D","0x1E74BCC50501AFCB9416BC7E5318085BFF381C9CD630D3A9DC091F5045BD99DC"]]],"shifted":null},{"unshifted":[["Finite",["0x0EC418D79967745A11673BBD0705F4E393D674752F23AD34939E1DCFC90CA8F5","0x3D752AF986D062BF3F93D34C18D9BE01ED26D0F12EE332C3C4A890207984AF6C"]]],"shifted":null},{"unshifted":[["Finite",["0x14BC4280B5A4B7D7218BEAEEC028ED47D1B956C4728FEABEF8BE45445B5145EB","0x054D39BB32C137011373C1741766CD6AAE74648E9C556A23C62F281F1098F7EF"]]],"shifted":null},{"unshifted":[["Finite",["0x314581EDE333D5DF81145C7135AAC1256A0ED8DE0F373E2DE5D6611BE451DD03","0x3F0413D92E6B11ADEB947399BFB444FED650994815D450EE22CC7F269B582821"]]],"shifted":null},{"unshifted":[["Finite",["0x31892AB0EF9007A18B6848D7CB34A81EFBCBD2B3036A340C679092547365A2A3","0x264CC495FA075632DA8422EDBCD433FEC19A4F8A51DB148FDC70115071733E0F"]]],"shifted":null},{"unshifted":[["Finite",["0x13C82FD025FAB969F472C5C12F5E4F57900C22DB012B76ADA26A6E2E7F7FC821","0x0FB4B331DBBA3496C166023B9144F1B63C3510F5E6B0F5EB2BA0DA9ADCC54218"]]],"shifted":null},{"unshifted":[["Finite",["0x37D11D9267DE38801E8F6F122157FC3C8FE0BD4FD513EFF2DD16CB060B0A3F5F","0x3B604CD996282DFF6B62A1B703872A1E9F097A01270C7AAE366C3113D06A65F2"]]],"shifted":null},{"unshifted":[["Finite",["0x3381AA1D603B2FBFDC07D3595980818B9951778D8B8C749C82DC8C8E220D9AFB","0x064762117042E4190071DB64DA1942D354A52F27A16DFC8C076BD78358AAB02D"]]],"shifted":null},{"unshifted":[["Finite",["0x33261352484985743D417BA2CEDCB1EA3350B7C866A7EF0EC16FD56775EC1910","0x0DBBA68C8DD57441290EC0CBAACB2FCFE8C1B66BCD82C081652BD48E4B2BB90E"]]],"shifted":null},{"unshifted":[["Finite",["0x3F396D7EA673FF7780810CBA86E987220CE8FEDC200C0C7FD82130BBC8901164","0x2E2BC6D59064975C81438A0752D5FAB68D9A982B2AB9783D818FF0B9A50EBE18"]]],"shifted":null},{"unshifted":[["Finite",["0x2CD7881A5E1A8AC5A93560747674C900355FC9C1FAC557551AC4245F0448B26D","0x1DD59EB809F1AAF32C6AFE0066208F98B88D3A39B4EE1FE3294290B2DEB127AB"]]],"shifted":null}],"generic_comm":{"unshifted":[["Finite",["0x11B6A2820578A4614717340BFAA4E5191DF1CE850BEEBCE5AB8B54CEAADFC3A1","0x076AF659D4EA65535FEDF29B860C24B4B5C4C169EE071EFE90B0D2895DC0E8CA"]]],"shifted":null},"psm_comm":{"unshifted":[["Finite",["0x3823B56EBC39DA397F591B5FBCFFF8AEA862F5615B1CDA8A6A59AB71DC8309E4","0x24A95165F4BA7182B6F2A17102773046AE2C9DA10FFE19E7938A6DAE51692740"]]],"shifted":null},"complete_add_comm":{"unshifted":[["Finite",["0x1A3D03420742C22690C09300D3A089A147AF67CD6CA1119B0DFF258E8F15B95E","0x0E59CBCCDA1DE60D5E34C73E3F5C33CBBCCC14B2D883B21CB684E8F362B7F10E"]]],"shifted":null},"mul_comm":{"unshifted":[["Finite",["0x2F9E472859CA4102EB9C3572AA5738B73CDA521600852AFA855109801BA64A85","0x1423FB421325ECB991EA017D09283D5D2C5D38AF4449C0864733B9CA6B7FEA28"]]],"shifted":null},"emul_comm":{"unshifted":[["Finite",["0x018B53E3C45C11738FB48A03BEDB61472324E4E80995AC4D19A7AED7E96F916C","0x304AE6D227798FB1A465DD40E581CDE95C88CF9A36BFB6F718898843E2D0E44D"]]],"shifted":null},"endomul_scalar_comm":{"unshifted":[["Finite",["0x1BE58E4FD71CDD885AC5AD7A158C92DD0C3FBDC9EC5D00ADC525CCDB1B2D5F84","0x122D91EB1FB77AAEB91018B297C0B8F73DCFE1ED6546C6DC64496624BFB23602"]]],"shifted":null},"xor_comm":null,"range_check0_comm":null,"range_check1_comm":null,"foreign_field_add_comm":null,"foreign_field_mul_comm":null,"rot_comm":null},"shifts":["0x0000000000000000000000000000000000000000000000000000000000000001","0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3","0x007CF68160D84012626E0046A932AD12E68B3394D6E2A001A537FFB40D3527C6","0x0077D45AECB939AE97A3952B48189964AA209609F19BE4A4B89F339A33440F6D","0x0077C7E54505D4771F6AF1FED2195500481EF1F3C0397B0AC819E678BD2309B4","0x00B3AF68ECC6AE7A4727F0708EDF4736BE1C99281FA380846E42264C62407484","0x00381CA4536FC0ED935D50A74A87136F1A0675B618898DBCE67E564AB20174A1"],"lookup_index":null,"zk_rows":3},"data":{"constraints":16384}} \ No newline at end of file diff --git a/src/lib/transaction_snark/test/print_transaction_snark_vk/dune b/src/lib/transaction_snark/test/print_transaction_snark_vk/dune new file mode 100644 index 000000000000..b14447ef826b --- /dev/null +++ b/src/lib/transaction_snark/test/print_transaction_snark_vk/dune @@ -0,0 +1,26 @@ +(executable + (name print_transaction_snark_vk) + (libraries genesis_constants mina_node_config transaction_snark) + (instrumentation + (backend bisect_ppx)) + (preprocess + (pps ppx_version))) + +; Generate the verification key JSON file for the current profile. +; The output file name includes the profile to allow profile-specific regression testing. + +(rule + (deps print_transaction_snark_vk.exe) + (targets %{profile}_transaction_snark_vk.json.computed) + (action + (with-stdout-to + %{targets} + (run %{deps})))) + +(rule + (deps + (:orig %{profile}_transaction_snark_vk.json) + (:computed %{profile}_transaction_snark_vk.json.computed)) + (alias runtest) + (action + (diff %{orig} %{computed}))) diff --git a/src/lib/transaction_snark/test/print_transaction_snark_vk/mainnet_transaction_snark_vk.json b/src/lib/transaction_snark/test/print_transaction_snark_vk/mainnet_transaction_snark_vk.json new file mode 100644 index 000000000000..8bd192a7ba57 --- /dev/null +++ b/src/lib/transaction_snark/test/print_transaction_snark_vk/mainnet_transaction_snark_vk.json @@ -0,0 +1 @@ +{"commitments":{"sigma_comm":[["0x2E1BA392A00DE111B47C704EBBD87382427FFBEBA2AC2CE2BA264CC51E3BC790","0x26B3DE969086079CB6A4B786DA27CC37E0A88D56D76DCC3B4CE5F49AB0D3AA29"],["0x0D149B771E2875BC64E26367286DA442FFF55680D6C195139CBFEC8C4475B5BC","0x13611F6910AE992655D8476804AE8662E0B1CDC7B516E93A7B5D0C05949A03B8"],["0x2866D41D0F4568697CAE2E29E0143418D47BEA50F1AE12425B89331098D8A3ED","0x004BFF1043678595301AF8FE0C298B7316AE437B71E1E859F76FAD73DCAF9C75"],["0x0C0A0F9037E1A0BB97A38BF8094693528DDEAF854EC70E4353CC5CE5C2A30CB2","0x09248EDD46C25527015B6C072D1B76541AA1297EF03F94180A7204C88DCF26C5"],["0x342AFEF0A1B4F12C3197FE74C6062CF723144009FD86E4E78CED54433AC498EB","0x13A25D9CCDB85F839EAF00C8CC6B98E829E0C43409AC31226E3E7492B6C081AC"],["0x14E9A3C599040F5A7257370AB0CF6D633A23A2647D30A0C201614E2A3419DB99","0x0EE1E0F0E5F7BAA5EF3EF72243D730F10CD46F8112CF8BE313428C528ABF352A"],["0x143B07B690BB601E6036F3F4992149A9B73AAB158F6536F239FFE4E7BB00059A","0x256C74B6A9540CA03362974176010574297558A064DBF2EC0E08FAB6171EF16A"]],"coefficients_comm":[["0x3D40E1DA8B8C85E14637351DCF5785457F55E228DA6EE2CE003D26075668031B","0x2758747440C93EA3462E2E7990D7DAB84550AAD1C9F2E6D797808738656F0E7B"],["0x20C02EDEC15747AB9886D9C2FA964B3FF3B8E465642852E3F55F0C2280AE06CD","0x0F80A10A15E03CC3C3D3541821C94F56954CE37BDC3120C18D0834CDE9F42092"],["0x3C71294AE4FC806E09F7373F3BFD1162697B22DB30D872D53D7930CBC0E5F627","0x2EBEECEA5FD198F21FF92A17467F52F71BAA3531BE894B0A93878912B7AC9454"],["0x0365EC6FA6CECBD31B161BDDF3F05EF238DFD9BC8A0F557D28D584BCF6F37017","0x2AD15EC1538A9A4E0BED6E91E2B05AE8EC7A1C2397FF69F7106534EE460D4AEC"],["0x2C8C051DE7C26B58EA7980BA15DEA3376185195C88994A7514588E9BF894338D","0x1E74BCC50501AFCB9416BC7E5318085BFF381C9CD630D3A9DC091F5045BD99DC"],["0x03AE63F3B2FB4AA336243F0C6591E351EE029CDCA8BCD6616C44CF2B21FA3759","0x38223726C5FAB7808268911F24215F103533AFE65422F060E39D420D091EBE12"],["0x14BC4280B5A4B7D7218BEAEEC028ED47D1B956C4728FEABEF8BE45445B5145EB","0x054D39BB32C137011373C1741766CD6AAE74648E9C556A23C62F281F1098F7EF"],["0x314581EDE333D5DF81145C7135AAC1256A0ED8DE0F373E2DE5D6611BE451DD03","0x3F0413D92E6B11ADEB947399BFB444FED650994815D450EE22CC7F269B582821"],["0x31892AB0EF9007A18B6848D7CB34A81EFBCBD2B3036A340C679092547365A2A3","0x264CC495FA075632DA8422EDBCD433FEC19A4F8A51DB148FDC70115071733E0F"],["0x13C82FD025FAB969F472C5C12F5E4F57900C22DB012B76ADA26A6E2E7F7FC821","0x0FB4B331DBBA3496C166023B9144F1B63C3510F5E6B0F5EB2BA0DA9ADCC54218"],["0x37D11D9267DE38801E8F6F122157FC3C8FE0BD4FD513EFF2DD16CB060B0A3F5F","0x3B604CD996282DFF6B62A1B703872A1E9F097A01270C7AAE366C3113D06A65F2"],["0x3381AA1D603B2FBFDC07D3595980818B9951778D8B8C749C82DC8C8E220D9AFB","0x064762117042E4190071DB64DA1942D354A52F27A16DFC8C076BD78358AAB02D"],["0x33261352484985743D417BA2CEDCB1EA3350B7C866A7EF0EC16FD56775EC1910","0x0DBBA68C8DD57441290EC0CBAACB2FCFE8C1B66BCD82C081652BD48E4B2BB90E"],["0x3F396D7EA673FF7780810CBA86E987220CE8FEDC200C0C7FD82130BBC8901164","0x2E2BC6D59064975C81438A0752D5FAB68D9A982B2AB9783D818FF0B9A50EBE18"],["0x2CD7881A5E1A8AC5A93560747674C900355FC9C1FAC557551AC4245F0448B26D","0x1DD59EB809F1AAF32C6AFE0066208F98B88D3A39B4EE1FE3294290B2DEB127AB"]],"generic_comm":["0x11B6A2820578A4614717340BFAA4E5191DF1CE850BEEBCE5AB8B54CEAADFC3A1","0x076AF659D4EA65535FEDF29B860C24B4B5C4C169EE071EFE90B0D2895DC0E8CA"],"psm_comm":["0x3823B56EBC39DA397F591B5FBCFFF8AEA862F5615B1CDA8A6A59AB71DC8309E4","0x24A95165F4BA7182B6F2A17102773046AE2C9DA10FFE19E7938A6DAE51692740"],"complete_add_comm":["0x1A3D03420742C22690C09300D3A089A147AF67CD6CA1119B0DFF258E8F15B95E","0x0E59CBCCDA1DE60D5E34C73E3F5C33CBBCCC14B2D883B21CB684E8F362B7F10E"],"mul_comm":["0x2F9E472859CA4102EB9C3572AA5738B73CDA521600852AFA855109801BA64A85","0x1423FB421325ECB991EA017D09283D5D2C5D38AF4449C0864733B9CA6B7FEA28"],"emul_comm":["0x018B53E3C45C11738FB48A03BEDB61472324E4E80995AC4D19A7AED7E96F916C","0x304AE6D227798FB1A465DD40E581CDE95C88CF9A36BFB6F718898843E2D0E44D"],"endomul_scalar_comm":["0x1BE58E4FD71CDD885AC5AD7A158C92DD0C3FBDC9EC5D00ADC525CCDB1B2D5F84","0x122D91EB1FB77AAEB91018B297C0B8F73DCFE1ED6546C6DC64496624BFB23602"]},"index":{"domain":{"log_size_of_group":14,"group_gen":"0x1E5587687024253BB079B38D9C5371594958E496C605D3BD898B34D068AFBEE7"},"max_poly_size":32768,"public":40,"prev_challenges":2,"srs":null,"evals":{"sigma_comm":[{"unshifted":[["Finite",["0x2E1BA392A00DE111B47C704EBBD87382427FFBEBA2AC2CE2BA264CC51E3BC790","0x26B3DE969086079CB6A4B786DA27CC37E0A88D56D76DCC3B4CE5F49AB0D3AA29"]]],"shifted":null},{"unshifted":[["Finite",["0x0D149B771E2875BC64E26367286DA442FFF55680D6C195139CBFEC8C4475B5BC","0x13611F6910AE992655D8476804AE8662E0B1CDC7B516E93A7B5D0C05949A03B8"]]],"shifted":null},{"unshifted":[["Finite",["0x2866D41D0F4568697CAE2E29E0143418D47BEA50F1AE12425B89331098D8A3ED","0x004BFF1043678595301AF8FE0C298B7316AE437B71E1E859F76FAD73DCAF9C75"]]],"shifted":null},{"unshifted":[["Finite",["0x0C0A0F9037E1A0BB97A38BF8094693528DDEAF854EC70E4353CC5CE5C2A30CB2","0x09248EDD46C25527015B6C072D1B76541AA1297EF03F94180A7204C88DCF26C5"]]],"shifted":null},{"unshifted":[["Finite",["0x342AFEF0A1B4F12C3197FE74C6062CF723144009FD86E4E78CED54433AC498EB","0x13A25D9CCDB85F839EAF00C8CC6B98E829E0C43409AC31226E3E7492B6C081AC"]]],"shifted":null},{"unshifted":[["Finite",["0x14E9A3C599040F5A7257370AB0CF6D633A23A2647D30A0C201614E2A3419DB99","0x0EE1E0F0E5F7BAA5EF3EF72243D730F10CD46F8112CF8BE313428C528ABF352A"]]],"shifted":null},{"unshifted":[["Finite",["0x143B07B690BB601E6036F3F4992149A9B73AAB158F6536F239FFE4E7BB00059A","0x256C74B6A9540CA03362974176010574297558A064DBF2EC0E08FAB6171EF16A"]]],"shifted":null}],"coefficients_comm":[{"unshifted":[["Finite",["0x3D40E1DA8B8C85E14637351DCF5785457F55E228DA6EE2CE003D26075668031B","0x2758747440C93EA3462E2E7990D7DAB84550AAD1C9F2E6D797808738656F0E7B"]]],"shifted":null},{"unshifted":[["Finite",["0x20C02EDEC15747AB9886D9C2FA964B3FF3B8E465642852E3F55F0C2280AE06CD","0x0F80A10A15E03CC3C3D3541821C94F56954CE37BDC3120C18D0834CDE9F42092"]]],"shifted":null},{"unshifted":[["Finite",["0x3C71294AE4FC806E09F7373F3BFD1162697B22DB30D872D53D7930CBC0E5F627","0x2EBEECEA5FD198F21FF92A17467F52F71BAA3531BE894B0A93878912B7AC9454"]]],"shifted":null},{"unshifted":[["Finite",["0x0365EC6FA6CECBD31B161BDDF3F05EF238DFD9BC8A0F557D28D584BCF6F37017","0x2AD15EC1538A9A4E0BED6E91E2B05AE8EC7A1C2397FF69F7106534EE460D4AEC"]]],"shifted":null},{"unshifted":[["Finite",["0x2C8C051DE7C26B58EA7980BA15DEA3376185195C88994A7514588E9BF894338D","0x1E74BCC50501AFCB9416BC7E5318085BFF381C9CD630D3A9DC091F5045BD99DC"]]],"shifted":null},{"unshifted":[["Finite",["0x03AE63F3B2FB4AA336243F0C6591E351EE029CDCA8BCD6616C44CF2B21FA3759","0x38223726C5FAB7808268911F24215F103533AFE65422F060E39D420D091EBE12"]]],"shifted":null},{"unshifted":[["Finite",["0x14BC4280B5A4B7D7218BEAEEC028ED47D1B956C4728FEABEF8BE45445B5145EB","0x054D39BB32C137011373C1741766CD6AAE74648E9C556A23C62F281F1098F7EF"]]],"shifted":null},{"unshifted":[["Finite",["0x314581EDE333D5DF81145C7135AAC1256A0ED8DE0F373E2DE5D6611BE451DD03","0x3F0413D92E6B11ADEB947399BFB444FED650994815D450EE22CC7F269B582821"]]],"shifted":null},{"unshifted":[["Finite",["0x31892AB0EF9007A18B6848D7CB34A81EFBCBD2B3036A340C679092547365A2A3","0x264CC495FA075632DA8422EDBCD433FEC19A4F8A51DB148FDC70115071733E0F"]]],"shifted":null},{"unshifted":[["Finite",["0x13C82FD025FAB969F472C5C12F5E4F57900C22DB012B76ADA26A6E2E7F7FC821","0x0FB4B331DBBA3496C166023B9144F1B63C3510F5E6B0F5EB2BA0DA9ADCC54218"]]],"shifted":null},{"unshifted":[["Finite",["0x37D11D9267DE38801E8F6F122157FC3C8FE0BD4FD513EFF2DD16CB060B0A3F5F","0x3B604CD996282DFF6B62A1B703872A1E9F097A01270C7AAE366C3113D06A65F2"]]],"shifted":null},{"unshifted":[["Finite",["0x3381AA1D603B2FBFDC07D3595980818B9951778D8B8C749C82DC8C8E220D9AFB","0x064762117042E4190071DB64DA1942D354A52F27A16DFC8C076BD78358AAB02D"]]],"shifted":null},{"unshifted":[["Finite",["0x33261352484985743D417BA2CEDCB1EA3350B7C866A7EF0EC16FD56775EC1910","0x0DBBA68C8DD57441290EC0CBAACB2FCFE8C1B66BCD82C081652BD48E4B2BB90E"]]],"shifted":null},{"unshifted":[["Finite",["0x3F396D7EA673FF7780810CBA86E987220CE8FEDC200C0C7FD82130BBC8901164","0x2E2BC6D59064975C81438A0752D5FAB68D9A982B2AB9783D818FF0B9A50EBE18"]]],"shifted":null},{"unshifted":[["Finite",["0x2CD7881A5E1A8AC5A93560747674C900355FC9C1FAC557551AC4245F0448B26D","0x1DD59EB809F1AAF32C6AFE0066208F98B88D3A39B4EE1FE3294290B2DEB127AB"]]],"shifted":null}],"generic_comm":{"unshifted":[["Finite",["0x11B6A2820578A4614717340BFAA4E5191DF1CE850BEEBCE5AB8B54CEAADFC3A1","0x076AF659D4EA65535FEDF29B860C24B4B5C4C169EE071EFE90B0D2895DC0E8CA"]]],"shifted":null},"psm_comm":{"unshifted":[["Finite",["0x3823B56EBC39DA397F591B5FBCFFF8AEA862F5615B1CDA8A6A59AB71DC8309E4","0x24A95165F4BA7182B6F2A17102773046AE2C9DA10FFE19E7938A6DAE51692740"]]],"shifted":null},"complete_add_comm":{"unshifted":[["Finite",["0x1A3D03420742C22690C09300D3A089A147AF67CD6CA1119B0DFF258E8F15B95E","0x0E59CBCCDA1DE60D5E34C73E3F5C33CBBCCC14B2D883B21CB684E8F362B7F10E"]]],"shifted":null},"mul_comm":{"unshifted":[["Finite",["0x2F9E472859CA4102EB9C3572AA5738B73CDA521600852AFA855109801BA64A85","0x1423FB421325ECB991EA017D09283D5D2C5D38AF4449C0864733B9CA6B7FEA28"]]],"shifted":null},"emul_comm":{"unshifted":[["Finite",["0x018B53E3C45C11738FB48A03BEDB61472324E4E80995AC4D19A7AED7E96F916C","0x304AE6D227798FB1A465DD40E581CDE95C88CF9A36BFB6F718898843E2D0E44D"]]],"shifted":null},"endomul_scalar_comm":{"unshifted":[["Finite",["0x1BE58E4FD71CDD885AC5AD7A158C92DD0C3FBDC9EC5D00ADC525CCDB1B2D5F84","0x122D91EB1FB77AAEB91018B297C0B8F73DCFE1ED6546C6DC64496624BFB23602"]]],"shifted":null},"xor_comm":null,"range_check0_comm":null,"range_check1_comm":null,"foreign_field_add_comm":null,"foreign_field_mul_comm":null,"rot_comm":null},"shifts":["0x0000000000000000000000000000000000000000000000000000000000000001","0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3","0x007CF68160D84012626E0046A932AD12E68B3394D6E2A001A537FFB40D3527C6","0x0077D45AECB939AE97A3952B48189964AA209609F19BE4A4B89F339A33440F6D","0x0077C7E54505D4771F6AF1FED2195500481EF1F3C0397B0AC819E678BD2309B4","0x00B3AF68ECC6AE7A4727F0708EDF4736BE1C99281FA380846E42264C62407484","0x00381CA4536FC0ED935D50A74A87136F1A0675B618898DBCE67E564AB20174A1"],"lookup_index":null,"zk_rows":3},"data":{"constraints":16384}} \ No newline at end of file diff --git a/src/lib/transaction_snark/test/print_transaction_snark_vk/print_transaction_snark_vk.ml b/src/lib/transaction_snark/test/print_transaction_snark_vk/print_transaction_snark_vk.ml new file mode 100644 index 000000000000..9387490d23a2 --- /dev/null +++ b/src/lib/transaction_snark/test/print_transaction_snark_vk/print_transaction_snark_vk.ml @@ -0,0 +1,29 @@ +(** Print the transaction snark verification key as JSON. + + This is used to generate reference verification key files for each profile. + The output file is named based on the current profile (dev, devnet, lightnet, + mainnet). *) + +open Core_kernel + +let () = + Format.eprintf "Profile: %s@." Node_config.profile ; + Async.Thread_safe.block_on_async_exn (fun () -> + let () = Format.eprintf "Generating transaction snark circuit..@." in + let before = Time.now () in + let module Transaction_snark_instance = Transaction_snark.Make (struct + let signature_kind = Mina_signature_kind.t_DEPRECATED + + let constraint_constants = + Genesis_constants.Compiled.constraint_constants + + let proof_level = Genesis_constants.Proof_level.Full + end) in + let after = Time.now () in + let () = + Format.eprintf "Generated transaction snark circuit in %s.@." + (Time.Span.to_string_hum (Time.diff after before)) + in + Lazy.force Transaction_snark_instance.verification_key ) + |> Pickles.Verification_key.to_yojson |> Yojson.Safe.to_string + |> Format.print_string diff --git a/src/lib/transaction_snark/test/transaction_union/transaction_union.ml b/src/lib/transaction_snark/test/transaction_union/transaction_union.ml index 154cd7762bb1..fa5ac7bebab4 100644 --- a/src/lib/transaction_snark/test/transaction_union/transaction_union.ml +++ b/src/lib/transaction_snark/test/transaction_union/transaction_union.ml @@ -585,8 +585,12 @@ let%test_module "Transaction union tests" = let open Staged_ledger_diff in let state_body0 = Mina_state.Protocol_state.negative_one - ~genesis_ledger:Genesis_ledger.for_unit_tests - ~genesis_epoch_data:Consensus.Genesis_epoch_data.for_unit_tests + ~genesis_ledger: + (Consensus.Genesis_data.Ledger.to_hashed + Genesis_ledger.for_unit_tests ) + ~genesis_epoch_data: + (Consensus.Genesis_data.Epoch.to_hashed + Consensus.Genesis_data.Epoch.for_unit_tests ) ~constraint_constants ~consensus_constants ~genesis_body_reference |> Mina_state.Protocol_state.body in @@ -608,8 +612,12 @@ let%test_module "Transaction union tests" = let state_body0 = let open Staged_ledger_diff in Mina_state.Protocol_state.negative_one - ~genesis_ledger:Genesis_ledger.for_unit_tests - ~genesis_epoch_data:Consensus.Genesis_epoch_data.for_unit_tests + ~genesis_ledger: + (Consensus.Genesis_data.Ledger.to_hashed + Genesis_ledger.for_unit_tests ) + ~genesis_epoch_data: + (Consensus.Genesis_data.Epoch.to_hashed + Consensus.Genesis_data.Epoch.for_unit_tests ) ~constraint_constants ~consensus_constants ~genesis_body_reference |> Mina_state.Protocol_state.body in diff --git a/src/lib/transaction_snark/test/util.ml b/src/lib/transaction_snark/test/util.ml index 1978de0a4168..564b4db37862 100644 --- a/src/lib/transaction_snark/test/util.ml +++ b/src/lib/transaction_snark/test/util.ml @@ -50,8 +50,11 @@ let genesis_state_body = let open Staged_ledger_diff in (*not using Precomputed_values.for_unit_test because of dependency cycle*) Mina_state.Genesis_protocol_state.t - ~genesis_ledger:Genesis_ledger.for_unit_tests - ~genesis_epoch_data:Consensus.Genesis_epoch_data.for_unit_tests + ~genesis_ledger: + (Consensus.Genesis_data.Ledger.to_hashed Genesis_ledger.for_unit_tests) + ~genesis_epoch_data: + (Consensus.Genesis_data.Epoch.to_hashed + Consensus.Genesis_data.Epoch.for_unit_tests ) ~constraint_constants ~consensus_constants ~genesis_body_reference in compile_time_genesis.data |> Mina_state.Protocol_state.body diff --git a/src/lib/transaction_snark/transaction_snark.ml b/src/lib/transaction_snark/transaction_snark.ml index a2e9191385d4..fb6e52ef0074 100644 --- a/src/lib/transaction_snark/transaction_snark.ml +++ b/src/lib/transaction_snark/transaction_snark.ml @@ -3209,6 +3209,9 @@ module Make_str (A : Wire_types.Concrete) = struct [@@deriving fields] end + (** Merge circuit: combines two transaction proofs into one. + Used for ALL transaction types (base, zkapp_opt_signed_opt_signed, + zkapp_opt_signed, zkapp_proved). *) module Merge = struct open Tick @@ -3585,6 +3588,58 @@ module Make_str (A : Wire_types.Concrete) = struct (main ~signature_kind ~constraint_constants)) ) ] + (** Return the constraint system for the transaction-merge circuit. *) + let merge_constraint_system () = + Merge.( + Tick.constraint_system ~input_typ:Statement.With_sok.typ + ~return_typ:Tick.Typ.unit (fun x -> + let open Tick in + Checked.map ~f:ignore @@ main x )) + + (** Return the constraint system for the transaction-base circuit. *) + let base_constraint_system ~signature_kind ~constraint_constants = + Base.( + Tick.constraint_system ~input_typ:Statement.With_sok.typ + ~return_typ:Tick.Typ.unit + (main ~signature_kind ~constraint_constants)) + + (** Return the constraint system for the zkapp-opt_signed-opt_signed circuit. *) + let zkapp_opt_signed_opt_signed_constraint_system ~signature_kind + ~constraint_constants = + let spec = Zkapp_command_segment.Basic.spec Opt_signed_opt_signed in + Tick.constraint_system ~input_typ:Statement.With_sok.typ + ~return_typ:Tick.Typ.unit (fun stmt -> + let open Tick in + let (_ : Zkapp_statement.Checked.t option * _) = + Base.Zkapp_command_snark.main ~signature_kind spec + ~constraint_constants stmt + in + Checked.return () ) + + (** Return the constraint system for the zkapp-opt_signed circuit. *) + let zkapp_opt_signed_constraint_system ~signature_kind ~constraint_constants = + let spec = Zkapp_command_segment.Basic.spec Opt_signed in + Tick.constraint_system ~input_typ:Statement.With_sok.typ + ~return_typ:Tick.Typ.unit (fun stmt -> + let open Tick in + let (_ : Zkapp_statement.Checked.t option * _) = + Base.Zkapp_command_snark.main ~signature_kind spec + ~constraint_constants stmt + in + Checked.return () ) + + (** Return the constraint system for the zkapp-proved circuit. *) + let zkapp_proved_constraint_system ~signature_kind ~constraint_constants = + let spec = Zkapp_command_segment.Basic.spec Proved in + Tick.constraint_system ~input_typ:Statement.With_sok.typ + ~return_typ:Tick.Typ.unit (fun stmt -> + let open Tick in + let (_ : Zkapp_statement.Checked.t option * _) = + Base.Zkapp_command_snark.main ~signature_kind spec + ~constraint_constants stmt + in + Checked.return () ) + module Account_update_group = Zkapp_command.Make_update_group (struct type local_state = ( Stack_frame.value diff --git a/src/lib/transaction_snark/transaction_snark_intf.ml b/src/lib/transaction_snark/transaction_snark_intf.ml index 953c33fadcc3..8297328bc17b 100644 --- a/src/lib/transaction_snark/transaction_snark_intf.ml +++ b/src/lib/transaction_snark/transaction_snark_intf.ml @@ -1,3 +1,85 @@ +(** Transaction SNARK circuits. + + This code is called in: + - [src/lib/prover/prover.ml] - block production + - [src/lib/verifier/verifier.ml] - proof verification + - [src/lib/snark_worker/prod.ml] - SNARK work generation + - [src/lib/genesis_proof/genesis_proof.ml] - genesis proof + + The transaction SNARK has 5 circuits: + + - {b transaction-merge}: Combines two transaction proofs into one. Used to + parallelize proof generation by merging sub-proofs in a tree structure. + This circuit is used for all transaction types, including zkApp commands. + + - {b transaction-base}: Proves a single non-zkApp transaction (payments, + stake delegations, coinbase, fee transfers). This is the leaf circuit + that processes individual transactions. + + - {b zkapp-opt_signed-opt_signed}: Proves a zkApp command with two account + updates that may have optional signatures. Handles the most complex case + with multiple authorization modes. + + - {b zkapp-opt_signed}: Proves a zkApp command with one account update that + may have an optional signature. + + - {b zkapp-proved}: Proves a zkApp command where authorization comes from a + side-loaded proof (the zkApp's own proof). + + Constraint counts vary by profile due to different configuration parameters + (e.g., ledger depth). + + Note: These values are measured with proof_level=Full, which generates the + actual constraint system used in production. See {!Genesis_constants.Proof_level} + for details on proof levels. + + {b Dev profile:} + {v + | Circuit | Constraints | Public Input | Auxiliary Input | + |-----------------------------|-------------|--------------|-----------------| + | transaction-merge | 632 | 300 | 1,895 | + | transaction-base | 12,875 | 300 | 37,502 | + | zkapp-opt_signed-opt_signed | 14,537 | 300 | 56,588 | + | zkapp-opt_signed | 8,026 | 300 | 32,166 | + | zkapp-proved | 4,249 | 300 | 30,732 | + v} + + {b Devnet profile:} + {v + | Circuit | Constraints | Public Input | Auxiliary Input | + |-----------------------------|-------------|--------------|-----------------| + | transaction-merge | 632 | 300 | 1,895 | + | transaction-base | 15,357 | 300 | 63,806 | + | zkapp-opt_signed-opt_signed | 16,206 | 300 | 74,242 | + | zkapp-opt_signed | 8,883 | 300 | 41,170 | + | zkapp-proved | 5,106 | 300 | 39,736 | + v} + + {b Lightnet profile:} + {v + | Circuit | Constraints | Public Input | Auxiliary Input | + |-----------------------------|-------------|--------------|-----------------| + | transaction-merge | 632 | 300 | 1,895 | + | transaction-base | 15,357 | 300 | 63,806 | + | zkapp-opt_signed-opt_signed | 16,206 | 300 | 74,242 | + | zkapp-opt_signed | 8,883 | 300 | 41,170 | + | zkapp-proved | 5,106 | 300 | 39,736 | + v} + + {b Mainnet profile:} + {v + | Circuit | Constraints | Public Input | Auxiliary Input | + |-----------------------------|-------------|--------------|-----------------| + | transaction-merge | 632 | 300 | 1,895 | + | transaction-base | 15,357 | 300 | 63,806 | + | zkapp-opt_signed-opt_signed | 16,206 | 300 | 74,242 | + | zkapp-opt_signed | 8,883 | 300 | 41,170 | + | zkapp-proved | 5,106 | 300 | 39,736 | + v} + + If these values change, update the tables above and the expected values in + [test/constraint_count/test_constraint_count.ml]. *) + module type Full = sig open Core open Mina_base @@ -222,6 +304,33 @@ module type Full = sig -> unit -> (string * Md5.t) list + (** Return the constraint system for the transaction-merge circuit. *) + val merge_constraint_system : unit -> Tick.R1CS_constraint_system.t + + (** Return the constraint system for the transaction-base circuit. *) + val base_constraint_system : + signature_kind:Mina_signature_kind.t + -> constraint_constants:Genesis_constants.Constraint_constants.t + -> Tick.R1CS_constraint_system.t + + (** Return the constraint system for the zkapp-opt_signed-opt_signed circuit. *) + val zkapp_opt_signed_opt_signed_constraint_system : + signature_kind:Mina_signature_kind.t + -> constraint_constants:Genesis_constants.Constraint_constants.t + -> Tick.R1CS_constraint_system.t + + (** Return the constraint system for the zkapp-opt_signed circuit. *) + val zkapp_opt_signed_constraint_system : + signature_kind:Mina_signature_kind.t + -> constraint_constants:Genesis_constants.Constraint_constants.t + -> Tick.R1CS_constraint_system.t + + (** Return the constraint system for the zkapp-proved circuit. *) + val zkapp_proved_constraint_system : + signature_kind:Mina_signature_kind.t + -> constraint_constants:Genesis_constants.Constraint_constants.t + -> Tick.R1CS_constraint_system.t + (* Every circuit must have at least 1 of each type of constraint. This function can be used to add the missing constraints *) val dummy_constraints : unit -> unit Tick.Checked.t diff --git a/src/lib/transaction_snark_scan_state/transaction_snark_scan_state.ml b/src/lib/transaction_snark_scan_state/transaction_snark_scan_state.ml index 6195e17b23df..dc90e43d5a7b 100644 --- a/src/lib/transaction_snark_scan_state/transaction_snark_scan_state.ml +++ b/src/lib/transaction_snark_scan_state/transaction_snark_scan_state.ml @@ -55,17 +55,56 @@ module Transaction_with_witness = struct ; first_pass_ledger_witness : Mina_ledger.Sparse_ledger.t ; second_pass_ledger_witness : Mina_ledger.Sparse_ledger.t ; block_global_slot : Mina_numbers.Global_slot_since_genesis.t + ; hash : Aux_hash.t } - let write_all_proofs_to_disk ~signature_kind ~proof_cache_db - { Stable.Latest.transaction_with_info - ; state_hash + let hash (v : Stable.Latest.t) : Aux_hash.t = + let h = Digestif.SHA256.init () in + let h = + Binable.to_string (module Stable.Latest) v + |> Digestif.SHA256.feed_string h + in + Digestif.SHA256.get h |> Aux_hash.of_sha256 + + let create + ~(transaction_with_info : Mina_transaction_logic.Transaction_applied.t) + ~(state_hash : State_hash.t * State_body_hash.t) + ~(statement : Transaction_snark.Statement.t) + ~(init_stack : Transaction_snark.Pending_coinbase_stack_state.Init_stack.t) + ~(first_pass_ledger_witness : Mina_ledger.Sparse_ledger.t) + ~(second_pass_ledger_witness : Mina_ledger.Sparse_ledger.t) + ~(block_global_slot : Mina_numbers.Global_slot_since_genesis.t) : t = + let (v : Stable.Latest.t) = + { Stable.Latest.transaction_with_info = + Mina_transaction_logic.Transaction_applied.read_all_proofs_from_disk + transaction_with_info + ; Stable.Latest.state_hash ; statement ; init_stack ; first_pass_ledger_witness ; second_pass_ledger_witness ; block_global_slot - } = + } + in + { transaction_with_info + ; state_hash + ; statement + ; init_stack + ; first_pass_ledger_witness + ; second_pass_ledger_witness + ; block_global_slot + ; hash = hash v + } + + let write_all_proofs_to_disk ~signature_kind ~proof_cache_db + ( { Stable.Latest.transaction_with_info + ; state_hash + ; statement + ; init_stack + ; first_pass_ledger_witness + ; second_pass_ledger_witness + ; block_global_slot + } as v ) = { transaction_with_info = Mina_transaction_logic.Transaction_applied.write_all_proofs_to_disk ~signature_kind ~proof_cache_db transaction_with_info @@ -75,6 +114,7 @@ module Transaction_with_witness = struct ; first_pass_ledger_witness ; second_pass_ledger_witness ; block_global_slot + ; hash = hash v } let read_all_proofs_from_disk @@ -85,6 +125,7 @@ module Transaction_with_witness = struct ; first_pass_ledger_witness ; second_pass_ledger_witness ; block_global_slot + ; _ } = { Stable.Latest.transaction_with_info = Mina_transaction_logic.Transaction_applied.read_all_proofs_from_disk @@ -104,14 +145,40 @@ module Ledger_proof_with_sok_message = struct [@@@no_toplevel_latest_type] module V2 = struct - type t = Ledger_proof.Stable.V2.t * Sok_message.Stable.V1.t + type t = + { proof : Ledger_proof.Stable.V2.t; sok_msg : Sok_message.Stable.V1.t } [@@deriving sexp] let to_latest = Fn.id end end] - type t = Ledger_proof.Cached.t * Sok_message.t + let hash (v : Stable.Latest.t) = + let h = Digestif.SHA256.init () in + let h = + (* Taking hash of only the ledger proof because `sok_digest` is part of + the type `Snarked_ledger_state.With_sok.t` and consequently of + the `Ledger_proof.t`, hence it makes no sense to digest sok message + separately here + *) + Binable.to_string (module Ledger_proof.Stable.Latest) v.proof + |> Digestif.SHA256.feed_string h + in + Digestif.SHA256.get h |> Aux_hash.of_sha256 + + type t = + { proof : Ledger_proof.Cached.t + ; sok_msg : Sok_message.t + ; hash : Aux_hash.t + } + + let create ~(proof : Ledger_proof.Cached.t) ~(sok_msg : Sok_message.t) = + let hash = + let proof = Ledger_proof.Cached.read_proof_from_disk proof in + let v = { Stable.Latest.proof; sok_msg } in + hash v + in + { proof; sok_msg; hash } end module Available_job = struct @@ -194,6 +261,36 @@ end type job = Available_job.t +let hash_generic : + type a b. + ledger_proof_hash:(a -> string) + -> tx_witness_hash:(b -> string) + -> (a, b) Parallel_scan.State.t + * (b list * [ `Border_block_continued_in_the_next_tree of bool ]) + -> Staged_ledger_hash.Aux_hash.t = + fun ~ledger_proof_hash ~tx_witness_hash + (parallel_scan_state, previous_incomplete_zkapp_updates) -> + let state_hash = + Parallel_scan.State.hash parallel_scan_state ledger_proof_hash + tx_witness_hash + in + let ( previous_incomplete_zkapp_updates + , `Border_block_continued_in_the_next_tree continue_in_next_tree ) = + previous_incomplete_zkapp_updates + in + let incomplete_updates = + List.fold ~init:(Digestif.SHA256.init ()) previous_incomplete_zkapp_updates + ~f:(fun h t -> Digestif.SHA256.feed_string h (tx_witness_hash t)) + |> Digestif.SHA256.get + in + let continue_in_next_tree = + Digestif.SHA256.digest_string (Bool.to_string continue_in_next_tree) + in + [ state_hash; incomplete_updates; continue_in_next_tree ] + |> List.fold ~init:(Digestif.SHA256.init ()) ~f:(fun h t -> + Digestif.SHA256.feed_string h (Digestif.SHA256.to_raw_string t) ) + |> Digestif.SHA256.get |> Staged_ledger_hash.Aux_hash.of_sha256 + (*Scan state and any zkapp updates that were applied to the to the most recent snarked ledger but are from the tree just before the tree corresponding to the snarked ledger*) @@ -215,29 +312,12 @@ module Stable = struct let to_latest = Fn.id let hash (t : t) = - let state_hash = - Parallel_scan.State.hash t.scan_state - (Binable.to_string (module Ledger_proof_with_sok_message.Stable.V2)) - (Binable.to_string (module Transaction_with_witness.Stable.V3)) - in - let ( previous_incomplete_zkapp_updates - , `Border_block_continued_in_the_next_tree continue_in_next_tree ) = - t.previous_incomplete_zkapp_updates - in - let incomplete_updates = - List.fold ~init:(Digestif.SHA256.init ()) - previous_incomplete_zkapp_updates ~f:(fun h t -> - Digestif.SHA256.feed_string h - @@ Binable.to_string (module Transaction_with_witness.Stable.V3) t ) - |> Digestif.SHA256.get - in - let continue_in_next_tree = - Digestif.SHA256.digest_string (Bool.to_string continue_in_next_tree) - in - [ state_hash; incomplete_updates; continue_in_next_tree ] - |> List.fold ~init:(Digestif.SHA256.init ()) ~f:(fun h t -> - Digestif.SHA256.feed_string h (Digestif.SHA256.to_raw_string t) ) - |> Digestif.SHA256.get |> Staged_ledger_hash.Aux_hash.of_sha256 + hash_generic + ~ledger_proof_hash:(fun (x : Ledger_proof_with_sok_message.Stable.V2.t) -> + Ledger_proof_with_sok_message.hash x ) + ~tx_witness_hash:(fun (x : Transaction_with_witness.Stable.V3.t) -> + Transaction_with_witness.hash x ) + (t.scan_state, t.previous_incomplete_zkapp_updates) end end] @@ -251,6 +331,12 @@ type t = * [ `Border_block_continued_in_the_next_tree of bool ] } +let hash (t : t) = + hash_generic + ~ledger_proof_hash:(fun (x : Ledger_proof_with_sok_message.t) -> x.hash) + ~tx_witness_hash:(fun (x : Transaction_with_witness.t) -> x.hash) + (t.scan_state, t.previous_incomplete_zkapp_updates) + (**********Helpers*************) let create_expected_statement ~constraint_constants @@ -263,6 +349,7 @@ let create_expected_statement ~constraint_constants ; init_stack ; statement ; block_global_slot + ; _ } = let open Or_error.Let_syntax in let source_first_pass_merkle_root = @@ -667,14 +754,15 @@ struct let check_invariants (t : t) ~verifier = check_invariants_impl t.scan_state - ~merge_to_statement:(Fn.compose Ledger_proof.Cached.statement fst) + ~merge_to_statement:(fun (x : Ledger_proof_with_sok_message.t) -> + x.proof |> Ledger_proof.Cached.statement ) ~verify:(Verifier.verify ~verifier) end let statement_of_job : job -> Transaction_snark.Statement.t option = function | Base { statement; _ } -> Some statement - | Merge ((p1, _), (p2, _)) -> + | Merge ({ proof = p1; _ }, { proof = p2; _ }) -> Transaction_snark.Statement.merge (Ledger_proof.Cached.statement p1) (Ledger_proof.Cached.statement p2) @@ -694,6 +782,17 @@ let empty ~(constraint_constants : Genesis_constants.Constraint_constants.t) () module Transactions_ordered = struct module Poly = struct + (** Represents sequence of transactions extracted from scan state + when it emitted a proof, split into: + + * [first_pass] - transactions that went through first pass + * [second_pass] - transactions that went through second pass and correspond + to the current ledger proof (subset of first pass group) + * [current_incomplete] - transactions that went through second pass and correspond + to the the next ledger proof (subset of first pass group) + * [previous_incomplete] - leftover from previous ledger proof emitted with + the current ledger proof (not intersecting with other groups) + *) type 'a t = { first_pass : 'a list ; second_pass : 'a list @@ -705,14 +804,6 @@ module Transactions_ordered = struct type t = Transaction_with_witness.t Poly.t - let map (t : 'a Poly.t) ~f : 'b Poly.t = - let f = List.map ~f in - { Poly.first_pass = f t.first_pass - ; second_pass = f t.second_pass - ; previous_incomplete = f t.previous_incomplete - ; current_incomplete = f t.current_incomplete - } - let fold (t : 'a Poly.t) ~f ~init = let init = List.fold ~init t.first_pass ~f in let init = List.fold ~init t.previous_incomplete ~f in @@ -812,7 +903,7 @@ let extract_txn_and_global_slot (txn_with_witness : Transaction_with_witness.t) (txn, state_hash, global_slot) let latest_ledger_proof t = - let%map.Option (proof, _), _ = + let%map.Option { proof; _ }, _ = Parallel_scan.last_emitted_value t.scan_state in proof @@ -846,10 +937,6 @@ let latest_ledger_proof_and_txs' t = in (proof, txns) -let latest_ledger_proof_txs t = - Option.map (latest_ledger_proof_and_txs' t) ~f:(fun (_, txns) -> - List.map txns ~f:(Transactions_ordered.map ~f:extract_txn_and_global_slot) ) - let incomplete_txns_from_recent_proof_tree t = let open Option.Let_syntax in let%map proof, txns_per_block = latest_ledger_proof_and_txs' t in @@ -899,12 +986,6 @@ let staged_transactions t = in List.concat txns -(*All the transactions in the order in which they were applied along with the parent protocol state of the blocks that contained them*) -let staged_transactions_with_state_hash t = - let pending_transactions_per_block = staged_transactions t in - List.map pending_transactions_per_block - ~f:(Transactions_ordered.map ~f:extract_txn_and_global_slot) - (* written in continuation passing style so that implementation can be used both sync and async *) let apply_ordered_txns_stepwise ?(stop_at_first_pass = false) ordered_txns ~ledger ~get_protocol_state ~apply_first_pass ~apply_second_pass @@ -1230,12 +1311,6 @@ let all_jobs t = Parallel_scan.all_jobs t.scan_state let next_on_new_tree t = Parallel_scan.next_on_new_tree t.scan_state -let base_jobs_on_latest_tree t = - Parallel_scan.base_jobs_on_latest_tree t.scan_state - -let base_jobs_on_earlier_tree t = - Parallel_scan.base_jobs_on_earlier_tree t.scan_state - let partition_if_overflowing t = let bundle_count work_count = (work_count + 1) / 2 in let { Space_partition.first = slots, job_count; second } = @@ -1250,7 +1325,7 @@ let partition_if_overflowing t = let snark_job_list_json t = let all_jobs : Job_view.t list list = let fa (a : Ledger_proof_with_sok_message.t) = - Ledger_proof.Cached.statement (fst a) + Ledger_proof.Cached.statement a.proof in let fd (d : Transaction_with_witness.t) = d.statement in Parallel_scan.view_jobs_with_position t.scan_state fa fd @@ -1303,6 +1378,7 @@ let single_spec_of_job ~get_state : ; second_pass_ledger_witness ; init_stack ; block_global_slot + ; _ } -> let%map.Or_error witness = let { With_status.data = transaction; status } = @@ -1330,7 +1406,7 @@ let single_spec_of_job ~get_state : } in Snark_work_lib.Work.Single.Spec.Transition (statement, witness) - | Merge ((p1, _), (p2, _)) -> + | Merge ({ proof = p1; _ }, { proof = p2; _ }) -> let%map.Or_error merged = Transaction_snark.Statement.merge (Ledger_proof.Cached.statement p1) @@ -1370,7 +1446,8 @@ let fill_work_and_enqueue_transactions t ~logger transactions work = let fee = Transaction_snark_work.fee w in let prover = Transaction_snark_work.prover w in One_or_two.map (Transaction_snark_work.proofs w) ~f:(fun proof -> - (proof, Sok_message.create ~fee ~prover) ) + Ledger_proof_with_sok_message.create ~proof + ~sok_msg:(Sok_message.create ~fee ~prover) ) |> One_or_two.to_list in (*get incomplete transactions from previous proof which will be completed in @@ -1400,14 +1477,14 @@ let fill_work_and_enqueue_transactions t ~logger transactions work = t.previous_incomplete_zkapp_updates } ) ) proof_opt - ~f:(fun ((proof, _), _txns_with_witnesses) -> + ~f:(fun ({ proof; _ }, _txns_with_witnesses) -> let curr_stmt = Ledger_proof.Cached.statement proof in let prev_stmt, incomplete_zkapp_updates_from_old_proof = Option.value_map ~default: (curr_stmt, ([], `Border_block_continued_in_the_next_tree false)) old_proof_and_incomplete_zkapp_updates - ~f:(fun ((p', _), incomplete_zkapp_updates_from_old_proof) -> + ~f:(fun ({ proof = p'; _ }, incomplete_zkapp_updates_from_old_proof) -> ( Ledger_proof.Cached.statement p' , incomplete_zkapp_updates_from_old_proof ) ) in @@ -1481,8 +1558,13 @@ let write_all_proofs_to_disk ~signature_kind ~proof_cache_db { Stable.Latest.scan_state = uncached ; previous_incomplete_zkapp_updates = tx_list, border_status } = - let f1 (p, v) = - (Ledger_proof.Cached.write_proof_to_disk ~proof_cache_db p, v) + let f1 ({ Ledger_proof_with_sok_message.Stable.Latest.proof; sok_msg } as v) = + let hash = Ledger_proof_with_sok_message.hash v in + { Ledger_proof_with_sok_message.proof = + Ledger_proof.Cached.write_proof_to_disk ~proof_cache_db proof + ; sok_msg + ; hash + } in { scan_state = Parallel_scan.State.map uncached ~f1 @@ -1502,7 +1584,12 @@ let read_all_proofs_from_disk { scan_state = cached ; previous_incomplete_zkapp_updates = tx_list, border_status } = - let f1 (p, v) = (Ledger_proof.Cached.read_proof_from_disk p, v) in + let f1 { Ledger_proof_with_sok_message.proof; sok_msg; _ } = + { Ledger_proof_with_sok_message.Stable.Latest.proof = + Ledger_proof.Cached.read_proof_from_disk proof + ; sok_msg + } + in let scan_state = Parallel_scan.State.map ~f1 ~f2:Transaction_with_witness.read_all_proofs_from_disk cached diff --git a/src/lib/transaction_snark_scan_state/transaction_snark_scan_state.mli b/src/lib/transaction_snark_scan_state/transaction_snark_scan_state.mli index c9e256decc4b..ca3abe604c80 100644 --- a/src/lib/transaction_snark_scan_state/transaction_snark_scan_state.mli +++ b/src/lib/transaction_snark_scan_state/transaction_snark_scan_state.mli @@ -17,6 +17,8 @@ end] type t +val hash : t -> Staged_ledger_hash.Aux_hash.t + module Transaction_with_witness : sig (* TODO: The statement is redundant here - it can be computed from the witness and the transaction *) type t = @@ -27,11 +29,28 @@ module Transaction_with_witness : sig ; first_pass_ledger_witness : Mina_ledger.Sparse_ledger.t ; second_pass_ledger_witness : Mina_ledger.Sparse_ledger.t ; block_global_slot : Mina_numbers.Global_slot_since_genesis.t + ; hash : Aux_hash.t } + + val create : + transaction_with_info:Mina_transaction_logic.Transaction_applied.t + -> state_hash:State_hash.t * State_body_hash.t + -> statement:Transaction_snark.Statement.t + -> init_stack:Transaction_snark.Pending_coinbase_stack_state.Init_stack.t + -> first_pass_ledger_witness:Mina_ledger.Sparse_ledger.t + -> second_pass_ledger_witness:Mina_ledger.Sparse_ledger.t + -> block_global_slot:Mina_numbers.Global_slot_since_genesis.t + -> t end module Ledger_proof_with_sok_message : sig - type t = Ledger_proof.Cached.t * Sok_message.t + type t = + { proof : Ledger_proof.Cached.t + ; sok_msg : Sok_message.t + ; hash : Aux_hash.t + } + + val create : proof:Ledger_proof.Cached.t -> sok_msg:Sok_message.t -> t end module Available_job : sig @@ -68,20 +87,6 @@ end) : sig -> (unit, Error.t) Deferred.Result.t end -module Transactions_ordered : sig - module Poly : sig - type 'a t = - { first_pass : 'a list - ; second_pass : 'a list - ; previous_incomplete : 'a list - ; current_incomplete : 'a list - } - [@@deriving sexp, to_yojson] - end - - type t = Transaction_with_witness.t Poly.t -end - val empty : constraint_constants:Genesis_constants.Constraint_constants.t -> unit -> t @@ -94,15 +99,6 @@ val fill_work_and_enqueue_transactions : val latest_ledger_proof : t -> Ledger_proof.Cached.t option -val latest_ledger_proof_txs : - t - -> ( Transaction.t With_status.t - * State_hash.t - * Mina_numbers.Global_slot_since_genesis.t ) - Transactions_ordered.Poly.t - list - option - (** Apply transactions coorresponding to the last emitted proof based on the two-pass system- first pass includes legacy transactions and zkapp payments and the second pass includes account updates. [ignore_incomplete] is to @@ -196,21 +192,6 @@ val get_staged_ledger_async : val free_space : t -> int -val base_jobs_on_latest_tree : t -> Transaction_with_witness.t list - -(* a 0 index means next-to-latest tree *) -val base_jobs_on_earlier_tree : - t -> index:int -> Transaction_with_witness.t list - -(** All the transactions with hash of the parent block in which they were included in the order in which they were applied*) -val staged_transactions_with_state_hash : - t - -> ( Transaction.t With_status.t - * State_hash.t - * Mina_numbers.Global_slot_since_genesis.t ) - Transactions_ordered.Poly.t - list - (** Available space and the corresponding required work-count in one and/or two trees (if the slots to be occupied are in two different trees)*) val partition_if_overflowing : t -> Space_partition.t diff --git a/src/lib/transition_chain_prover/transition_chain_prover.ml b/src/lib/transition_chain_prover/transition_chain_prover.ml index d71bcbffc6a0..7b8b46f14059 100644 --- a/src/lib/transition_chain_prover/transition_chain_prover.ml +++ b/src/lib/transition_chain_prover/transition_chain_prover.ml @@ -18,44 +18,47 @@ module Make (Inputs : Inputs_intf) : get_extension (Transition_frontier.extensions frontier) Root_history in let%map root_data = Root_history.lookup root_history state_hash in - Frontier_base.Root_data.Historical.transition root_data + let validated_block = + Frontier_base.Root_data.Historical.transition root_data + in + Mina_block.Validated.forget validated_block + |> With_hash.map + ~f:(Fn.compose Mina_block.Header.protocol_state Mina_block.header) module Merkle_list = Merkle_list_prover.Make_ident (struct - type value = Mina_block.Validated.t + type value = + Mina_state.Protocol_state.Value.t State_hash.With_state_hashes.t type context = Transition_frontier.t type proof_elem = State_body_hash.t - let to_proof_elem = Mina_block.Validated.state_body_hash + let to_proof_elem = + State_hash.With_state_hashes.state_body_hash + ~compute_hashes:Mina_state.Protocol_state.hashes let get_previous ~context transition = let parent_hash = - transition |> Mina_block.Validated.forget |> With_hash.data - |> Mina_block.header |> Mina_block.Header.protocol_state - |> Protocol_state.previous_state_hash + With_hash.data transition |> Protocol_state.previous_state_hash in - let open Option.Let_syntax in - Option.merge - Transition_frontier.( - find context parent_hash >>| Breadcrumb.validated_transition) + Option.first_some + ( Option.map ~f:Frontier_base.Breadcrumb.protocol_state_with_hashes + @@ Transition_frontier.find context parent_hash ) (find_in_root_history context parent_hash) - ~f:Fn.const end) let prove ?length ~frontier state_hash = let open Option.Let_syntax in let%map requested_transition = - Option.merge - Transition_frontier.( - find frontier state_hash >>| Breadcrumb.validated_transition) + Option.first_some + ( Option.map ~f:Frontier_base.Breadcrumb.protocol_state_with_hashes + @@ Transition_frontier.find frontier state_hash ) (find_in_root_history frontier state_hash) - ~f:Fn.const in let first_transition, merkle_list = Merkle_list.prove ?length ~context:frontier requested_transition in - (Mina_block.Validated.state_hash first_transition, merkle_list) + (State_hash.With_state_hashes.state_hash first_transition, merkle_list) end include Make (struct diff --git a/src/lib/transition_frontier/frontier_base/frontier_intf.ml b/src/lib/transition_frontier/frontier_base/frontier_intf.ml index 907a57b62c33..718bab59807f 100644 --- a/src/lib/transition_frontier/frontier_base/frontier_intf.ml +++ b/src/lib/transition_frontier/frontier_base/frontier_intf.ml @@ -10,10 +10,13 @@ module type S = sig val consensus_local_state : t -> Consensus.Data.Local_state.t + val all_state_hashes : t -> State_hash.t list + val all_breadcrumbs : t -> Breadcrumb.t list val root_length : t -> int + (* Primary needed for consensus state *) val root : t -> Breadcrumb.t val best_tip : t -> Breadcrumb.t @@ -32,8 +35,6 @@ module type S = sig val successors : t -> Breadcrumb.t -> Breadcrumb.t list - val iter : t -> f:(Breadcrumb.t -> unit) -> unit - val best_tip_path_length_exn : t -> int val visualize_to_string : t -> string diff --git a/src/lib/transition_frontier/full_frontier/full_frontier.ml b/src/lib/transition_frontier/full_frontier/full_frontier.ml index bd7e5d9be767..99d52349f4eb 100644 --- a/src/lib/transition_frontier/full_frontier/full_frontier.ml +++ b/src/lib/transition_frontier/full_frontier/full_frontier.ml @@ -92,6 +92,12 @@ let consensus_local_state { consensus_local_state; _ } = consensus_local_state let all_breadcrumbs t = List.map (Hashtbl.data t.table) ~f:(fun { breadcrumb; _ } -> breadcrumb) +let size t = Hashtbl.length t.table + +let all_state_hashes t = + List.map (Hashtbl.data t.table) ~f:(fun { breadcrumb; _ } -> + Breadcrumb.state_hash breadcrumb ) + let find t hash = let open Option.Let_syntax in let%map node = Hashtbl.find t.table hash in @@ -115,9 +121,7 @@ let find_protocol_state (t : t) hash = in With_hash.data s | Some breadcrumb -> - Some - ( breadcrumb |> Breadcrumb.block |> Mina_block.header - |> Mina_block.Header.protocol_state ) + Some (Breadcrumb.protocol_state breadcrumb) let root t = find_exn ~message:"root" t t.root @@ -235,8 +239,6 @@ let precomputed_values { context = (module Context); _ } = let genesis_constants { context = (module Context); _ } = Context.precomputed_values.genesis_constants -let iter t ~f = Hashtbl.iter t.table ~f:(fun n -> f n.breadcrumb) - let best_tip_path_length_exn { table; root; best_tip; _ } = let open Option.Let_syntax in let result = @@ -946,28 +948,6 @@ module For_tests = struct !"Protocol state with hash %s not found" (State_body_hash.to_yojson hash |> Yojson.Safe.to_string) ) - let equal t1 t2 = - let sort_breadcrumbs = List.sort ~compare:Breadcrumb.compare in - let equal_breadcrumb breadcrumb1 breadcrumb2 = - let open Breadcrumb in - let open Option.Let_syntax in - let get_successor_nodes frontier breadcrumb = - let%map node = Hashtbl.find frontier.table @@ state_hash breadcrumb in - Node.successor_hashes node - in - equal breadcrumb1 breadcrumb2 - && State_hash.equal (parent_hash breadcrumb1) (parent_hash breadcrumb2) - && (let%bind successors1 = get_successor_nodes t1 breadcrumb1 in - let%map successors2 = get_successor_nodes t2 breadcrumb2 in - List.equal State_hash.equal - (successors1 |> List.sort ~compare:State_hash.compare) - (successors2 |> List.sort ~compare:State_hash.compare) ) - |> Option.value_map ~default:false ~f:Fn.id - in - List.equal equal_breadcrumb - (all_breadcrumbs t1 |> sort_breadcrumbs) - (all_breadcrumbs t2 |> sort_breadcrumbs) - (* TODO: Don't force here!! *) let precomputed_values = Lazy.force Precomputed_values.for_unit_tests diff --git a/src/lib/transition_frontier/full_frontier/full_frontier.mli b/src/lib/transition_frontier/full_frontier/full_frontier.mli index 6dd2ec222da4..7f163704d688 100644 --- a/src/lib/transition_frontier/full_frontier/full_frontier.mli +++ b/src/lib/transition_frontier/full_frontier/full_frontier.mli @@ -65,6 +65,8 @@ val apply_diffs : -> [ `New_root_and_diffs_with_mutants of Root_identifier.t option * Diff.Full.With_mutant.t list ] +val size : t -> int + val common_ancestor : t -> Breadcrumb.t @@ -89,8 +91,6 @@ module Util : sig end module For_tests : sig - val equal : t -> t -> bool - val find_protocol_state_exn : t -> State_hash.t -> Mina_state.Protocol_state.value diff --git a/src/lib/transition_frontier/persistent_frontier/diff_buffer.ml b/src/lib/transition_frontier/persistent_frontier/diff_buffer.ml index 08d0836453ff..b1d70ab3b43e 100644 --- a/src/lib/transition_frontier/persistent_frontier/diff_buffer.ml +++ b/src/lib/transition_frontier/persistent_frontier/diff_buffer.ml @@ -10,9 +10,17 @@ let max_latency * of_ms 5L) module Capacity = struct - let flush = 30 + type t = + { flush : int + (** The number of entries that will trigger a frontier buffer flush *) + ; max : int (** The maximum capacity of the diff buffer *) + } + [@@deriving to_yojson] - let max = flush * 4 + let make ?flush () = + let flush = Option.value ~default:30 flush in + let max = flush * 4 in + { flush; max } end (* TODO: lift up as Block_time utility *) @@ -81,6 +89,7 @@ end type t = { diff_array : Diff.Lite.E.t Rev_dyn_array.t + ; capacity : Capacity.t ; worker : Worker.t (* timer unfortunately needs to be mutable to break recursion *) ; mutable timer : Timer.t option @@ -89,10 +98,10 @@ type t = } let check_for_overflow t = - if Rev_dyn_array.length t.diff_array > Capacity.max then + if Rev_dyn_array.length t.diff_array > t.capacity.max then failwith "persistence buffer overflow" -let should_flush t = Rev_dyn_array.length t.diff_array >= Capacity.flush +let should_flush t = Rev_dyn_array.length t.diff_array >= t.capacity.flush let flush t = let rec flush_job t = @@ -109,9 +118,10 @@ let flush t = t.flush_job <- Some (flush_job t) let create ~(constraint_constants : Genesis_constants.Constraint_constants.t) - ~time_controller ~worker = + ~time_controller ~worker ~capacity = let t = { diff_array = Rev_dyn_array.create () + ; capacity ; worker ; timer = None ; flush_job = None diff --git a/src/lib/transition_frontier/persistent_frontier/sync.ml b/src/lib/transition_frontier/persistent_frontier/sync.ml index b13efd9eec22..59d0d39ed218 100644 --- a/src/lib/transition_frontier/persistent_frontier/sync.ml +++ b/src/lib/transition_frontier/persistent_frontier/sync.ml @@ -1,4 +1,5 @@ open Async_kernel +open Core_kernel (* TODO: *new* convert into an extension *) type t = { worker : Worker.t; buffer : Diff_buffer.t } @@ -10,8 +11,15 @@ let buffer t = Diff_buffer.Rev_dyn_array.to_list t.buffer.diff_array let create ~constraint_constants ~logger ~time_controller ~db ~dequeue_snarked_ledger = let worker = Worker.create { db; logger; dequeue_snarked_ledger } in + let flush_size = + Sys.getenv_opt "MINA_FRONTIER_DIFF_BUFFER_FLUSH_SIZE" + |> Option.bind ~f:Stdlib.int_of_string_opt + in + let capacity = Diff_buffer.Capacity.make ?flush:flush_size () in + [%log debug] "Initializing persistent frontier diff buffer with $capacity" + ~metadata:[ ("capacity", Diff_buffer.Capacity.to_yojson capacity) ] ; let buffer = - Diff_buffer.create ~constraint_constants ~time_controller ~worker + Diff_buffer.create ~constraint_constants ~time_controller ~worker ~capacity in { worker; buffer } diff --git a/src/lib/transition_frontier/persistent_root/persistent_root.ml b/src/lib/transition_frontier/persistent_root/persistent_root.ml index 1008c2c3ea8b..de35d313b3fb 100644 --- a/src/lib/transition_frontier/persistent_root/persistent_root.ml +++ b/src/lib/transition_frontier/persistent_root/persistent_root.ml @@ -1,3 +1,4 @@ +open Async open Core open Mina_base module Ledger = Mina_ledger.Ledger @@ -327,10 +328,10 @@ let reset_factory_root_exn t ~create_root ~root_state_hash = depend on the parent directory existing and the target directory _not_ existing. *) let%bind () = Mina_stdlib_unix.File_system.remove_dir t.directory in - let%map () = Mina_stdlib_unix.File_system.create_dir t.directory in - let root = + let%bind () = Mina_stdlib_unix.File_system.create_dir t.directory in + let%map root = create_root ~config:(Config.snarked_ledger t) ~depth:t.ledger_depth () - |> Or_error.ok_exn + |> Deferred.map ~f:Or_error.ok_exn in Root_ledger.close root ; set_root_state_hash t root_state_hash diff --git a/src/lib/transition_frontier/persistent_root/persistent_root.mli b/src/lib/transition_frontier/persistent_root/persistent_root.mli index 9641e47c75c3..a77197370a90 100644 --- a/src/lib/transition_frontier/persistent_root/persistent_root.mli +++ b/src/lib/transition_frontier/persistent_root/persistent_root.mli @@ -118,7 +118,7 @@ val reset_factory_root_exn : ( config:Root_ledger.Config.t -> depth:int -> unit - -> Root_ledger.t Or_error.t ) + -> Root_ledger.t Async.Deferred.Or_error.t ) -> root_state_hash:State_hash.t -> unit Async.Deferred.t diff --git a/src/lib/transition_frontier/transition_frontier.ml b/src/lib/transition_frontier/transition_frontier.ml index 0f61e08d6f34..5eade935a1c5 100644 --- a/src/lib/transition_frontier/transition_frontier.ml +++ b/src/lib/transition_frontier/transition_frontier.ml @@ -449,8 +449,7 @@ let add_breadcrumb_exn t breadcrumb = [ ( "state_hash" , State_hash.to_yojson (Breadcrumb.state_hash (Full_frontier.best_tip t.full_frontier)) ) - ; ( "n" - , `Int (List.length @@ Full_frontier.all_breadcrumbs t.full_frontier) ) + ; ("n", `Int (Full_frontier.size t.full_frontier)) ] "PRE: ($state_hash, $n)" ; [%str_log' trace t.logger] @@ -475,8 +474,7 @@ let add_breadcrumb_exn t breadcrumb = [ ( "state_hash" , State_hash.to_yojson (Breadcrumb.state_hash @@ Full_frontier.best_tip t.full_frontier) ) - ; ( "n" - , `Int (List.length @@ Full_frontier.all_breadcrumbs t.full_frontier) ) + ; ("n", `Int (Full_frontier.size t.full_frontier)) ] "POST: ($state_hash, $n)" ; let user_cmds = @@ -531,12 +529,12 @@ include struct let all_breadcrumbs = proxy1 all_breadcrumbs + let all_state_hashes = proxy1 all_state_hashes + let visualize ~filename = proxy1 (visualize ~filename) let visualize_to_string = proxy1 visualize_to_string - let iter = proxy1 iter - let successors = proxy1 successors let hash_path = proxy1 hash_path @@ -572,11 +570,6 @@ module For_tests = struct Mina_ledger.Ledger_transfer.Make (Mina_ledger.Ledger) (Mina_ledger.Ledger.Db) - open Full_frontier.For_tests - - let proxy2 f { full_frontier = x; _ } { full_frontier = y; _ } = f x y - - let equal = proxy2 equal let rec deferred_rose_tree_iter (Mina_stdlib.Rose_tree.T (root, trees)) ~f = let%bind () = f root in diff --git a/src/lib/transition_frontier/transition_frontier.mli b/src/lib/transition_frontier/transition_frontier.mli index e5d3a165408c..d241242d5cb8 100644 --- a/src/lib/transition_frontier/transition_frontier.mli +++ b/src/lib/transition_frontier/transition_frontier.mli @@ -118,8 +118,6 @@ module For_tests : sig open Core_kernel open Signature_lib - val equal : t -> t -> bool - val gen_genesis_breadcrumb : ?logger:Logger.t -> verifier:Verifier.t @@ -144,7 +142,7 @@ module For_tests : sig ( config:Mina_ledger.Root.Config.t -> depth:int -> unit - -> Root_ledger.t Core_kernel.Or_error.t ) + -> Root_ledger.t Async.Deferred.Or_error.t ) * (Private_key.t option * Account.t) list -> ?gen_root_breadcrumb: ( Breadcrumb.t @@ -167,7 +165,7 @@ module For_tests : sig ( config:Mina_ledger.Root.Config.t -> depth:int -> unit - -> Root_ledger.t Core_kernel.Or_error.t ) + -> Root_ledger.t Async.Deferred.Or_error.t ) * (Private_key.t option * Account.t) list -> ?gen_root_breadcrumb: ( Breadcrumb.t diff --git a/src/lib/transition_handler/processor.ml b/src/lib/transition_handler/processor.ml index e46e3fa20cd5..655cd6842254 100644 --- a/src/lib/transition_handler/processor.ml +++ b/src/lib/transition_handler/processor.ml @@ -132,8 +132,9 @@ let process_transition ~context:(module Context : CONTEXT) ~trust_system let parent_hash = Protocol_state.previous_state_hash (Header.protocol_state header) in - let root_block = - Transition_frontier.(Breadcrumb.block_with_hash @@ root frontier) + let root_consensus_state = + Transition_frontier.( + Breadcrumb.consensus_state_with_hashes @@ root frontier) in let metadata = [ ("state_hash", State_hash.to_yojson transition_hash) ] in let state_hash = transition_hash in @@ -162,7 +163,7 @@ let process_transition ~context:(module Context : CONTEXT) ~trust_system match Mina_block.Validation.validate_frontier_dependencies ~context:(module Context) - ~root_block ~is_block_in_frontier ~to_header:ident + ~root_consensus_state ~is_block_in_frontier ~to_header:ident (Envelope.Incoming.data env) with | Ok _ | Error `Parent_missing_from_frontier -> @@ -193,8 +194,8 @@ let process_transition ~context:(module Context : CONTEXT) ~trust_system match Mina_block.Validation.validate_frontier_dependencies ~context:(module Context) - ~root_block ~is_block_in_frontier ~to_header:Mina_block.header - initially_validated_transition + ~root_consensus_state ~is_block_in_frontier + ~to_header:Mina_block.header initially_validated_transition with | Ok t -> return (Ok t) diff --git a/src/lib/transition_router/transition_router.ml b/src/lib/transition_router/transition_router.ml index cd5ef37d0599..1daee9aefd99 100644 --- a/src/lib/transition_router/transition_router.ml +++ b/src/lib/transition_router/transition_router.ml @@ -327,46 +327,39 @@ let load_frontier ~context:(module Context : CONTEXT) ~verifier None let wait_for_high_connectivity ~logger ~network ~is_seed = - let connectivity_time_upperbound = 60.0 in - let high_connectivity = - Mina_networking.on_first_high_connectivity network ~f:Fn.id - in - Deferred.any - [ ( high_connectivity - >>| fun () -> - [%log info] "Already connected to enough peers, start initialization" ) - ; ( if is_seed then ( - [%log info] - "We are seed, not waiting for peers to show up, start initialization" ; - Deferred.unit ) - else Deferred.never () ) - ; ( after (Time_ns.Span.of_sec connectivity_time_upperbound) - >>= fun () -> - Mina_networking.peers network - >>| fun peers -> - if not @@ Deferred.is_determined high_connectivity then - if List.is_empty peers then - if is_seed then - [%log info] - ~metadata: - [ ( "max seconds to wait for high connectivity" - , `Float connectivity_time_upperbound ) - ] - "Will start initialization without connecting to any peers" - else ( - [%log error] - "Failed to find any peers during initialization (crashing \ - because this is not a seed node)" ; - exit 1 ) - else - [%log info] + if is_seed then ( + [%log info] + "We are seed, not waiting for peers to show up, start initialization" ; + Deferred.unit ) + else + let connectivity_time_upperbound = 60.0 in + let high_connectivity = + Mina_networking.on_first_high_connectivity network ~f:Fn.id + in + match%bind + Timeout_lib.Core_time_ns.await + ~timeout_duration:(Time_ns.Span.of_sec connectivity_time_upperbound) + () high_connectivity + with + | `Ok () -> + [%log info] "Already connected to enough peers, start initialization" ; + Deferred.unit + | `Timeout -> + let%bind peers = Mina_networking.peers network in + if List.is_empty peers then ( + [%log error] + "Failed to find any peers during initialization (crashing because \ + this is not a seed node)" ; + exit 1 ) + else ( + [%log warn] ~metadata: [ ("num peers", `Int (List.length peers)) ; ( "max seconds to wait for high connectivity" , `Float connectivity_time_upperbound ) ] - "Will start initialization without connecting to too many peers" ) - ] + "Will start initialization without connecting to too many peers" ; + Deferred.unit ) let initialize ~transaction_pool_proxy ~context:(module Context : CONTEXT) ~sync_local_state ~network ~is_seed ~is_demo_mode ~verifier ~trust_system diff --git a/src/test/command_line_tests/command_line_tests.ml b/src/test/command_line_tests/command_line_tests.ml index 73d98342fb1d..9870b11405e6 100644 --- a/src/test/command_line_tests/command_line_tests.ml +++ b/src/test/command_line_tests/command_line_tests.ml @@ -174,7 +174,7 @@ module AutoHardforkConfigGeneration = struct let slot_tx_end = 3 - let slot_chain_end = 6 + let slot_chain_end = slot_tx_end + 6 let hard_fork_genesis_slot_delta = 1 @@ -273,7 +273,9 @@ module AutoHardforkConfigGeneration = struct let block_producer_account, other_accounts = match all_accounts with | first :: rest -> - let block_producer_balance = Currency.Balance.of_mina_int_exn 10000 in + let block_producer_balance = + Currency.Balance.of_mina_int_exn 10000000 + in ({ first with balance = block_producer_balance }, rest) | [] -> failwith "No accounts generated"