From 47287e37006b2f97073c843acd3c6cfad04e69b4 Mon Sep 17 00:00:00 2001 From: maskpp Date: Wed, 30 Oct 2024 16:04:33 +0800 Subject: [PATCH 01/24] update Makefile and add taiko genesis files --- Makefile | 110 ++++++ crates/chainspec/res/genesis/taiko/askja.json | 117 ++++++ .../chainspec/res/genesis/taiko/eldfell.json | 164 ++++++++ .../res/genesis/taiko/grimsvotn.json | 164 ++++++++ crates/chainspec/res/genesis/taiko/hekla.json | 217 ++++++++++ .../res/genesis/taiko/internal_l2a.json | 369 ++++++++++++++++++ .../res/genesis/taiko/internal_l2b.json | 369 ++++++++++++++++++ .../chainspec/res/genesis/taiko/jolnir.json | 210 ++++++++++ crates/chainspec/res/genesis/taiko/katla.json | 206 ++++++++++ .../chainspec/res/genesis/taiko/mainnet.json | 205 ++++++++++ .../res/genesis/taiko/snaefellsjokull.json | 98 +++++ 11 files changed, 2229 insertions(+) create mode 100644 crates/chainspec/res/genesis/taiko/askja.json create mode 100644 crates/chainspec/res/genesis/taiko/eldfell.json create mode 100644 crates/chainspec/res/genesis/taiko/grimsvotn.json create mode 100644 crates/chainspec/res/genesis/taiko/hekla.json create mode 100644 crates/chainspec/res/genesis/taiko/internal_l2a.json create mode 100644 crates/chainspec/res/genesis/taiko/internal_l2b.json create mode 100644 crates/chainspec/res/genesis/taiko/jolnir.json create mode 100644 crates/chainspec/res/genesis/taiko/katla.json create mode 100644 crates/chainspec/res/genesis/taiko/mainnet.json create mode 100644 crates/chainspec/res/genesis/taiko/snaefellsjokull.json diff --git a/Makefile b/Makefile index 4d897c7ee482..63845342eb5a 100644 --- a/Makefile +++ b/Makefile @@ -31,6 +31,7 @@ EF_TESTS_DIR := ./testing/ef-tests/ethereum-tests # The docker image name DOCKER_IMAGE_NAME ?= ghcr.io/paradigmxyz/reth +TAIKO_DOCKER_IMAGE_NAME ?= us-docker.pkg.dev/evmchain/images/taiko-reth # Features in reth/op-reth binary crate other than "ethereum" and "optimism" BIN_OTHER_FEATURES := asm-keccak jemalloc jemalloc-prof min-error-logs min-warn-logs min-info-logs min-debug-logs min-trace-logs @@ -57,6 +58,13 @@ install-op: ## Build and install the op-reth binary under `~/.cargo/bin`. --profile "$(PROFILE)" \ $(CARGO_INSTALL_EXTRA_FLAGS) +.PHONY: install-taiko +install-taiko: ## Build and install the op-reth binary under `~/.cargo/bin`. + cargo install --path bin/reth --bin taiko-reth --force --locked \ + --features "taiko,$(FEATURES)" \ + --profile "$(PROFILE)" \ + $(CARGO_INSTALL_EXTRA_FLAGS) + .PHONY: build build: ## Build the reth binary into `target` directory. cargo build --bin reth --features "$(FEATURES)" --profile "$(PROFILE)" @@ -69,6 +77,10 @@ build-debug: ## Build the reth binary into `target/debug` directory. build-op: ## Build the op-reth binary into `target` directory. cargo build --bin op-reth --features "optimism $(FEATURES)" --profile "$(PROFILE)" --manifest-path crates/optimism/bin/Cargo.toml +.PHONY: build-taiko +build-taiko: ## Build the op-reth binary into `target` directory. + cargo build --bin taiko-reth --features "taiko,$(FEATURES)" --profile "$(PROFILE)" + # Builds the reth binary natively. build-native-%: cargo build --bin reth --target $* --features "$(FEATURES)" --profile "$(PROFILE)" @@ -76,6 +88,9 @@ build-native-%: op-build-native-%: cargo build --bin op-reth --target $* --features "optimism $(FEATURES)" --profile "$(PROFILE)" --manifest-path crates/optimism/bin/Cargo.toml +taiko-build-native-%: + cargo build --bin op-reth --target $* --features "taiko,$(FEATURES)" --profile "$(PROFILE)" + # The following commands use `cross` to build a cross-compile. # # These commands require that: @@ -108,6 +123,10 @@ op-build-%: RUSTFLAGS="-C link-arg=-lgcc -Clink-arg=-static-libgcc" \ cross build --bin op-reth --target $* --features "optimism $(FEATURES)" --profile "$(PROFILE)" --manifest-path crates/optimism/bin/Cargo.toml +taiko-build-%: + RUSTFLAGS="-C link-arg=-lgcc -Clink-arg=-static-libgcc" \ + cross build --bin taiko-reth --target $* --features "taiko,$(FEATURES)" --profile "$(PROFILE)" + # Unfortunately we can't easily use cross to build for Darwin because of licensing issues. # If we wanted to, we would need to build a custom Docker image with the SDK available. # @@ -123,6 +142,11 @@ op-build-x86_64-apple-darwin: op-build-aarch64-apple-darwin: $(MAKE) op-build-native-aarch64-apple-darwin +taiko-build-x86_64-apple-darwin: + $(MAKE) taiko-build-native-x86_64-apple-darwin +taiko-build-aarch64-apple-darwin: + $(MAKE) taiko-build-native-aarch64-apple-darwin + # Create a `.tar.gz` containing a binary for a specific target. define tarball_release_binary cp $(CARGO_TARGET_DIR)/$(1)/$(PROFILE)/$(2) $(BIN_DIR)/$(2) @@ -279,6 +303,53 @@ endef ##@ Other + +##@ Taiko docker + +# Note: This requires a buildx builder with emulation support. For example: +# +# `docker run --privileged --rm tonistiigi/binfmt --install amd64,arm64` +# `docker buildx create --use --driver docker-container --name cross-builder` +.PHONY: taiko-docker-build-push +taiko-docker-build-push: ## Build and push a cross-arch Docker image tagged with the latest git tag. + $(call taiko_docker_build_push,$(GIT_TAG),$(GIT_TAG)) + +# Note: This requires a buildx builder with emulation support. For example: +# +# `docker run --privileged --rm tonistiigi/binfmt --install amd64,arm64` +# `docker buildx create --use --driver docker-container --name cross-builder` +.PHONY: taiko-docker-build-push-latest +taiko-docker-build-push-latest: ## Build and push a cross-arch Docker image tagged with the latest git tag and `latest`. + $(call taiko_docker_build_push,$(GIT_TAG),latest) + +# Note: This requires a buildx builder with emulation support. For example: +# +# `docker run --privileged --rm tonistiigi/binfmt --install amd64,arm64` +# `docker buildx create --use --name cross-builder` +.PHONY: taiko-docker-build-push-nightly +taiko-docker-build-push-nightly: ## Build and push cross-arch Docker image tagged with the latest git tag with a `-nightly` suffix, and `latest-nightly`. + $(call taiko_docker_build_push,$(GIT_TAG)-nightly,latest-nightly) + +# Create a cross-arch Docker image with the given tags and push it +define taiko_docker_build_push + $(MAKE) taiko-build-x86_64-unknown-linux-gnu + mkdir -p $(BIN_DIR)/amd64 + cp $(BUILD_PATH)/x86_64-unknown-linux-gnu/$(PROFILE)/taiko-reth $(BIN_DIR)/amd64/taiko-reth + + $(MAKE) taiko-build-aarch64-unknown-linux-gnu + mkdir -p $(BIN_DIR)/arm64 + cp $(BUILD_PATH)/aarch64-unknown-linux-gnu/$(PROFILE)/taiko-reth $(BIN_DIR)/arm64/taiko-reth + + docker buildx build --file ./DockerfileTaiko.cross . \ + --platform linux/amd64,linux/arm64 \ + --tag $(TAIKO_DOCKER_IMAGE_NAME):$(1) \ + --tag $(TAIKO_DOCKER_IMAGE_NAME):$(2) \ + --provenance=false \ + --push +endef + +##@ Other + .PHONY: clean clean: ## Perform a `cargo` clean and remove the binary and test vectors directories. cargo clean @@ -346,6 +417,18 @@ lint-op-reth: --features "optimism $(BIN_OTHER_FEATURES)" \ -- -D warnings + +lint-taiko-reth: + cargo +nightly clippy \ + --workspace \ + --bin "taiko-reth" \ + --lib \ + --examples \ + --tests \ + --benches \ + --features "taiko $(BIN_OTHER_FEATURES)" \ + -- -D warnings + lint-other-targets: cargo +nightly clippy \ --workspace \ @@ -369,6 +452,7 @@ lint: make fmt && \ make lint-reth && \ make lint-op-reth && \ + make lint-taiko-reth && \ make lint-other-targets && \ make lint-codespell @@ -400,6 +484,21 @@ fix-lint-op-reth: --allow-dirty \ -- -D warnings + +fix-lint-taiko-reth: + cargo +nightly clippy \ + --workspace \ + --bin "taiko-reth" \ + --lib \ + --examples \ + --tests \ + --benches \ + --features "taiko $(BIN_OTHER_FEATURES)" \ + --fix \ + --allow-staged \ + --allow-dirty \ + -- -D warnings + fix-lint-other-targets: cargo +nightly clippy \ --workspace \ @@ -416,6 +515,7 @@ fix-lint-other-targets: fix-lint: make fix-lint-reth && \ make fix-lint-op-reth && \ + make fix-lint-taiko-reth && \ make fix-lint-other-targets && \ make fmt @@ -448,6 +548,15 @@ test-op-reth: --benches \ --features "optimism $(BIN_OTHER_FEATURES)" +test-taiko-reth: + cargo test \ + --workspace \ + --bin "taiko-reth" \ + --lib --examples \ + --tests \ + --benches \ + --features "taiko $(BIN_OTHER_FEATURES)" + test-other-targets: cargo test \ --workspace \ @@ -464,6 +573,7 @@ test-doc: test: make test-reth && \ make test-op-reth && \ + make test-taiko-reth && \ make test-doc && \ make test-other-targets diff --git a/crates/chainspec/res/genesis/taiko/askja.json b/crates/chainspec/res/genesis/taiko/askja.json new file mode 100644 index 000000000000..24a016d8300d --- /dev/null +++ b/crates/chainspec/res/genesis/taiko/askja.json @@ -0,0 +1,117 @@ +{ + "0x6C671d2C641CE1b99F17755fd45441fa4326C3B1": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x09d4121CD4123F039390c7f5e99b15BED5e07222": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x9E5da4B6D25Ee5A68aa8c29B6B87C82f7F463893": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0xB51f0f2bdCbf6cfabB35239921A5c672519F74ba": { + "contractName": "LibTrieProof", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063960304391461003a575b600080fd5b61004d610048366004611938565b610061565b604051901515815260200160405180910390f35b6000808061007184860186611acc565b6040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608c901b166020820152919350915060009081906100c790603401604051602081830303815290604052858d610197565b915091508161011d5760405162461bcd60e51b815260206004820152601960248201527f4c54503a696e76616c6964206163636f756e742070726f6f660000000000000060448201526064015b60405180910390fd5b6000610128826101c0565b9050600061014f8260028151811061014257610142611b30565b60200260200101516101f9565b90506101868b60405160200161016791815260200190565b60405160208183030381529060405261017f8c6102fc565b878461030f565b9d9c50505050505050505050505050565b6000606060006101a686610329565b90506101b381868661035b565b9250925050935093915050565b6040805180820182526000808252602091820152815180830190925282518252808301908201526060906101f390610436565b92915050565b60006021826000015111156102505760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610114565b600080600061025e85610635565b91945092509050600081600181111561027957610279611b5f565b146102c65760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610114565b60008386602001516102d89190611bbd565b805190915060208410156102f25760208490036101000a90045b9695505050505050565b60606101f361030a83610986565b610aea565b60008061031b86610329565b90506102f281868686610b59565b6060818051906020012060405160200161034591815260200190565b6040516020818303038152906040529050919050565b60006060600061036a85610b96565b9050600080600061037c848a89610c8f565b815192955090935091501580806103905750815b6103dc5760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e0000000000006044820152606401610114565b6000816103f85760405180602001604052806000815250610424565b61042486610407600188611bd0565b8151811061041757610417611b30565b6020026020010151611144565b919b919a509098505050505050505050565b606060008061044484610635565b9193509091506001905081600181111561046057610460611b5f565b146104ad5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e0000000000000000006044820152606401610114565b6040805160208082526104208201909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816104c65790505090506000835b865181101561062a57602082106105725760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201527f7374206c656e6774682e000000000000000000000000000000000000000000006064820152608401610114565b6000806105af6040518060400160405280858c600001516105939190611bd0565b8152602001858c602001516105a89190611bbd565b9052610635565b5091509150604051806040016040528083836105cb9190611bbd565b8152602001848b602001516105e09190611bbd565b8152508585815181106105f5576105f5611b30565b602090810291909101015261060b600185611bbd565b93506106178183611bbd565b6106219084611bbd565b925050506104f3565b508152949350505050565b60008060008084600001511161068d5760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e00000000000000006044820152606401610114565b6020840151805160001a607f81116106b257600060016000945094509450505061097f565b60b7811161072e5760006106c7608083611bd0565b90508087600001511161071c5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e000000000000006044820152606401610114565b6001955093506000925061097f915050565b60bf811161081d57600061074360b783611bd0565b9050808760000151116107985760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e006044820152606401610114565b600183015160208290036101000a90046107b28183611bbd565b8851116108015760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e00000000000000006044820152606401610114565b61080c826001611bbd565b965094506000935061097f92505050565b60f7811161089857600061083260c083611bd0565b9050808760000151116108875760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e0000000000000000006044820152606401610114565b60019550935084925061097f915050565b60006108a560f783611bd0565b9050808760000151116108fa5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e0000006044820152606401610114565b600183015160208290036101000a90046109148183611bbd565b8851116109635760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420524c50206c6f6e67206c6973742e000000000000000000006044820152606401610114565b61096e826001611bbd565b965094506001935061097f92505050565b9193909250565b606060008260405160200161099d91815260200190565b604051602081830303815290604052905060005b6020811015610a0a578181815181106109cc576109cc611b30565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016600003610a0a57610a0381611be3565b90506109b1565b6000610a17826020611bd0565b67ffffffffffffffff811115610a2f57610a2f6119f2565b6040519080825280601f01601f191660200182016040528015610a59576020820181803683370190505b50905060005b8151811015610ae1578383610a7381611be3565b945081518110610a8557610a85611b30565b602001015160f81c60f81b828281518110610aa257610aa2611b30565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610ada81611be3565b9050610a5f565b50949350505050565b60608082516001148015610b185750608083600081518110610b0e57610b0e611b30565b016020015160f81c105b15610b245750816101f3565b610b308351608061116b565b83604051602001610b42929190611c4b565b604051602081830303815290604052905092915050565b6000806000610b6987868661035b565b91509150818015610b8b57508051602080830191909120875191880191909120145b979650505050505050565b60606000610ba3836101c0565b90506000815167ffffffffffffffff811115610bc157610bc16119f2565b604051908082528060200260200182016040528015610c0657816020015b6040805180820190915260608082526020820152815260200190600190039081610bdf5790505b50905060005b8251811015610c87576000610c39848381518110610c2c57610c2c611b30565b602002602001015161135d565b90506040518060400160405280610c4f836101c0565b815260200182815250838381518110610c6a57610c6a611b30565b60200260200101819052505080610c8090611be3565b9050610c0c565b509392505050565b600060606000806000610ca1876113ed565b90506000869050600080610cc8604051806040016040528060608152602001606081525090565b60005b8c51811015611100578c8181518110610ce657610ce6611b30565b602002602001015191508284610cfc9190611bbd565b9350610d09600188611bbd565b965083600003610d72578482602001518051906020012014610d6d5760405162461bcd60e51b815260206004820152601160248201527f496e76616c696420726f6f7420686173680000000000000000000000000000006044820152606401610114565b610e34565b602082602001515110610dd9578482602001518051906020012014610d6d5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c206861736800000000006044820152606401610114565b84610de7836020015161156e565b14610e345760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f646520686173680000000000006044820152606401610114565b610e4060106001611c68565b60ff1682600001515103610eae5785518414611100576000868581518110610e6a57610e6a611b30565b01602001518351805160f89290921c925060009183908110610e8e57610e8e611b30565b60200260200101519050610ea181611596565b96506001945050506110f0565b8151517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016110a8576000610ee2836115cc565b9050600081600081518110610ef957610ef9611b30565b016020015160f81c90506000610f10600283611cb0565b610f1b906002611cd2565b90506000610f2c848360ff166115f0565b90506000610f3a8b8a6115f0565b90506000610f488383611626565b905060ff851660021480610f5f575060ff85166003145b15610fb557808351148015610f745750808251145b15610f8657610f83818b611bbd565b99505b507f80000000000000000000000000000000000000000000000000000000000000009950611100945050505050565b60ff85161580610fc8575060ff85166001145b1561103a578251811461100457507f80000000000000000000000000000000000000000000000000000000000000009950611100945050505050565b61102b886000015160018151811061101e5761101e611b30565b6020026020010151611596565b9a5097506110f0945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e2060448201527f70726566697800000000000000000000000000000000000000000000000000006064820152608401610114565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e0000006044820152606401610114565b6110f981611be3565b9050610ccb565b507f800000000000000000000000000000000000000000000000000000000000000084148661112f87866115f0565b909e909d50909b509950505050505050505050565b805180516060916101f39161115b90600190611bd0565b81518110610c2c57610c2c611b30565b60608060388410156111ea57604080516001808252818301909252906020820181803683370190505090506111a08385611c68565b60f81b816000815181106111b6576111b6611b30565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611356565b600060015b6111f98187611ceb565b1561121c5761120782611be3565b915061121561010082611cff565b90506111ef565b611227826001611bbd565b67ffffffffffffffff81111561123f5761123f6119f2565b6040519080825280601f01601f191660200182016040528015611269576020820181803683370190505b5092506112768583611c68565b611281906037611c68565b60f81b8360008151811061129757611297611b30565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190505b818111611353576101006112df8284611bd0565b6112eb90610100611e36565b6112f59088611ceb565b6112ff9190611e42565b60f81b83828151811061131457611314611b30565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061134c81611be3565b90506112cb565b50505b9392505050565b6060600080600061136d85610635565b91945092509050600081600181111561138857611388611b5f565b146113d55760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e00000000000000006044820152606401610114565b6113e4856020015184846116d0565b95945050505050565b60606000825160026113ff9190611cff565b67ffffffffffffffff811115611417576114176119f2565b6040519080825280601f01601f191660200182016040528015611441576020820181803683370190505b50905060005b835181101561156757600484828151811061146457611464611b30565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c82611499836002611cff565b815181106114a9576114a9611b30565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060108482815181106114ec576114ec611b30565b01602001516114fe919060f81c611cb0565b60f81b8261150d836002611cff565b611518906001611bbd565b8151811061152857611528611b30565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061156081611be3565b9050611447565b5092915050565b600060208251101561158257506020015190565b818060200190518101906101f39190611e56565b600060606020836000015110156115b7576115b083611779565b90506115c3565b6115c08361135d565b90505b6113568161156e565b60606101f36115eb8360000151600081518110610c2c57610c2c611b30565b6113ed565b60608251821061160f57506040805160208101909152600081526101f3565b61135683838486516116219190611bd0565b611784565b6000805b80845111801561163a5750808351115b80156116bb575082818151811061165357611653611b30565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191684828151811061169257611692611b30565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b15611356576116c981611be3565b905061162a565b606060008267ffffffffffffffff8111156116ed576116ed6119f2565b6040519080825280601f01601f191660200182016040528015611717576020820181803683370190505b509050805160000361172a579050611356565b8484016020820160005b8581101561174c578281015182820152602001611734565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60606101f382611922565b60608161179281601f611bbd565b10156117e05760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610114565b826117eb8382611bbd565b10156118395760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610114565b6118438284611bbd565b845110156118935760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610114565b6060821580156118b25760405191506000825260208201604052610ae1565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156118eb5780518352602092830192016118d3565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166040525050949350505050565b60606101f38260200151600084600001516116d0565b60008060008060008060a0878903121561195157600080fd5b86359550602087013573ffffffffffffffffffffffffffffffffffffffff8116811461197c57600080fd5b94506040870135935060608701359250608087013567ffffffffffffffff808211156119a757600080fd5b818901915089601f8301126119bb57600080fd5b8135818111156119ca57600080fd5b8a60208285010111156119dc57600080fd5b6020830194508093505050509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112611a3257600080fd5b813567ffffffffffffffff80821115611a4d57611a4d6119f2565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611a9357611a936119f2565b81604052838152866020858801011115611aac57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215611adf57600080fd5b823567ffffffffffffffff80821115611af757600080fd5b611b0386838701611a21565b93506020850135915080821115611b1957600080fd5b50611b2685828601611a21565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156101f3576101f3611b8e565b818103818111156101f3576101f3611b8e565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c1457611c14611b8e565b5060010190565b6000815160005b81811015611c3c5760208185018101518683015201611c22565b50600093019283525090919050565b6000611c60611c5a8386611c1b565b84611c1b565b949350505050565b60ff81811683821601908111156101f3576101f3611b8e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060ff831680611cc357611cc3611c81565b8060ff84160691505092915050565b60ff82811682821603908111156101f3576101f3611b8e565b600082611cfa57611cfa611c81565b500490565b80820281158282048414176101f3576101f3611b8e565b600181815b80851115611d6f57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611d5557611d55611b8e565b80851615611d6257918102915b93841c9390800290611d1b565b509250929050565b600082611d86575060016101f3565b81611d93575060006101f3565b8160018114611da95760028114611db357611dcf565b60019150506101f3565b60ff841115611dc457611dc4611b8e565b50506001821b6101f3565b5060208310610133831016604e8410600b8410161715611df2575081810a6101f3565b611dfc8383611d16565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611e2e57611e2e611b8e565b029392505050565b60006113568383611d77565b600082611e5157611e51611c81565b500690565b600060208284031215611e6857600080fd5b505191905056fea264697066735822122022f5cdb126db09c3c43e2fa6a17aab0115cbc5363507839bf8f77203759fb3af64736f6c63430008120033", + "balance": "0x0" + }, + "0x7C96157d384E99B04fE912f7E8Fa6d032073a0DD": { + "contractName": "LibBridgeRetry", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220032710b16720cdb7bfee28fecace22d2e4fd9f5731db2aaefd90be3a941623a364736f6c63430008120033", + "balance": "0x0" + }, + "0x13E419A8F4A246Fe22F3Acc054354258B068A7A3": { + "contractName": "LibBridgeProcess", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d4832ed4ef0b67bed2c2d982e30c1a789312b6584967438335056c5c4005497e64736f6c63430008120033", + "balance": "0x0" + }, + "0x658d9Ff6257D5254FC536d29641E43144Fbe8d8C": { + "contractName": "LibTxDecoder", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c80634eb7f19914610045578063a946c1de1461006e575b600080fd5b61005861005336600461175f565b61008e565b60405161006591906118cf565b60405180910390f35b61008161007c366004611988565b610214565b6040516100659190611a61565b604080516020810190915260608152811561020d5760006100e484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104d992505050565b90506000815167ffffffffffffffff81111561010257610102611959565b60405190808252806020026020018201604052801561019757816020015b610184604051806101000160405280600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008152602001600060ff1681526020016000815260200160008152602001606081525090565b8152602001906001900390816101205790505b50905060005b82518110156101fa576101cc8761007c8584815181106101bf576101bf611a74565b6020026020010151610512565b8282815181106101de576101de611a74565b6020026020010181905250806101f390611ad2565b905061019d565b5060408051602081019091529081529150505b9392505050565b610278604051806101000160405280600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008152602001600060ff1681526020016000815260200160008152602001606081525090565b602082015160e0820183905260001a60c0811080159061029c575060fe8160ff1611155b156103235760008083526102af846104d9565b905060006102bd86836105a2565b60408082015160608088019190915282015173ffffffffffffffffffffffffffffffffffffffff16602087015260c08083015160ff16608088015260e083015160a080890191909152610100840151918801919091529091015190850152506104d29050565b607f8160ff161161048a5760ff8116825260006103496103448560016107ba565b6104d9565b90508160ff166001036103c0576000610361826107f0565b6060808201519086015260808082015173ffffffffffffffffffffffffffffffffffffffff16602087015261010082015160ff169086015261012081015160a086015261014081015160c0808701919091520151604085015250610484565b825160ff166002036104375760006103d782610a31565b608080820151606087015260a08083015173ffffffffffffffffffffffffffffffffffffffff16602088015261012083015160ff16918701919091526101408201519086015261016081015160c086015260e00151604085015250610484565b60405162461bcd60e51b815260206004820152600e60248201527f696e76616c69642074785479706500000000000000000000000000000000000060448201526064015b60405180910390fd5b506104d2565b60405162461bcd60e51b815260206004820152600e60248201527f696e76616c696420707265666978000000000000000000000000000000000000604482015260640161047b565b5092915050565b60408051808201825260008082526020918201528151808301909252825182528083019082015260609061050c90610c86565b92915050565b6060600080600061052285610e85565b91945092509050600081600181111561053d5761053d611b0a565b1461058a5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e0000000000000000604482015260640161047b565b610599856020015184846111d6565b95945050505050565b61060a604051806101200160405280600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160608152602001600060ff16815260200160008152602001600081525090565b815160091461065b5760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206974656d73206c656e677468000000000000000000000000604482015260640161047b565b61067e8260008151811061067157610671611a74565b602002602001015161127f565b81528151610699908390600190811061067157610671611a74565b602082015281516106b7908390600290811061067157610671611a74565b604082015281516106e290839060039081106106d5576106d5611a74565b602002602001015161128a565b73ffffffffffffffffffffffffffffffffffffffff1660608201528151610716908390600490811061067157610671611a74565b6080820152815161073490839060059081106101bf576101bf611a74565b60a0820152610744836002611b39565b61075a8360068151811061067157610671611a74565b6107649190611b50565b61076f906023611b63565b60ff1660c08201528151610790908390600790811061067157610671611a74565b60e082015281516107ae908390600890811061067157610671611a74565b61010082015292915050565b6060825182106107d9575060408051602081019091526000815261050c565b61020d83838486516107eb9190611b50565b6112f8565b61086660405180610160016040528060008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016060815260200160608152602001600060ff16815260200160008152602001600081525090565b8151600b146108b75760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206974656d73206c656e677468000000000000000000000000604482015260640161047b565b6108cd8260008151811061067157610671611a74565b815281516108e8908390600190811061067157610671611a74565b60208201528151610906908390600290811061067157610671611a74565b60408201528151610924908390600390811061067157610671611a74565b6060820152815161094290839060049081106106d5576106d5611a74565b73ffffffffffffffffffffffffffffffffffffffff1660808201528151610976908390600590811061067157610671611a74565b60a0820152815161099490839060069081106101bf576101bf611a74565b8160c001819052506109c76109c2836007815181106109b5576109b5611a74565b6020026020010151610c86565b611497565b8160e001819052506109e58260088151811061067157610671611a74565b60ff166101008201528151610a07908390600990811061067157610671611a74565b6101208201528151610a26908390600a90811061067157610671611a74565b610140820152919050565b610aae6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016060815260200160608152602001600060ff16815260200160008152602001600081525090565b8151600c14610aff5760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206974656d73206c656e677468000000000000000000000000604482015260640161047b565b610b158260008151811061067157610671611a74565b81528151610b30908390600190811061067157610671611a74565b60208201528151610b4e908390600290811061067157610671611a74565b60408201528151610b6c908390600390811061067157610671611a74565b60608201528151610b8a908390600490811061067157610671611a74565b60808201528151610ba890839060059081106106d5576106d5611a74565b73ffffffffffffffffffffffffffffffffffffffff1660a08201528151610bdc908390600690811061067157610671611a74565b60c08201528151610bfa90839060079081106101bf576101bf611a74565b8160e00181905250610c1b6109c2836008815181106109b5576109b5611a74565b816101000181905250610c3a8260098151811061067157610671611a74565b60ff166101208201528151610c5c908390600a90811061067157610671611a74565b6101408201528151610c7b908390600b90811061067157610671611a74565b610160820152919050565b6060600080610c9484610e85565b91935090915060019050816001811115610cb057610cb0611b0a565b14610cfd5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e000000000000000000604482015260640161047b565b6040805160208082526104208201909252600091816020015b6040805180820190915260008082526020820152815260200190600190039081610d165790505090506000835b8651811015610e7a5760208210610dc25760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201527f7374206c656e6774682e00000000000000000000000000000000000000000000606482015260840161047b565b600080610dff6040518060400160405280858c60000151610de39190611b50565b8152602001858c60200151610df89190611b63565b9052610e85565b509150915060405180604001604052808383610e1b9190611b63565b8152602001848b60200151610e309190611b63565b815250858581518110610e4557610e45611a74565b6020908102919091010152610e5b600185611b63565b9350610e678183611b63565b610e719084611b63565b92505050610d43565b508152949350505050565b600080600080846000015111610edd5760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e0000000000000000604482015260640161047b565b6020840151805160001a607f8111610f025760006001600094509450945050506111cf565b60b78111610f7e576000610f17608083611b50565b905080876000015111610f6c5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e00000000000000604482015260640161047b565b600195509350600092506111cf915050565b60bf811161106d576000610f9360b783611b50565b905080876000015111610fe85760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e00604482015260640161047b565b600183015160208290036101000a90046110028183611b63565b8851116110515760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e0000000000000000604482015260640161047b565b61105c826001611b63565b96509450600093506111cf92505050565b60f781116110e857600061108260c083611b50565b9050808760000151116110d75760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e000000000000000000604482015260640161047b565b6001955093508492506111cf915050565b60006110f560f783611b50565b90508087600001511161114a5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e000000604482015260640161047b565b600183015160208290036101000a90046111648183611b63565b8851116111b35760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420524c50206c6f6e67206c6973742e00000000000000000000604482015260640161047b565b6111be826001611b63565b96509450600193506111cf92505050565b9193909250565b606060008267ffffffffffffffff8111156111f3576111f3611959565b6040519080825280601f01601f19166020018201604052801561121d576020820181803683370190505b509050805160000361123057905061020d565b8484016020820160005b8581101561125257828101518282015260200161123a565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b600061050c8261165c565b805160009060010361129e57506000919050565b81516015146112ef5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020616464726573732076616c75652e000000000000604482015260640161047b565b61050c8261127f565b60608161130681601f611b63565b10156113545760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161047b565b8261135f8382611b63565b10156113ad5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161047b565b6113b78284611b63565b845110156114075760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015260640161047b565b606082158015611426576040519150600082526020820160405261148e565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561145f578051835260209283019201611447565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6060815167ffffffffffffffff8111156114b3576114b3611959565b6040519080825280602002602001820160405280156114f957816020015b6040805180820190915260008152606060208201528152602001906001900390816114d15790505b50905060005b825181101561165657600061151f8483815181106109b5576109b5611a74565b90506000611539826000815181106106d5576106d5611a74565b90506000611553836001815181106109b5576109b5611a74565b90506000815167ffffffffffffffff81111561157157611571611959565b60405190808252806020026020018201604052801561159a578160200160208202803683370190505b50905060005b82518110156115f8576115cb8382815181106115be576115be611a74565b602002602001015161165c565b8282815181106115dd576115dd611a74565b60209081029190910101526115f181611ad2565b90506115a0565b5060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018281525086868151811061163657611636611a74565b6020026020010181905250505050508061164f90611ad2565b90506114ff565b50919050565b60006021826000015111156116b35760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e000000000000604482015260640161047b565b60008060006116c185610e85565b9194509250905060008160018111156116dc576116dc611b0a565b146117295760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e000000000000604482015260640161047b565b600083866020015161173b9190611b63565b805190915060208410156117555760208490036101000a90045b9695505050505050565b60008060006040848603121561177457600080fd5b83359250602084013567ffffffffffffffff8082111561179357600080fd5b818601915086601f8301126117a757600080fd5b8135818111156117b657600080fd5b8760208285010111156117c857600080fd5b6020830194508093505050509250925092565b6000815180845260005b81811015611801576020818501810151868301820152016117e5565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b600061010060ff835116845273ffffffffffffffffffffffffffffffffffffffff60208401511660208501526040830151816040860152611882828601826117db565b9150506060830151606085015260808301516118a3608086018260ff169052565b5060a083015160a085015260c083015160c085015260e083015184820360e086015261059982826117db565b60006020808352604083018451828386015281815180845260608701915060608160051b8801019350848301925060005b8181101561194c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088860301835261193a85855161183f565b94509285019291850191600101611900565b5092979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806040838503121561199b57600080fd5b82359150602083013567ffffffffffffffff808211156119ba57600080fd5b818501915085601f8301126119ce57600080fd5b8135818111156119e0576119e0611959565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611a2657611a26611959565b81604052828152886020848701011115611a3f57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60208152600061020d602083018461183f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b0357611b03611aa3565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b808202811582820484141761050c5761050c611aa3565b8181038181111561050c5761050c611aa3565b8082018082111561050c5761050c611aa356fea2646970667358221220977255eb91ee0bc83da7d64c4ccd4610769dfef0575766e3b1d355d99af47f7d64736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000006": { + "contractName": "AddressManager", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0xfb2e436f19bdbec4da734cf0919b4423eb4c7a14d4f249db9211e6070a6a653d": "0x0000000000000000000000000000777700000000000000000000000000000001", + "0x0aa3204ceb554139e74fc959b75d2c0961a8274eee43ddfb4c452fa0d56e55c3": "0x0000000000000000000000000000777700000000000000000000000000000004", + "0xc19602c1e190099bda9f0217b29220086721ab0cc7df1664d5392c1062c6d6a0": "0x0000000000000000000000000000777700000000000000000000000000000002", + "0x2230df1245aba8de92051ca9155400ea7ed51d37f62ecf6ceb23a360b8066ac7": "0x0000000000000000000000000000777700000000000000000000000000000003", + "0x61566bd8aa85fc0cba510177307735c5887d55659d67a1f0f76bfcaa381cbca5": "0x0000000000000000000000000000777700000000000000000000000000000007" + }, + "code": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063bf40fac111610050578063bf40fac1146100d7578063e1c7392a14610115578063f2fde38b1461011d57600080fd5b8063715018a6146100775780638da5cb5b146100815780639b2ea4bd146100c4575b600080fd5b61007f610130565b005b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6100d2366004610796565b610144565b61009b6100e53660046107e4565b805160209182012060009081526065909152604090205473ffffffffffffffffffffffffffffffffffffffff1690565b61007f610216565b61007f61012b366004610821565b6103ad565b610138610461565b61014260006104e2565b565b61014c610461565b815160208084019190912060008181526065909252604091829020805473ffffffffffffffffffffffffffffffffffffffff8581167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559251919216906101b9908590610843565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b600054610100900460ff16158080156102365750600054600160ff909116105b806102505750303b158015610250575060005460ff166001145b6102e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561033f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610347610559565b80156103aa57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6103b5610461565b73ffffffffffffffffffffffffffffffffffffffff8116610458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102d8565b6103aa816104e2565b60335473ffffffffffffffffffffffffffffffffffffffff163314610142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d8565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166105f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102d8565b610142600054610100900460ff1661068a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102d8565b610142336104e2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126106d357600080fd5b813567ffffffffffffffff808211156106ee576106ee610693565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561073457610734610693565b8160405283815286602085880101111561074d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461079157600080fd5b919050565b600080604083850312156107a957600080fd5b823567ffffffffffffffff8111156107c057600080fd5b6107cc858286016106c2565b9250506107db6020840161076d565b90509250929050565b6000602082840312156107f657600080fd5b813567ffffffffffffffff81111561080d57600080fd5b610819848285016106c2565b949350505050565b60006020828403121561083357600080fd5b61083c8261076d565b9392505050565b6000825160005b81811015610864576020818601810151858301520161084a565b50600092019182525091905056fea2646970667358221220d05082af8e0e2cbc9ddc35de7e94b4f45055b3cbd8e60239532b1697a91218c864736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000001": { + "contractName": "TaikoL2", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000032": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000777700000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000035": "0x68ce81c266ebf073d5146e3a6a2145d4d2c1ed50490002a530826beee087fd9e" + }, + "code": "0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063975e09a011610076578063c3f909d41161005b578063c3f909d41461019e578063c7b96908146102dd578063ee82ac5e146102e657600080fd5b8063975e09a014610176578063a0ca2d081461018b57600080fd5b806325bf86f2116100a757806325bf86f2146101135780633ab76e9f146101415780635155ce9f1461015f57600080fd5b80630ca4dffd146100c35780631be2bfa714610100575b600080fd5b6100d66100d1366004612415565b6102f9565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d661010e366004612463565b61030f565b6101336101213660046124ba565b60009081526034602052604090205490565b6040519081526020016100f7565b60005473ffffffffffffffffffffffffffffffffffffffff166100d6565b603654600090815260346020526040902054610133565b6101896101843660046124d3565b610326565b005b610189610199366004612560565b61040f565b6101a6610485565b6040516100f79190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c080830151908201526101e080830151908201526102008083015167ffffffffffffffff90811691830191909152610220808401518216908301526102408084015182169083015261026080840151821690830152610280808401518216908301526102a080840151909116908201526102c0808301511515908201526102e080830151151590820152610300918201511515918101919091526103200190565b61013360365481565b6101336102f43660046124ba565b610596565b6000610306468484610677565b90505b92915050565b600061031c848484610677565b90505b9392505050565b3371777735367b36bc9b61c50022d9d0700db4ec14610371576040517f6494e9f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3a156103a9576040517f497d3b1500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006103b3610485565b90506103c281868686866107ad565b806102e00151156103d5576103d5610a53565b6103df8585610b5e565b6040517f64b299ff9f8ba674288abb53380419048a4271dda03b837ecba6b40e6ddea4a290600090a25050505050565b6000610419610485565b9050806102e001511561042e5761042e610a53565b6036839055600083815260346020526040908190208390555183907f58313b60ec6c5bfc381e52f0de3ede0faac3cdffea26f7d6bcc3d09b61018691906104789085815260200190565b60405180910390a2505050565b61058660405180610320016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581526020016000151581526020016000151581525090565b61058e610b80565b468152919050565b60004382106105a757506000919050565b43821080156105c157506105bd610100436125b1565b8210155b156105cb57504090565b5060009081526033602052604090205490565b919050565b73ffffffffffffffffffffffffffffffffffffffff8116610630576040517f9a109b0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061068385610d60565b846040516020016106959291906125e8565b60408051601f19818403018152908290526000547fbf40fac100000000000000000000000000000000000000000000000000000000835290925073ffffffffffffffffffffffffffffffffffffffff169063bf40fac1906106fa908490600401612640565b602060405180830381865afa158015610717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073b9190612697565b9150826107a55760405173ffffffffffffffffffffffffffffffffffffffff831615159061076d9083906020016126b2565b604051602081830303815290604052906107a35760405162461bcd60e51b815260040161079a9190612640565b60405180910390fd5b505b509392505050565b60e08501518311156107c8576107c38282610e1e565b610a4c565b84516040517f4eb7f19900000000000000000000000000000000000000000000000000000000815273658d9Ff6257D5254FC536d29641E43144Fbe8d8C91634eb7f1999161081d9190889088906004016126f7565b600060405180830381865af492505050801561085b57506040513d6000823e601f3d908101601f19168201604052610858919081019061278b565b60015b61089f573d808015610889576040519150601f19603f3d011682016040523d82523d6000602084013e61088e565b606091505b506108998383610e1e565b50610a4c565b60c086015181515111156108b7576108998383610e1e565b8560a001516108c582610e79565b11156108d5576108998383610e1e565b8051518210610910576040517fb431f3fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816000015183815181106109285761092861292b565b60200260200101519050600160028111156109455761094561295a565b8460028111156109575761095761295a565b036109bf57865160009061096b9083610ecb565b73ffffffffffffffffffffffffffffffffffffffff16146109b8576040517ff8092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050610a4c565b60028460028111156109d3576109d361295a565b03610a1a578661010001518160600151106109b8576040517ff8092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9343055600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b610a5b6122bb565b434660025b6101008111158015610a725750808310155b15610abe57610a8181846125b1565b408460ff610a8f84876125b1565b610a9991906129b8565b60ff8110610aa957610aa961292b565b6020020152610ab7816129cc565b9050610a60565b506000610acc6001846125b1565b90508040610add8383600088610f5c565b60355414610b17576040517fd719258d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8085610b2460ff856129b8565b60ff8110610b3457610b3461292b565b6020020152610b468385600088610f5c565b60355560009182526033602052604090912055505050565b60008282604051610b70929190612a04565b6040518091039020905092915050565b610c8160405180610320016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581526020016000151581526020016000151581525090565b50604080516103208101825262028c5c81526108016020820152602891810191909152600a606082015260006080820152625b8d8060a0820152604f60c08201526201d4c060e08201526152086101008201526203d090610120820152620e71d9610140820152606461016082015260196101808201526104006101a082018190526101c082018190526101e0820152610190610200820181905260c8610220830152610240820152603c61026082015261070861028082015262278d006102a082015260016102c082018190526102e0820181905261030082015290565b60606000610d6d83610f95565b600101905060008167ffffffffffffffff811115610d8d57610d8d6122da565b6040519080825280601f01601f191660200182016040528015610db7576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610dc157509392505050565b6000826002811115610e3257610e3261295a565b141580610e3e57508015155b15610e75576040517f11abdc5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b8051600090815b8151811015610ec457818181518110610e9b57610e9b61292b565b60200260200101516060015183610eb29190612a14565b9250610ebd816129cc565b9050610e80565b5050919050565b60006001610ed98484611077565b6080840151610ee990601b612a27565b60a085015160c0860151604080516000815260200190819052610f28949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015610f4a573d6000803e3d6000fd5b5050604051601f190151949350505050565b600084848484604051602001610f759493929190612a40565b604051602081830303815290604052805190602001209050949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610fde577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061100a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061102857662386f26fc10000830492506010015b6305f5e1008310611040576305f5e100830492506008015b612710831061105457612710830492506004015b60648310611066576064830492506002015b600a83106103095760010192915050565b60006060826000015160ff1660000361109e576110978360e00151611465565b90506110b8565b6110b56110b08460e001516001611498565b611465565b90505b825160ff1660000361111a5780516009146111155760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420726c70206974656d73000000000000000000000000000000604482015260640161079a565b61121c565b825160ff16600103611177578051600b146111155760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420726c70206974656d73000000000000000000000000000000604482015260640161079a565b825160ff166002036111d4578051600c146111155760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420726c70206974656d73000000000000000000000000000000604482015260640161079a565b60405162461bcd60e51b815260206004820152600e60248201527f696e76616c696420747854797065000000000000000000000000000000000000604482015260640161079a565b825160009060ff161561123c576003825161123791906125b1565b61123f565b81515b67ffffffffffffffff811115611257576112576122da565b60405190808252806020026020018201604052801561128a57816020015b60608152602001906001900390816112755790505b50905060005b815181101561141257845160ff16158015906112b85750600182516112b591906125b1565b81145b15611301576112df8382815181106112d2576112d261292b565b60200260200101516114ce565b8282815181106112f1576112f161292b565b6020026020010181905250611402565b61132b6113268483815181106113195761131961292b565b60200260200101516114d9565b611569565b82828151811061133d5761133d61292b565b6020908102919091010152845160ff1615801561136657506004825161136391906125b1565b81145b1561140257611374866115d8565b82611380836001612a14565b815181106113905761139061292b565b60200260200101819052506113a560006115e6565b826113b1836002612a14565b815181106113c1576113c161292b565b60200260200101819052506113d660006115e6565b826113e2836003612a14565b815181106113f2576113f261292b565b6020026020010181905250611412565b61140b816129cc565b9050611290565b50600061141e826115fe565b855190915060ff16156114545784516040516114429160f81b908390602001612a8b565b60405160208183030381529060405290505b805160209091012095945050505050565b60408051808201825260008082526020918201528151808301909252825182528083019082015260609061030990611642565b6060825182106114b75750604080516020810190915260008152610309565b61030683838486516114c991906125b1565b611841565b6060610309826119c2565b606060008060006114e9856119d8565b9194509250905060008160018111156115045761150461295a565b146115515760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e0000000000000000604482015260640161079a565b61156085602001518484611d29565b95945050505050565b60608082516001148015611597575060808360008151811061158d5761158d61292b565b016020015160f81c105b156115a3575081610309565b6115af83516080611dd2565b836040516020016115c1929190612ad3565b604051602081830303815290604052905092915050565b606061030961132683611fba565b60606103096113268367ffffffffffffffff16611fba565b6060600061160b83612115565b9050611619815160c0611dd2565b8160405160200161162b929190612ad3565b604051602081830303815290604052915050919050565b6060600080611650846119d8565b9193509091506001905081600181111561166c5761166c61295a565b146116b95760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e000000000000000000604482015260640161079a565b6040805160208082526104208201909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816116d25790505090506000835b8651811015611836576020821061177e5760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201527f7374206c656e6774682e00000000000000000000000000000000000000000000606482015260840161079a565b6000806117bb6040518060400160405280858c6000015161179f91906125b1565b8152602001858c602001516117b49190612a14565b90526119d8565b5091509150604051806040016040528083836117d79190612a14565b8152602001848b602001516117ec9190612a14565b8152508585815181106118015761180161292b565b6020908102919091010152611817600185612a14565b93506118238183612a14565b61182d9084612a14565b925050506116ff565b508152949350505050565b60608161184f81601f612a14565b101561189d5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161079a565b826118a88382612a14565b10156118f65760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161079a565b6119008284612a14565b845110156119505760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015260640161079a565b60608215801561196f57604051915060008252602082016040526119b9565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156119a8578051835260209283019201611990565b5050858452601f01601f1916604052505b50949350505050565b6060610309826020015160008460000151611d29565b600080600080846000015111611a305760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e0000000000000000604482015260640161079a565b6020840151805160001a607f8111611a55576000600160009450945094505050611d22565b60b78111611ad1576000611a6a6080836125b1565b905080876000015111611abf5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e00000000000000604482015260640161079a565b60019550935060009250611d22915050565b60bf8111611bc0576000611ae660b7836125b1565b905080876000015111611b3b5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e00604482015260640161079a565b600183015160208290036101000a9004611b558183612a14565b885111611ba45760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e0000000000000000604482015260640161079a565b611baf826001612a14565b9650945060009350611d2292505050565b60f78111611c3b576000611bd560c0836125b1565b905080876000015111611c2a5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e000000000000000000604482015260640161079a565b600195509350849250611d22915050565b6000611c4860f7836125b1565b905080876000015111611c9d5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e000000604482015260640161079a565b600183015160208290036101000a9004611cb78183612a14565b885111611d065760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420524c50206c6f6e67206c6973742e00000000000000000000604482015260640161079a565b611d11826001612a14565b9650945060019350611d2292505050565b9193909250565b606060008267ffffffffffffffff811115611d4657611d466122da565b6040519080825280601f01601f191660200182016040528015611d70576020820181803683370190505b5090508051600003611d8357905061031f565b8484016020820160005b85811015611da5578281015182820152602001611d8d565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b6060806038841015611e515760408051600180825281830190925290602082018180368337019050509050611e078385612a27565b60f81b81600081518110611e1d57611e1d61292b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610306565b600060015b611e608187612b02565b15611e8357611e6e826129cc565b9150611e7c61010082612b16565b9050611e56565b611e8e826001612a14565b67ffffffffffffffff811115611ea657611ea66122da565b6040519080825280601f01601f191660200182016040528015611ed0576020820181803683370190505b509250611edd8583612a27565b611ee8906037612a27565b60f81b83600081518110611efe57611efe61292b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190505b8181116107a357610100611f4682846125b1565b611f5290610100612c4d565b611f5c9088612b02565b611f6691906129b8565b60f81b838281518110611f7b57611f7b61292b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611fb3816129cc565b9050611f32565b6060600082604051602001611fd191815260200190565b604051602081830303815290604052905060005b602081101561203e578181815181106120005761200061292b565b01602001517fff000000000000000000000000000000000000000000000000000000000000001660000361203e57612037816129cc565b9050611fe5565b600061204b8260206125b1565b67ffffffffffffffff811115612063576120636122da565b6040519080825280601f01601f19166020018201604052801561208d576020820181803683370190505b50905060005b81518110156119b95783836120a7816129cc565b9450815181106120b9576120b961292b565b602001015160f81c60f81b8282815181106120d6576120d661292b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061210e816129cc565b9050612093565b6060815160000361213457505060408051600081526020810190915290565b6000805b8351811015612179578381815181106121535761215361292b565b602002602001015151826121679190612a14565b9150612172816129cc565b9050612138565b60008267ffffffffffffffff811115612194576121946122da565b6040519080825280601f01601f1916602001820160405280156121be576020820181803683370190505b50600092509050602081015b85518310156119b95760008684815181106121e7576121e761292b565b60200260200101519050600060208201905061220583828451612240565b8785815181106122175761221761292b565b6020026020010151518361222b9190612a14565b9250505082612239906129cc565b92506121ca565b8282825b6020811061227c578151835261225b602084612a14565b9250612268602083612a14565b91506122756020826125b1565b9050612244565b905182516020929092036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169116179052505050565b60405180611fe0016040528060ff906020820280368337509192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516020810167ffffffffffffffff8111828210171561232c5761232c6122da565b60405290565b604051610100810167ffffffffffffffff8111828210171561232c5761232c6122da565b604051601f8201601f1916810167ffffffffffffffff8111828210171561237f5761237f6122da565b604052919050565b600067ffffffffffffffff8211156123a1576123a16122da565b50601f01601f191660200190565b600082601f8301126123c057600080fd5b81356123d36123ce82612387565b612356565b8181528460208386010111156123e857600080fd5b816020850160208301376000918101602001919091529392505050565b803580151581146105de57600080fd5b6000806040838503121561242857600080fd5b823567ffffffffffffffff81111561243f57600080fd5b61244b858286016123af565b92505061245a60208401612405565b90509250929050565b60008060006060848603121561247857600080fd5b83359250602084013567ffffffffffffffff81111561249657600080fd5b6124a2868287016123af565b9250506124b160408501612405565b90509250925092565b6000602082840312156124cc57600080fd5b5035919050565b600080600080606085870312156124e957600080fd5b843567ffffffffffffffff8082111561250157600080fd5b818701915087601f83011261251557600080fd5b81358181111561252457600080fd5b88602082850101111561253657600080fd5b602092830196509450508501356003811061255057600080fd5b9396929550929360400135925050565b6000806040838503121561257357600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561030957610309612582565b60005b838110156125df5781810151838201526020016125c7565b50506000910152565b600083516125fa8184602088016125c4565b7f2e0000000000000000000000000000000000000000000000000000000000000090830190815283516126348160018401602088016125c4565b01600101949350505050565b602081526000825180602084015261265f8160408501602087016125c4565b601f01601f19169190910160400192915050565b805173ffffffffffffffffffffffffffffffffffffffff811681146105de57600080fd5b6000602082840312156126a957600080fd5b61030682612673565b7f41523a7a65726f416464723a00000000000000000000000000000000000000008152600082516126ea81600c8501602087016125c4565b91909101600c0192915050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b805160ff811681146105de57600080fd5b600082601f83011261274f57600080fd5b815161275d6123ce82612387565b81815284602083860101111561277257600080fd5b6127838260208301602087016125c4565b949350505050565b6000602080838503121561279e57600080fd5b825167ffffffffffffffff808211156127b657600080fd5b81850191508282870312156127ca57600080fd5b6127d2612309565b8251828111156127e157600080fd5b80840193505086601f8401126127f657600080fd5b825182811115612808576128086122da565b8060051b612817868201612356565b918252848101860191868101908a84111561283157600080fd5b87870192505b8383101561291b5782518681111561284e57600080fd5b8701610100818d03601f190181131561286657600080fd5b61286e612332565b6128798b840161272d565b815261288760408401612673565b8b82015260608301518981111561289d57600080fd5b6128ab8f8d8387010161273e565b6040830152506080830151606082015260a06128c881850161272d565b608083015260c0808501518284015260e09150818501518184015250828401519250898311156128f85760008081fd5b6129068f8d8587010161273e565b90820152845250509187019190870190612837565b8452509198975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826129c7576129c7612989565b500690565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129fd576129fd612582565b5060010190565b8183823760009101908152919050565b8082018082111561030957610309612582565b60ff818116838216019081111561030957610309612582565b848152600060208581840152846040840152606083018460005b60ff811015612a7757815183529183019190830190600101612a5a565b505050506120408201905095945050505050565b7fff000000000000000000000000000000000000000000000000000000000000008316815260008251612ac58160018501602087016125c4565b919091016001019392505050565b60008351612ae58184602088016125c4565b835190830190612af98183602088016125c4565b01949350505050565b600082612b1157612b11612989565b500490565b808202811582820484141761030957610309612582565b600181815b80851115612b8657817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115612b6c57612b6c612582565b80851615612b7957918102915b93841c9390800290612b32565b509250929050565b600082612b9d57506001610309565b81612baa57506000610309565b8160018114612bc05760028114612bca57612be6565b6001915050610309565b60ff841115612bdb57612bdb612582565b50506001821b610309565b5060208310610133831016604e8410600b8410161715612c09575081810a610309565b612c138383612b2d565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115612c4557612c45612582565b029392505050565b60006103068383612b8e56fea2646970667358221220b0e2d2df211dd589d063e24dc61098a0aec86ea03c1fcd3241c1634bae25d5dd64736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000004": { + "contractName": "Bridge", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000000000777700000000000000000000000000000006" + }, + "code": "0x6080604052600436106101635760003560e01c8063715018a6116100c0578063ce70f39b11610074578063f2fde38b11610059578063f2fde38b1461051a578063f98039191461053a578063fee99b221461055a57600080fd5b8063ce70f39b1461048b578063d0496d6a146104ab57600080fd5b806396e17852116100a557806396e1785214610438578063a4444efd1461044b578063bac443e21461046b57600080fd5b8063715018a6146104055780638da5cb5b1461041a57600080fd5b80635075a9d4116101175780635817b0c3116100fc5780635817b0c3146103975780635d0bd986146103c5578063606b5b74146103e557600080fd5b80635075a9d41461034a578063540be6a31461037757600080fd5b80631be2bfa7116101485780631be2bfa7146102cc578063343b643c146102ec5780633ab76e9f1461032c57600080fd5b80630ca4dffd1461026f57806319ab453c146102ac57600080fd5b3661026a576101a86040518060400160405280600b81526020017f746f6b656e5f7661756c74000000000000000000000000000000000000000000815250600161057a565b6001600160a01b0316336001600160a01b03161415801561021a57506102046040518060400160405280600b81526020017f65746865725f7661756c74000000000000000000000000000000000000000000815250600161057a565b6001600160a01b0316336001600160a01b031614155b801561023157506065546001600160a01b03163314155b15610268576040517f8bba088a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b34801561027b57600080fd5b5061028f61028a366004613914565b61057a565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102b857600080fd5b506102686102c7366004613986565b610590565b3480156102d857600080fd5b5061028f6102e73660046139a3565b610729565b3480156102f857600080fd5b5061031c6103073660046139fe565b600090815260cd602052604090205460ff1690565b60405190151581526020016102a3565b34801561033857600080fd5b506097546001600160a01b031661028f565b34801561035657600080fd5b5061036a6103653660046139fe565b61073e565b6040516102a39190613a81565b34801561038357600080fd5b5061031c6103923660046139fe565b610749565b3480156103a357600080fd5b506103b76103b2366004613aa8565b610755565b6040519081526020016102a3565b3480156103d157600080fd5b5061031c6103e03660046139fe565b610768565b3480156103f157600080fd5b506103b76104003660046139fe565b61077b565b34801561041157600080fd5b50610268610786565b34801561042657600080fd5b506065546001600160a01b031661028f565b6103b7610446366004613aa8565b61079a565b34801561045757600080fd5b5061031c610466366004613b26565b6107c8565b34801561047757600080fd5b50610268610486366004613b79565b6107e0565b34801561049757600080fd5b5061031c6104a6366004613b26565b610804565b3480156104b757600080fd5b50604080516060808201835260008083526020808401829052928401528251808201845260ca5480825260cb546001600160a01b0390811683860190815260cc5493870193845286519283525116938101939093525192820192909252016102a3565b34801561052657600080fd5b50610268610535366004613986565b610813565b34801561054657600080fd5b50610268610555366004613be2565b6108bd565b34801561056657600080fd5b50610268610575366004613b79565b6108db565b60006105874684846108f1565b90505b92915050565b600054610100900460ff16158080156105b05750600054600160ff909116105b806105ca5750303b1580156105ca575060005460ff166001145b61065b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156106b957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6106c282610a3c565b801561072557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60006107368484846108f1565b949350505050565b600061058a82610a55565b600061058a3083610a78565b600061058a61076383613c18565b610bbd565b60006107743083610bed565b5092915050565b600061058a82610cc5565b61078e610d00565b6107986000610d74565b565b60006107a4610dde565b6107b860c9306107b385613c18565b610e51565b90506107c360018055565b919050565b60006107d73086868686611239565b95945050505050565b6107e8610dde565b6107f660c930858585611435565b6107ff60018055565b505050565b60006107d73086868686611823565b61081b610d00565b6001600160a01b0381166108b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610652565b6108ba81610d74565b50565b6108c5610dde565b6108d260c9308484611ba6565b61072560018055565b6108e3610dde565b6107f660c930858585611e82565b6000806108fd856124f5565b8460405160200161090f929190613d3e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526097547fbf40fac10000000000000000000000000000000000000000000000000000000083529092506001600160a01b03169063bf40fac190610985908490600401613de0565b602060405180830381865afa1580156109a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c69190613df3565b915082610a34576040516001600160a01b0383161515906109eb908390602001613e10565b60405160208183030381529060405290610a32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106529190613de0565b505b509392505050565b610a44612595565b610a4c612634565b6108ba816126d3565b600080610a6183610cc5565b805490915080600381111561073657610736613a17565b604080517f0ca4dffd0000000000000000000000000000000000000000000000000000000081526004810191909152600e60448201527f7369676e616c5f736572766963650000000000000000000000000000000000006064820152600060248201819052906001600160a01b03841690630ca4dffd90608401602060405180830381865afa158015610b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b339190613df3565b6040517f32676bc6000000000000000000000000000000000000000000000000000000008152306004820152602481018490526001600160a01b0391909116906332676bc690604401602060405180830381865afa158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105879190613e55565b600081604051602001610bd09190613f65565b604051602081830303815290604052805190602001209050919050565b6040517f1be2bfa70000000000000000000000000000000000000000000000000000000081526004810182905260606024820152600660648201527f627269646765000000000000000000000000000000000000000000000000000060848201526001604482015260009081906001600160a01b03851690631be2bfa79060a401602060405180830381865afa158015610c8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610caf9190613df3565b6001600160a01b03811615159590945092505050565b6040517f4d4553534147455f5354415455530000000000000000000000000000000000006020820152602e8101829052600090604e01610bd0565b6065546001600160a01b03163314610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610652565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600260015403610e4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610652565b6002600155565b60808101516000906001600160a01b0316610e98576040517fd8c3418000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610ea9858560600151610bed565b91509150811580610ebd5750468460600151145b15610ef4576040517fe822b48d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a08401516001600160a01b03161580610f235750806001600160a01b03168460a001516001600160a01b0316145b15610f5a576040517fb9ad6a0f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008461012001518561010001518660e00151610f779190613fdb565b610f819190613fdb565b9050348114610fbc576040517f9826865c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080517f0ca4dffd0000000000000000000000000000000000000000000000000000000081526004810191909152600b60448201527f65746865725f7661756c740000000000000000000000000000000000000000006064820152600160248201526000906001600160a01b03881690630ca4dffd90608401602060405180830381865afa158015611053573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110779190613df3565b90506001600160a01b0381161561109b5761109b6001600160a01b0382168361274d565b87548860006110a983613fee565b9091555086523360208701524660408701526110c486610bbd565b604080517f0ca4dffd0000000000000000000000000000000000000000000000000000000081526004810191909152600e60448201527f7369676e616c5f736572766963650000000000000000000000000000000000006064820152600060248201529095506001600160a01b03881690630ca4dffd90608401602060405180830381865afa15801561115b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117f9190613df3565b6001600160a01b03166366ca2bc0866040518263ffffffff1660e01b81526004016111ac91815260200190565b6020604051808303816000875af11580156111cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ef9190614008565b50847f47866f7dacd4a276245be6ed543cae03c9c17eb17e6980cee28e3dd168b7f9f3876040516112209190614021565b60405180910390a2505050509392505050565b60018055565b6040517f1be2bfa70000000000000000000000000000000000000000000000000000000081526004810184905260606024820152600660648201527f627269646765000000000000000000000000000000000000000000000000000060848201526000604482018190529081906001600160a01b03881690631be2bfa79060a401602060405180830381865afa1580156112d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fb9190613df3565b604080517f0ca4dffd0000000000000000000000000000000000000000000000000000000081526004810191909152600e60448201527f7369676e616c5f736572766963650000000000000000000000000000000000006064820152600060248201529091506001600160a01b03881690630ca4dffd90608401602060405180830381865afa158015611392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b69190613df3565b6001600160a01b0316635221f61386838988886040518663ffffffff1660e01b81526004016113e9959493929190614034565b602060405180830381865afa158015611406573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142a9190613e55565b979650505050505050565b600061144760a0850160808601613986565b6001600160a01b031603611487576040517fd8c3418000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b468360400135146114c4576040517fe822b48d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006114d261076385613c18565b600081815260048801602052604090205490915060ff161515600103611524576040517fafde133500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611535858286606001358686611823565b61156b576040517f498b0b1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600487016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556115b761010086013560e0870135613fdb565b905080156117c757604080517f0ca4dffd0000000000000000000000000000000000000000000000000000000081526004810191909152600b60448201527f65746865725f7661756c740000000000000000000000000000000000000000006064820152600160248201526000906001600160a01b03881690630ca4dffd90608401602060405180830381865afa158015611656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167a9190613df3565b90506001600160a01b03811615611727576001600160a01b03811663ba0bbd956116aa60a0890160808a01613986565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101859052604401600060405180830381600087803b15801561170a57600080fd5b505af115801561171e573d6000803e3d6000fd5b505050506117c5565b600061173960a0880160808901613986565b6001600160a01b03168360405160006040518083038185875af1925050503d8060008114611783576040519150601f19603f3d011682016040523d82523d6000602084013e611788565b606091505b50509050806117c3576040517ff6664cf100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505b817fea00c741e39d1d9ab1c6703152d71f9da09a782ed4ae128414730dadbb9bd8476117f960a0880160808901613986565b604080516001600160a01b039092168252602082018590520160405180910390a250505050505050565b600046840361185e576040517fe822b48d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000859003611899576040517fa6407c9300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006118a783850185614145565b604080517f0ca4dffd0000000000000000000000000000000000000000000000000000000081526004810191909152600560448201527f7461696b6f00000000000000000000000000000000000000000000000000000060648201526000602482018190529192506001600160a01b03891690630ca4dffd90608401602060405180830381865afa158015611940573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119649190613df3565b825161010001516040517f25bf86f20000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff90911660048201526001600160a01b0391909116906325bf86f290602401602060405180830381865afa1580156119dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a019190614008565b9050801580611a1a57508151611a1690612810565b8114155b15611a2a576000925050506107d7565b81516060908101516040517f1be2bfa7000000000000000000000000000000000000000000000000000000008152600481018990526024810192909252600660648301527f627269646765000000000000000000000000000000000000000000000000000060848301526000604483015273B51f0f2bdCbf6cfabB35239921A5c672519F74ba91639603043991906001600160a01b038c1690631be2bfa79060a401602060405180830381865afa158015611ae9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0d9190613df3565b611b168b610cc5565b602087015160405160e086901b7fffffffff00000000000000000000000000000000000000000000000000000000168152611b59949392916003916004016142ea565b602060405180830381865af4158015611b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9a9190613e55565b98975050505050505050565b6101408201351580611bb55750805b15611c1457611bca60a0830160808401613986565b6001600160a01b0316336001600160a01b031614611c14576040517fd7f4fc9f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c2261076384613c18565b90506001611c2f82610a55565b6003811115611c4057611c40613a17565b14611c77576040517f1f6646b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080517f0ca4dffd0000000000000000000000000000000000000000000000000000000081526004810191909152600b60448201527f65746865725f7661756c740000000000000000000000000000000000000000006064820152600160248201526000906001600160a01b03861690630ca4dffd90608401602060405180830381865afa158015611d0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d329190613df3565b90506001600160a01b03811615611dbb576040517fd73bb3d000000000000000000000000000000000000000000000000000000000815261010085013560048201526001600160a01b0382169063d73bb3d090602401600060405180830381600087803b158015611da257600080fd5b505af1158015611db6573d6000803e3d6000fd5b505050505b611dc78685845a612835565b15611ddc57611dd78260026129d6565b611e7a565b8215611e5357611ded8260036129d6565b600080611e0060e0870160c08801613986565b6001600160a01b031614611e2357611e1e60e0860160c08701613986565b611e33565b611e3360a0860160808701613986565b9050611e4d6001600160a01b03821661010087013561274d565b50611e7a565b6001600160a01b03811615611e7a57611e7a6001600160a01b03821661010086013561274d565b505050505050565b610140830135158015611eb65750611ea060a0840160808501613986565b6001600160a01b0316336001600160a01b031614155b15611eed576040517fe62d8d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b46836060013514611f2a576040517fe822b48d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611f3861076385613c18565b90506000611f4582610a55565b6003811115611f5657611f56613a17565b14611f8d576040517f2c3b0c4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080517f1be2bfa700000000000000000000000000000000000000000000000000000000815290850135600482015260606024820152600660648201527f62726964676500000000000000000000000000000000000000000000000000006084820152600060448201819052906001600160a01b03871690631be2bfa79060a401602060405180830381865afa15801561202c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120509190613df3565b604080517f0ca4dffd0000000000000000000000000000000000000000000000000000000081526004810191909152600e60448201527f7369676e616c5f736572766963650000000000000000000000000000000000006064820152600060248201529091506001600160a01b03871690630ca4dffd90608401602060405180830381865afa1580156120e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210b9190613df3565b6001600160a01b0316635221f6138660400135838588886040518663ffffffff1660e01b8152600401612142959493929190614034565b602060405180830381865afa15801561215f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121839190613e55565b6121b9576040517fa282639800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006101208601356121d461010088013560e0890135613fdb565b6121de9190613fdb565b604080517f0ca4dffd0000000000000000000000000000000000000000000000000000000081526004810191909152600b60448201527f65746865725f7661756c740000000000000000000000000000000000000000006064820152600160248201529091506000906001600160a01b03891690630ca4dffd90608401602060405180830381865afa158015612278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229c9190613df3565b90506001600160a01b038116158015906122b65750600082115b1561232f576040517fd73bb3d0000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0382169063d73bb3d090602401600060405180830381600087803b15801561231657600080fd5b505af115801561232a573d6000803e3d6000fd5b505050505b60e0870135156123605761236060e088013561235160a08a0160808b01613986565b6001600160a01b03169061274d565b6000803061237460c08b0160a08c01613986565b6001600160a01b031614806123a15750600061239660c08b0160a08c01613986565b6001600160a01b0316145b156123b657506002905061010088013561243c565b60006123c860a08b0160808c01613986565b6001600160a01b0316336001600160a01b0316146123eb578961014001356123ed565b5a5b905060006123fd8d8c8a85612835565b9050801561240e5760029350612439565b600193506001600160a01b03851615612439576124396001600160a01b0386166101008d013561274d565b50505b61244686836129d6565b60008061245960e08c0160c08d01613986565b6001600160a01b03161461247c5761247760e08b0160c08c01613986565b61248c565b61248c60a08b0160808c01613986565b90506001600160a01b03811633036124c5576124c06124b0836101208d0135613fdb565b6001600160a01b0383169061274d565b6124e7565b6124d4336101208c013561274d565b6124e76001600160a01b0382168361274d565b505050505050505050505050565b6060600061250283612a4f565b600101905060008167ffffffffffffffff811115612522576125226137bb565b6040519080825280601f01601f19166020018201604052801561254c576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461255657509392505050565b600054610100900460ff1661262c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610652565b610798612b31565b600054610100900460ff166126cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610652565b610798612bc8565b6001600160a01b038116612713576040517f9a109b0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b8015610725576000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146127a0576040519150601f19603f3d011682016040523d82523d6000602084013e6127a5565b606091505b50509050806107ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f455448207472616e73666572206661696c6564000000000000000000000000006044820152606401610652565b600080612826612821846000612c68565b6130ac565b80516020909101209392505050565b600081600003612871576040517ffe1d2c1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180606001604052808481526020018560200160208101906128959190613986565b6001600160a01b039081168252604087810135602093840152835160018a0155918301516002890180547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055015160038601556128ff60c0850160a08601613986565b6001600160a01b03168261010086013561291d61016088018861434d565b60405161292b9291906143b2565b600060405180830381858888f193505050503d8060008114612969576040519150601f19603f3d011682016040523d82523d6000602084013e61296e565b606091505b505060408051606081018252600180825260208201819052600019919092018190528782018290556002880180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690921790915560039096019590955550929392505050565b8060038111156129e8576129e8613a17565b6129f183610a55565b6003811115612a0257612a02613a17565b1461072557612a1182826130f0565b817f0af4d5247f6a4028d6699afb62871a76b398da1d1a626c8a9b90e0bd5f54c73c8233604051612a439291906143c2565b60405180910390a25050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612a98577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612ac4576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612ae257662386f26fc10000830492506010015b6305f5e1008310612afa576305f5e100830492506008015b6127108310612b0e57612710830492506004015b60648310612b20576064830492506002015b600a831061058a5760010192915050565b600054610100900460ff16611233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610652565b600054610100900460ff16612c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610652565b61079833610d74565b61020082015160609015612cd457612c81826011613fdb565b67ffffffffffffffff811115612c9957612c996137bb565b604051908082528060200260200182016040528015612ccc57816020015b6060815260200190600190039081612cb75790505b509050612d44565b6101e083015115612cea57612c81826010613fdb565b612cf582600f613fdb565b67ffffffffffffffff811115612d0d57612d0d6137bb565b604051908082528060200260200182016040528015612d4057816020015b6060815260200190600190039081612d2b5790505b5090505b8251612d4f90613119565b81600081518110612d6257612d626143e6565b6020026020010181905250612d7a8360200151613119565b81600181518110612d8d57612d8d6143e6565b6020026020010181905250612da5836040015161312c565b81600281518110612db857612db86143e6565b6020026020010181905250612dd08360600151613119565b81600381518110612de357612de36143e6565b6020026020010181905250612dfb8360800151613119565b81600481518110612e0e57612e0e6143e6565b6020026020010181905250612e268360a00151613119565b81600581518110612e3957612e396143e6565b6020026020010181905250612e708360c00151604051602001612e5c9190614415565b604051602081830303815290604052613168565b81600681518110612e8357612e836143e6565b6020026020010181905250612e9b8360e001516131d7565b81600781518110612eae57612eae6143e6565b6020026020010181905250612ed98361010001516fffffffffffffffffffffffffffffffff166131d7565b81600881518110612eec57612eec6143e6565b6020026020010181905250612f058361012001516131e5565b81600981518110612f1857612f186143e6565b6020026020010181905250612f318361014001516131e5565b81600a81518110612f4457612f446143e6565b6020026020010181905250612f5d8361016001516131e5565b81600b81518110612f7057612f706143e6565b6020026020010181905250612f89836101800151613168565b81600c81518110612f9c57612f9c6143e6565b6020026020010181905250612fb5836101a00151613119565b81600d81518110612fc857612fc86143e6565b6020026020010181905250613017836101c00151604051602001612e5c919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b81600e8151811061302a5761302a6143e6565b6020026020010181905250826101e0015160001461306f57613050836101e001516131d7565b81600f81518110613063576130636143e6565b60200260200101819052505b6102008301511561058a57613088836102000151613119565b8160108151811061309b5761309b6143e6565b602002602001018190525092915050565b606060006130b9836131fd565b90506130c7815160c0613333565b816040516020016130d992919061444a565b604051602081830303815290604052915050919050565b60006130fb83610cc5565b9050600082600381111561311157613111613a17565b909155505050565b606061058a6131278361351b565b613168565b604051606082811b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208301529061058a90603401612e5c565b60608082516001148015613196575060808360008151811061318c5761318c6143e6565b016020015160f81c105b156131a257508161058a565b6131ae83516080613333565b836040516020016131c092919061444a565b604051602081830303815290604052905092915050565b606061058a61312783613603565b606061058a6131278367ffffffffffffffff16613603565b6060815160000361321e576040805160008082526020820190925290610774565b6000805b83518110156132635783818151811061323d5761323d6143e6565b602002602001015151826132519190613fdb565b915061325c81613fee565b9050613222565b60008267ffffffffffffffff81111561327e5761327e6137bb565b6040519080825280601f01601f1916602001820160405280156132a8576020820181803683370190505b50600092509050602081015b855183101561332a5760008684815181106132d1576132d16143e6565b6020026020010151905060006020820190506132ef8382845161375e565b878581518110613301576133016143e6565b602002602001015151836133159190613fdb565b925050508261332390613fee565b92506132b4565b50949350505050565b60608060388410156133b257604080516001808252818301909252906020820181803683370190505090506133688385614479565b60f81b8160008151811061337e5761337e6143e6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610587565b600060015b6133c18187614492565b156133e4576133cf82613fee565b91506133dd610100826144a6565b90506133b7565b6133ef826001613fdb565b67ffffffffffffffff811115613407576134076137bb565b6040519080825280601f01601f191660200182016040528015613431576020820181803683370190505b50925061343e8583614479565b613449906037614479565b60f81b8360008151811061345f5761345f6143e6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190505b818111610a32576101006134a782846144bd565b6134b3906101006145b4565b6134bd9088614492565b6134c791906145c0565b60f81b8382815181106134dc576134dc6143e6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061351481613fee565b9050613493565b606060008260405160200161353291815260200190565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815260208084528383019092529250600091829160208201818036833701905050905060005b815181101561332a57838361359581613fee565b9450815181106135a7576135a76143e6565b602001015160f81c60f81b8282815181106135c4576135c46143e6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506135fc81613fee565b9050613581565b606060008260405160200161361a91815260200190565b604051602081830303815290604052905060005b602081101561368757818181518110613649576136496143e6565b01602001517fff00000000000000000000000000000000000000000000000000000000000000166000036136875761368081613fee565b905061362e565b60006136948260206144bd565b67ffffffffffffffff8111156136ac576136ac6137bb565b6040519080825280601f01601f1916602001820160405280156136d6576020820181803683370190505b50905060005b815181101561332a5783836136f081613fee565b945081518110613702576137026143e6565b602001015160f81c60f81b82828151811061371f5761371f6143e6565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061375781613fee565b90506136dc565b8282825b6020811061379a5781518352613779602084613fdb565b9250613786602083613fdb565b91506137936020826144bd565b9050613762565b905182516020929092036101000a6000190180199091169116179052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516101a0810167ffffffffffffffff8111828210171561380e5761380e6137bb565b60405290565b6040805190810167ffffffffffffffff8111828210171561380e5761380e6137bb565b604051610220810167ffffffffffffffff8111828210171561380e5761380e6137bb565b600082601f83011261386c57600080fd5b813567ffffffffffffffff80821115613887576138876137bb565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156138cd576138cd6137bb565b816040528381528660208588010111156138e657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80151581146108ba57600080fd5b6000806040838503121561392757600080fd5b823567ffffffffffffffff81111561393e57600080fd5b61394a8582860161385b565b925050602083013561395b81613906565b809150509250929050565b6001600160a01b03811681146108ba57600080fd5b80356107c381613966565b60006020828403121561399857600080fd5b813561058781613966565b6000806000606084860312156139b857600080fd5b83359250602084013567ffffffffffffffff8111156139d657600080fd5b6139e28682870161385b565b92505060408401356139f381613906565b809150509250925092565b600060208284031215613a1057600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60048110613a7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b6020810161058a8284613a46565b60006101a08284031215613aa257600080fd5b50919050565b600060208284031215613aba57600080fd5b813567ffffffffffffffff811115613ad157600080fd5b61073684828501613a8f565b60008083601f840112613aef57600080fd5b50813567ffffffffffffffff811115613b0757600080fd5b602083019150836020828501011115613b1f57600080fd5b9250929050565b60008060008060608587031215613b3c57600080fd5b8435935060208501359250604085013567ffffffffffffffff811115613b6157600080fd5b613b6d87828801613add565b95989497509550505050565b600080600060408486031215613b8e57600080fd5b833567ffffffffffffffff80821115613ba657600080fd5b613bb287838801613a8f565b94506020860135915080821115613bc857600080fd5b50613bd586828701613add565b9497909650939450505050565b60008060408385031215613bf557600080fd5b823567ffffffffffffffff811115613c0c57600080fd5b61394a85828601613a8f565b60006101a08236031215613c2b57600080fd5b613c336137ea565b82358152613c436020840161397b565b60208201526040830135604082015260608301356060820152613c686080840161397b565b6080820152613c7960a0840161397b565b60a0820152613c8a60c0840161397b565b60c082015260e083810135908201526101008084013590820152610120808401359082015261014080840135908201526101608084013567ffffffffffffffff80821115613cd757600080fd5b613ce33683880161385b565b83850152610180925082860135915080821115613cff57600080fd5b50613d0c3682870161385b565b918301919091525092915050565b60005b83811015613d35578181015183820152602001613d1d565b50506000910152565b60008351613d50818460208801613d1a565b7f2e000000000000000000000000000000000000000000000000000000000000009083019081528351613d8a816001840160208801613d1a565b01600101949350505050565b60008151808452613dae816020860160208601613d1a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006105876020830184613d96565b600060208284031215613e0557600080fd5b815161058781613966565b7f41523a7a65726f416464723a0000000000000000000000000000000000000000815260008251613e4881600c850160208701613d1a565b91909101600c0192915050565b600060208284031215613e6757600080fd5b815161058781613906565b60006101a0825184526020830151613e9560208601826001600160a01b03169052565b5060408301516040850152606083015160608501526080830151613ec460808601826001600160a01b03169052565b5060a0830151613edf60a08601826001600160a01b03169052565b5060c0830151613efa60c08601826001600160a01b03169052565b5060e0838101519085015261010080840151908501526101208084015190850152610140808401519085015261016080840151818601839052613f3f83870182613d96565b925050506101808084015185830382870152613f5b8382613d96565b9695505050505050565b60408152601460408201527f5441494b4f5f4252494447455f4d45535341474500000000000000000000000060608201526080602082015260006105876080830184613e72565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561058a5761058a613fac565b6000600019820361400157614001613fac565b5060010190565b60006020828403121561401a57600080fd5b5051919050565b6020815260006105876020830184613e72565b8581526001600160a01b038516602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101949350505050565b600082601f8301126140b057600080fd5b60405161010080820182811067ffffffffffffffff821117156140d5576140d56137bb565b604052830181858211156140e857600080fd5b845b828110156141025780358252602091820191016140ea565b509195945050505050565b80356fffffffffffffffffffffffffffffffff811681146107c357600080fd5b803567ffffffffffffffff811681146107c357600080fd5b60006020828403121561415757600080fd5b813567ffffffffffffffff8082111561416f57600080fd5b908301906040828603121561418357600080fd5b61418b613814565b82358281111561419a57600080fd5b830161030081880312156141ad57600080fd5b6141b5613837565b81358152602082013560208201526141cf6040830161397b565b6040820152606082013560608201526080820135608082015260a082013560a08201526141ff8860c0840161409f565b60c08201526101c08083013560e08301526101e061421e81850161410d565b61010084015261020061423281860161412d565b610120850152614245610220860161412d565b610140850152614258610240860161412d565b6101608501526102608501358781111561427157600080fd5b61427d8c82880161385b565b610180860152506102808501356101a085015261429d6102a0860161412d565b838501526102c0850135828501526102e08501358185015250505080835250506020830135828111156142cf57600080fd5b6142db8782860161385b565b60208301525095945050505050565b8581526001600160a01b038516602082015283604082015282606082015260a06080820152600061142a60a0830184613d96565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261438257600080fd5b83018035915067ffffffffffffffff82111561439d57600080fd5b602001915036819003821315613b1f57600080fd5b8183823760009101908152919050565b604081016143d08285613a46565b6001600160a01b03831660208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008183825b600881101561443a57815183526020928301929091019060010161441b565b5050506101008201905092915050565b6000835161445c818460208801613d1a565b835190830190614470818360208801613d1a565b01949350505050565b60ff818116838216019081111561058a5761058a613fac565b6000826144a1576144a161431e565b500490565b808202811582820484141761058a5761058a613fac565b8181038181111561058a5761058a613fac565b600181815b8085111561450b5781600019048211156144f1576144f1613fac565b808516156144fe57918102915b93841c93908002906144d5565b509250929050565b6000826145225750600161058a565b8161452f5750600061058a565b8160018114614545576002811461454f5761456b565b600191505061058a565b60ff84111561456057614560613fac565b50506001821b61058a565b5060208310610133831016604e8410600b841016171561458e575081810a61058a565b61459883836144d0565b80600019048211156145ac576145ac613fac565b029392505050565b60006105878383614513565b6000826145cf576145cf61431e565b50069056fea2646970667358221220ec239ef73d6cbee8dbd31c663f4221c77b52ed6e7ce663cdda28f4eaa6af115964736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000002": { + "contractName": "TokenVault", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000000000777700000000000000000000000000000006" + }, + "code": "0x6080604052600436106100e85760003560e01c8063715018a61161008a5780639aa8605c116100595780639aa8605c146102b0578063c287e578146102e1578063ee1490b214610321578063f2fde38b1461033457600080fd5b8063715018a6146101fe578063780b64f0146102135780638da5cb5b146102725780639754149b1461029057600080fd5b80631be2bfa7116100c65780631be2bfa71461016c57806339da33ba1461018c5780633ab76e9f1461019f57806367090ccf146101bd57600080fd5b80630c6fab82146100ed5780630ca4dffd1461010f57806319ab453c1461014c575b600080fd5b3480156100f957600080fd5b5061010d6101083660046128f5565b610354565b005b34801561011b57600080fd5b5061012f61012a366004612a50565b610609565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561015857600080fd5b5061010d610167366004612aa2565b61061f565b34801561017857600080fd5b5061012f610187366004612abf565b61079e565b61010d61019a366004612b1a565b6107b5565b3480156101ab57600080fd5b506097546001600160a01b031661012f565b3480156101c957600080fd5b5061012f6101d8366004612b98565b60cb6020908152600092835260408084209091529082529020546001600160a01b031681565b34801561020a57600080fd5b5061010d610adb565b34801561021f57600080fd5b5061025361022e366004612bbd565b60cc60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b039093168352602083019190915201610143565b34801561027e57600080fd5b506065546001600160a01b031661012f565b34801561029c57600080fd5b5061010d6102ab366004612bd6565b610aef565b3480156102bc57600080fd5b506102d06102cb366004612aa2565b610f16565b604051610143959493929190612cc6565b3480156102ed57600080fd5b506103116102fc366004612aa2565b60c96020526000908152604090205460ff1681565b6040519015158152602001610143565b61010d61032f366004612d15565b611078565b34801561034057600080fd5b5061010d61034f366004612aa2565b611a29565b61035c611ab9565b6040518060400160405280600681526020017f627269646765000000000000000000000000000000000000000000000000000081525061039d816000610609565b6001600160a01b0316336001600160a01b0316146103e7576040517f1b0b999e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610427573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044b9190612db1565b905061049281604001516040518060400160405280600b81526020017f746f6b656e5f7661756c74000000000000000000000000000000000000000000815250600061079e565b6001600160a01b031681602001516001600160a01b0316146104e0576040517f80962e1c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600046873503610515576104fa6040880160208901612aa2565b90506105106001600160a01b0382168686611b12565b61059e565b61051e87611bbb565b6040517f42e91bb30000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919250908216906342e91bb390604401600060405180830381600087803b15801561058557600080fd5b505af1158015610599573d6000803e3d6000fd5b505050505b815160408084015181519081526001600160a01b0384811660208301529181018790528188169291891691907fe5da926519fc972010fe65b35c1e3339e6dc72b35ffaec203999c2a2a2593eac9060600160405180910390a450505061060360018055565b50505050565b6000610616468484611c1a565b90505b92915050565b600054610100900460ff161580801561063f5750600054600160ff909116105b806106595750303b158015610659575060005460ff166001145b6106d05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561072e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61073782611d2d565b801561079a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60006107ab848484611c1a565b90505b9392505050565b6107bd611ab9565b6001600160a01b0385161580610824575061080f866040518060400160405280600b81526020017f746f6b656e5f7661756c74000000000000000000000000000000000000000000815250600061079e565b6001600160a01b0316856001600160a01b0316145b1561085b576040517f4694641b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b823411610894576040517fae3718b400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610923604051806101a001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b606081018790523360808201526001600160a01b03861660a0820152610140810185905261012081018490526109598434612e13565b60e08201526001600160a01b03831660c08201526101808101829052610100810151156109b2576040517f3dd99f7e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006109f46040518060400160405280600681526020017f62726964676500000000000000000000000000000000000000000000000000008152506000610609565b6001600160a01b03166396e1785234846040518363ffffffff1660e01b8152600401610a209190612e4d565b60206040518083038185885af1158015610a3e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a639190612f47565b90508160a001516001600160a01b031682608001516001600160a01b0316827fe2f39179c279514a7b46983846e33f95a561128e0660602a211cc1e61cddb9bd8b8660e00151604051610ac0929190918252602082015260400190565b60405180910390a45050610ad360018055565b505050505050565b610ae3611d46565b610aed6000611da0565b565b610af7611ab9565b6000610b0960a0850160808601612aa2565b6001600160a01b031603610b49576040517f72b41cdf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b46836040013514610b86576040517f48bc100500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610bc86040518060400160405280600681526020017f62726964676500000000000000000000000000000000000000000000000000008152506000610609565b90506000816001600160a01b0316635817b0c3866040518263ffffffff1660e01b8152600401610bf89190612ff6565b602060405180830381865afa158015610c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c399190612f47565b600081815260cc6020526040902080546001909101549192506001600160a01b03169081610c93576040517f7c6addb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fce70f39b0000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063ce70f39b90610ce290869060608c0135908b908b90600401613114565b602060405180830381865afa158015610cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d239190613134565b610d59576040517f45d24f2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820182526000808252602080830182815287835260cc909152929020905181547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0390911617815590516001909101558015610e9d576001600160a01b038216600090815260c9602052604090205460ff1615610e79576001600160a01b0382166342e91bb3610dfc60a08a0160808b01612aa2565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015610e5c57600080fd5b505af1158015610e70573d6000803e3d6000fd5b50505050610e9d565b610e9d610e8c60a0890160808a01612aa2565b6001600160a01b0384169083611b12565b610ead60a0880160808901612aa2565b6001600160a01b0316837fc5d9f7cd7998e24ecf12ad69eca9339764e2cb13788d5d9616f502601b219af68484604051610efc9291906001600160a01b03929092168252602082015260400190565b60405180910390a350505050610f1160018055565b505050565b60ca6020526000908152604090208054600182015460028301805492936001600160a01b038316937401000000000000000000000000000000000000000090930460ff1692909190610f6790613151565b80601f0160208091040260200160405190810160405280929190818152602001828054610f9390613151565b8015610fe05780601f10610fb557610100808354040283529160200191610fe0565b820191906000526020600020905b815481529060010190602001808311610fc357829003601f168201915b505050505090806003018054610ff590613151565b80601f016020809104026020016040519081016040528092919081815260200182805461102190613151565b801561106e5780601f106110435761010080835404028352916020019161106e565b820191906000526020600020905b81548152906001019060200180831161105157829003601f168201915b5050505050905085565b611080611ab9565b6001600160a01b03871615806110e757506110d2886040518060400160405280600b81526020017f746f6b656e5f7661756c74000000000000000000000000000000000000000000815250600061079e565b6001600160a01b0316876001600160a01b0316145b1561111e576040517f4694641b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03861661115e576040517f7c6addb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84600003611198576040517f015f093200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a08101825260008082526020820181905291810191909152606080820181905260808201526001600160a01b038716600090815260c9602052604081205460ff1615611432576040517f77be18a8000000000000000000000000000000000000000000000000000000008152336004820152602481018890526001600160a01b038916906377be18a890604401600060405180830381600087803b15801561124457600080fd5b505af1158015611258573d6000803e3d6000fd5b505050506001600160a01b03888116600090815260ca6020908152604091829020825160a081018452815481526001820154948516928101929092527401000000000000000000000000000000000000000090930460ff16918101919091526002820180549192916060840191906112cf90613151565b80601f01602080910402602001604051908101604052809291908181526020018280546112fb90613151565b80156113485780601f1061131d57610100808354040283529160200191611348565b820191906000526020600020905b81548152906001019060200180831161132b57829003601f168201915b5050505050815260200160038201805461136190613151565b80601f016020809104026020016040519081016040528092919081815260200182805461138d90613151565b80156113da5780601f106113af576101008083540402835291602001916113da565b820191906000526020600020905b8154815290600101906020018083116113bd57829003601f168201915b5050509190925250505060208101519092506001600160a01b031661142b576040517ff91680d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50856116c4565b60008890506040518060a001604052804681526020018a6001600160a01b03168152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b991906131b3565b60ff168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261152791908101906131d0565b8152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801561156a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261159291908101906131d0565b90526040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529093506000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156115f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161b9190612f47565b90506116326001600160a01b03831633308c611e0a565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa158015611691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b59190612f47565b6116bf9190612e13565b925050505b611753604051806101a001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b606081018b905233608082015260408051808201909152600b81527f746f6b656e5f7661756c7400000000000000000000000000000000000000000060208201526117a1908c90600061079e565b6001600160a01b031660a082015260808101516040517f0c6fab8200000000000000000000000000000000000000000000000000000000916117ec918691908e908790602401613247565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526101608201526101408101879052610120810186905261186b8634612e13565b60e08201526001600160a01b03851660c0820152610180810184905260408051808201909152600681527f627269646765000000000000000000000000000000000000000000000000000060208201526000906118c89082610609565b6001600160a01b03166396e1785234846040518363ffffffff1660e01b81526004016118f49190612e4d565b60206040518083038185885af1158015611912573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119379190612f47565b905060405180604001604052808b6001600160a01b031681526020018481525060cc600083815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550602082015181600101559050508a6001600160a01b031682608001516001600160a01b0316827f325cab7553038374e17f39bb45e2a2c90f66c6a52798cb5f95c20d94c11c95e28f8e88604051611a0a939291909283526001600160a01b03919091166020830152604082015260600190565b60405180910390a450505050611a1f60018055565b5050505050505050565b611a31611d46565b6001600160a01b038116611aad5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106c7565b611ab681611da0565b50565b600260015403611b0b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106c7565b6002600155565b6040516001600160a01b038316602482015260448101829052610f119084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611e5b565b8035600090815260cb60209081526040808320839290918391611be2918701908701612aa2565b6001600160a01b0390811682526020820192909252604001600020541690508061061957611c0f83611f40565b6107ae565b60018055565b600080611c26856121f7565b84604051602001611c389291906132fe565b60408051601f19818403018152908290526097547fbf40fac10000000000000000000000000000000000000000000000000000000083529092506001600160a01b03169063bf40fac190611c90908490600401613356565b602060405180830381865afa158015611cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd19190613369565b915082611d25576040516001600160a01b038316151590611cf6908390602001613386565b60405160208183030381529060405290611d235760405162461bcd60e51b81526004016106c79190613356565b505b509392505050565b611d356122b5565b611d3d61233a565b611ab6816123bf565b6065546001600160a01b03163314610aed5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106c7565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526106039085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611b57565b6000611eb0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166124399092919063ffffffff16565b805190915015610f115780806020019051810190611ece9190613134565b610f115760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106c7565b6000611fd5818335611f586040860160208701612aa2565b604051602001611f9792919091825260601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602082015260340190565b6040516020818303038152906040528051906020012060405180602001611fbd906128c3565b601f1982820381018352601f90910116604052612448565b6097549091506001600160a01b0380831691636c0db62b9116611ffe6040860160208701612aa2565b853561201060608801604089016133cb565b61201d60608901896133e8565b61202a60808b018b6133e8565b60405161203e9291908d359060200161344d565b6040516020818303038152906040526040518863ffffffff1660e01b815260040161206f97969594939291906134d0565b600060405180830381600087803b15801561208957600080fd5b505af115801561209d573d6000803e3d6000fd5b5050506001600160a01b038216600090815260c96020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560ca90915290208391506120f8828261366f565b50508135600090815260cb6020908152604080832084939092909161212291908701908701612aa2565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b03168260200160208101906121839190612aa2565b6001600160a01b031683357f9e465b29e576a3e01584e31d607353f21b80c055e813af907c0a495f6cf4f7bc6121bc60608701876133e8565b6121c960808901896133e8565b6121d960608b0160408c016133cb565b6040516121ea95949392919061371d565b60405180910390a4919050565b606060006122048361254c565b600101905060008167ffffffffffffffff81111561222457612224612964565b6040519080825280601f01601f19166020018201604052801561224e576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461225857509392505050565b600054610100900460ff166123325760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106c7565b610aed61262e565b600054610100900460ff166123b75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106c7565b610aed6126ab565b6001600160a01b0381166123ff576040517f9a109b0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60606107ab8484600085612731565b60008347101561249a5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016106c7565b81516000036124eb5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016106c7565b8282516020840186f590506001600160a01b0381166107ae5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016106c7565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612595577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106125c1576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106125df57662386f26fc10000830492506010015b6305f5e10083106125f7576305f5e100830492506008015b612710831061260b57612710830492506004015b6064831061261d576064830492506002015b600a83106106195760010192915050565b600054610100900460ff16611c145760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106c7565b600054610100900460ff166127285760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106c7565b610aed33611da0565b6060824710156127a95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106c7565b600080866001600160a01b031685876040516127c5919061375a565b60006040518083038185875af1925050503d8060008114612802576040519150601f19603f3d011682016040523d82523d6000602084013e612807565b606091505b509150915061281887838387612825565b925050505b949350505050565b6060831561289457825160000361288d576001600160a01b0385163b61288d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106c7565b508161281d565b61281d83838151156128a95781518083602001fd5b8060405162461bcd60e51b81526004016106c79190613356565b6121518061377783390190565b6001600160a01b0381168114611ab657600080fd5b80356128f0816128d0565b919050565b6000806000806080858703121561290b57600080fd5b843567ffffffffffffffff81111561292257600080fd5b850160a0818803121561293457600080fd5b93506020850135612944816128d0565b92506040850135612954816128d0565b9396929550929360600135925050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156129bc576129bc612964565b604052919050565b600067ffffffffffffffff8211156129de576129de612964565b50601f01601f191660200190565b600082601f8301126129fd57600080fd5b8135612a10612a0b826129c4565b612993565b818152846020838601011115612a2557600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114611ab657600080fd5b60008060408385031215612a6357600080fd5b823567ffffffffffffffff811115612a7a57600080fd5b612a86858286016129ec565b9250506020830135612a9781612a42565b809150509250929050565b600060208284031215612ab457600080fd5b81356107ae816128d0565b600080600060608486031215612ad457600080fd5b83359250602084013567ffffffffffffffff811115612af257600080fd5b612afe868287016129ec565b9250506040840135612b0f81612a42565b809150509250925092565b60008060008060008060c08789031215612b3357600080fd5b863595506020870135612b45816128d0565b945060408701359350606087013592506080870135612b63816128d0565b915060a087013567ffffffffffffffff811115612b7f57600080fd5b612b8b89828a016129ec565b9150509295509295509295565b60008060408385031215612bab57600080fd5b823591506020830135612a97816128d0565b600060208284031215612bcf57600080fd5b5035919050565b600080600060408486031215612beb57600080fd5b833567ffffffffffffffff80821115612c0357600080fd5b908501906101a08288031215612c1857600080fd5b90935060208501359080821115612c2e57600080fd5b818601915086601f830112612c4257600080fd5b813581811115612c5157600080fd5b876020828501011115612c6357600080fd5b6020830194508093505050509250925092565b60005b83811015612c91578181015183820152602001612c79565b50506000910152565b60008151808452612cb2816020860160208601612c76565b601f01601f19169290920160200192915050565b8581526001600160a01b038516602082015260ff8416604082015260a060608201526000612cf760a0830185612c9a565b8281036080840152612d098185612c9a565b98975050505050505050565b600080600080600080600080610100898b031215612d3257600080fd5b883597506020890135612d44816128d0565b96506040890135612d54816128d0565b9550606089013594506080890135935060a0890135925060c0890135612d79816128d0565b915060e089013567ffffffffffffffff811115612d9557600080fd5b612da18b828c016129ec565b9150509295985092959890939650565b600060608284031215612dc357600080fd5b6040516060810181811067ffffffffffffffff82111715612de657612de6612964565b604052825181526020830151612dfb816128d0565b60208201526040928301519281019290925250919050565b81810381811115610619577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b602081528151602082015260006020830151612e7460408401826001600160a01b03169052565b5060408301516060830152606083015160808301526080830151612ea360a08401826001600160a01b03169052565b5060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610160808401919091528301516101a0610180808501829052612f216101c0860184612c9a565b90860151858203601f190183870152909250612f3d8382612c9a565b9695505050505050565b600060208284031215612f5957600080fd5b5051919050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612f9557600080fd5b830160208101925035905067ffffffffffffffff811115612fb557600080fd5b803603821315612fc457600080fd5b9250929050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6020815281356020820152600061300f602084016128e5565b6001600160a01b038116604084015250604083013560608301526060830135608083015261303f608084016128e5565b6001600160a01b03811660a08401525061305b60a084016128e5565b6001600160a01b03811660c08401525061307760c084016128e5565b6001600160a01b03811660e08401525061010060e0840135818401526101208185013581850152610140915080850135828501525061016081850135818501526130c381860186612f60565b925090506101a061018081818701526130e16101c087018585612fcb565b93506130ef81880188612f60565b93509050601f198685030182870152613109848483612fcb565b979650505050505050565b848152836020820152606060408201526000612f3d606083018486612fcb565b60006020828403121561314657600080fd5b81516107ae81612a42565b600181811c9082168061316557607f821691505b60208210810361319e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60ff81168114611ab657600080fd5b6000602082840312156131c557600080fd5b81516107ae816131a4565b6000602082840312156131e257600080fd5b815167ffffffffffffffff8111156131f957600080fd5b8201601f8101841361320a57600080fd5b8051613218612a0b826129c4565b81815285602083850101111561322d57600080fd5b61323e826020830160208601612c76565b95945050505050565b6080815284516080820152600060208601516001600160a01b0380821660a085015260ff60408901511660c08501526060880151915060a060e0850152613292610120850183612c9a565b915060808801517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80858403016101008601526132ce8382612c9a565b9188166020860152506001600160a01b038616604085015291506132ef9050565b82606083015295945050505050565b60008351613310818460208801612c76565b7f2e00000000000000000000000000000000000000000000000000000000000000908301908152835161334a816001840160208801612c76565b01600101949350505050565b6020815260006106166020830184612c9a565b60006020828403121561337b57600080fd5b81516107ae816128d0565b7f41523a7a65726f416464723a00000000000000000000000000000000000000008152600082516133be81600c850160208701612c76565b91909101600c0192915050565b6000602082840312156133dd57600080fd5b81356107ae816131a4565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261341d57600080fd5b83018035915067ffffffffffffffff82111561343857600080fd5b602001915036819003821315612fc457600080fd5b828482377f286272696467656400000000000000000000000000000000000000000000000092019182527ff09f8c88000000000000000000000000000000000000000000000000000000006008830152600c8201527f2900000000000000000000000000000000000000000000000000000000000000602c820152602d01919050565b60006001600160a01b03808a16835280891660208401525086604083015260ff8616606083015260c0608083015261350c60c083018587612fcb565b82810360a084015261351e8185612c9a565b9a9950505050505050505050565b601f821115610f1157600081815260208120601f850160051c810160208610156135535750805b601f850160051c820191505b81811015610ad35782815560010161355f565b67ffffffffffffffff83111561358a5761358a612964565b61359e836135988354613151565b8361352c565b6000601f8411600181146135f057600085156135ba5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355613668565b600083815260209020601f19861690835b828110156136215786850135825560209485019460019092019101613601565b508682101561365c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81358155600181016020830135613685816128d0565b81546040850135613695816131a4565b74ff00000000000000000000000000000000000000008160a01b166001600160a01b0384167fffffffffffffffffffffff000000000000000000000000000000000000000000841617178455505050506136f260608301836133e8565b613700818360028601613572565b505061370f60808301836133e8565b610603818360038601613572565b606081526000613731606083018789612fcb565b8281036020840152613744818688612fcb565b91505060ff831660408301529695505050505050565b6000825161376c818460208701612c76565b919091019291505056fe608060405234801561001057600080fd5b50612131806100206000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806367e828bf116100e35780638da5cb5b1161008c578063a9059cbb11610066578063a9059cbb146103b4578063dd62ed3e146103c7578063f2fde38b1461040d57600080fd5b80638da5cb5b1461037b57806395d89b4114610399578063a457c2d7146103a157600080fd5b8063715018a6116100bd578063715018a61461034057806377be18a8146103485780637cf8ed0d1461035b57600080fd5b806367e828bf146102a75780636c0db62b146102f757806370a082311461030a57600080fd5b806323b872dd116101455780633ab76e9f1161011f5780633ab76e9f1461026b57806342e91bb31461028957806349d126051461029e57600080fd5b806323b872dd14610230578063313ce56714610243578063395093511461025857600080fd5b80630ca4dffd116101765780630ca4dffd146101d357806318160ddd1461020b5780631be2bfa71461021d57600080fd5b806306fdde0314610192578063095ea7b3146101b0575b600080fd5b61019a610420565b6040516101a79190611abd565b60405180910390f35b6101c36101be366004611b30565b6104b2565b60405190151581526020016101a7565b6101e66101e1366004611c4b565b6104cc565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b60cb545b6040519081526020016101a7565b6101e661022b366004611c99565b6104e0565b6101c361023e366004611cf0565b6104f5565b60ce5460405160ff90911681526020016101a7565b6101c3610266366004611b30565b610551565b60975473ffffffffffffffffffffffffffffffffffffffff166101e6565b61029c610297366004611b30565b61059d565b005b61020f60fc5481565b6102cb60fb5460fc5473ffffffffffffffffffffffffffffffffffffffff90911691565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b61029c610305366004611d31565b6106a1565b61020f610318366004611ddb565b73ffffffffffffffffffffffffffffffffffffffff16600090815260c9602052604090205490565b61029c6108eb565b61029c610356366004611b30565b6108ff565b60fb546101e69073ffffffffffffffffffffffffffffffffffffffff1681565b60655473ffffffffffffffffffffffffffffffffffffffff166101e6565b61019a6109f6565b6101c36103af366004611b30565b610a05565b6101c36103c2366004611b30565b610ac7565b61020f6103d5366004611df8565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260ca6020908152604080832093909416825291909152205490565b61029c61041b366004611ddb565b610b22565b606060cc805461042f90611e31565b80601f016020809104026020016040519081016040528092919081815260200182805461045b90611e31565b80156104a85780601f1061047d576101008083540402835291602001916104a8565b820191906000526020600020905b81548152906001019060200180831161048b57829003601f168201915b5050505050905090565b6000336104c0818585610bbf565b60019150505b92915050565b60006104d9468484610d3e565b9392505050565b60006104ed848484610d3e565b949350505050565b60003073ffffffffffffffffffffffffffffffffffffffff841603610546576040517f669bcddc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ed848484610e89565b33600081815260ca6020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906104c09082908690610598908790611eb3565b610bbf565b6040518060400160405280600b81526020017f746f6b656e5f7661756c740000000000000000000000000000000000000000008152506105de8160006104cc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610642576040517f1b0b999e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61064c8383610ea2565b8273ffffffffffffffffffffffffffffffffffffffff167f397b33b307fc137878ebfc75b295289ec0ee25a31bb5bf034f33256fe8ea2aa68360405161069491815260200190565b60405180910390a2505050565b600054610100900460ff16158080156106c15750600054600160ff909116105b806106db5750303b1580156106db575060005460ff166001145b6107525760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156107b057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff861615806107d1575084155b806107db57504685145b806107e557508251155b806107ef57508151155b15610826576040517ff12d598000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61082f87610f60565b61083a828486610f79565b60fb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff881617905560fc85905580156108e257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6108f3611006565b6108fd600061106d565b565b6040518060400160405280600b81526020017f746f6b656e5f7661756c740000000000000000000000000000000000000000008152506109408160006104cc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109a4576040517f1b0b999e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109ae83836110e4565b8273ffffffffffffffffffffffffffffffffffffffff167f9b5b9a05e4726d8bb959f1440e05c6b8109443f2083bc4e386237d76545265538360405161069491815260200190565b606060cd805461042f90611e31565b33600081815260ca6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610aaf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610749565b610abc8286868403610bbf565b506001949350505050565b60003073ffffffffffffffffffffffffffffffffffffffff841603610b18576040517f669bcddc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104d98383611255565b610b2a611006565b73ffffffffffffffffffffffffffffffffffffffff8116610bb35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610749565b610bbc8161106d565b50565b73ffffffffffffffffffffffffffffffffffffffff8316610c475760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610749565b73ffffffffffffffffffffffffffffffffffffffff8216610cd05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610749565b73ffffffffffffffffffffffffffffffffffffffff838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080610d4a85611263565b84604051602001610d5c929190611ec6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526097547fbf40fac100000000000000000000000000000000000000000000000000000000835290925073ffffffffffffffffffffffffffffffffffffffff169063bf40fac190610ddf908490600401611abd565b602060405180830381865afa158015610dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e209190611f1e565b915082610e815760405173ffffffffffffffffffffffffffffffffffffffff8316151590610e52908390602001611f3b565b60405160208183030381529060405290610e7f5760405162461bcd60e51b81526004016107499190611abd565b505b509392505050565b600033610e97858285611321565b610abc8585856113de565b73ffffffffffffffffffffffffffffffffffffffff8216610f055760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610749565b8060cb6000828254610f179190611eb3565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260c9602052604081208054839290610f51908490611eb3565b90915550610f5c9050565b5050565b610f68611643565b610f706116c8565b610bbc8161174d565b600054610100900460ff16610ff65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610749565b6110018383836117e1565b505050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146108fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610749565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff821661116d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610749565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260c96020526040902054818110156112095760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610749565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260c960205260408120838303905560cb8054849290611245908490611f80565b9091555061100190508360008483565b6000336104c08185856113de565b60606000611270836118ae565b600101905060008167ffffffffffffffff81111561129057611290611b5c565b6040519080825280601f01601f1916602001820160405280156112ba576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846112c457509392505050565b73ffffffffffffffffffffffffffffffffffffffff838116600090815260ca60209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113d857818110156113cb5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610749565b6113d88484848403610bbf565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166114675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610749565b73ffffffffffffffffffffffffffffffffffffffff82166114f05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610749565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260c960205260409020548181101561158c5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610749565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260c960205260408082208585039055918516815290812080548492906115d0908490611eb3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161163691815260200190565b60405180910390a36113d8565b600054610100900460ff166116c05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610749565b6108fd611990565b600054610100900460ff166117455760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610749565b6108fd611a13565b73ffffffffffffffffffffffffffffffffffffffff811661179a576040517f9a109b0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff1661185e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610749565b60cc61186a8482611fe1565b5060cd6118778382611fe1565b5060ce80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790555050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106118f7577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611923576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061194157662386f26fc10000830492506010015b6305f5e1008310611959576305f5e100830492506008015b612710831061196d57612710830492506004015b6064831061197f576064830492506002015b600a83106104c65760010192915050565b600054610100900460ff16611a0d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610749565b60018055565b600054610100900460ff16611a905760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610749565b6108fd3361106d565b60005b83811015611ab4578181015183820152602001611a9c565b50506000910152565b6020815260008251806020840152611adc816040850160208701611a99565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610bbc57600080fd5b60008060408385031215611b4357600080fd5b8235611b4e81611b0e565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112611b9c57600080fd5b813567ffffffffffffffff80821115611bb757611bb7611b5c565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611bfd57611bfd611b5c565b81604052838152866020858801011115611c1657600080fd5b836020870160208301376000602085830101528094505050505092915050565b80358015158114611c4657600080fd5b919050565b60008060408385031215611c5e57600080fd5b823567ffffffffffffffff811115611c7557600080fd5b611c8185828601611b8b565b925050611c9060208401611c36565b90509250929050565b600080600060608486031215611cae57600080fd5b83359250602084013567ffffffffffffffff811115611ccc57600080fd5b611cd886828701611b8b565b925050611ce760408501611c36565b90509250925092565b600080600060608486031215611d0557600080fd5b8335611d1081611b0e565b92506020840135611d2081611b0e565b929592945050506040919091013590565b60008060008060008060c08789031215611d4a57600080fd5b8635611d5581611b0e565b95506020870135611d6581611b0e565b945060408701359350606087013560ff81168114611d8257600080fd5b9250608087013567ffffffffffffffff80821115611d9f57600080fd5b611dab8a838b01611b8b565b935060a0890135915080821115611dc157600080fd5b50611dce89828a01611b8b565b9150509295509295509295565b600060208284031215611ded57600080fd5b81356104d981611b0e565b60008060408385031215611e0b57600080fd5b8235611e1681611b0e565b91506020830135611e2681611b0e565b809150509250929050565b600181811c90821680611e4557607f821691505b602082108103611e7e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156104c6576104c6611e84565b60008351611ed8818460208801611a99565b7f2e000000000000000000000000000000000000000000000000000000000000009083019081528351611f12816001840160208801611a99565b01600101949350505050565b600060208284031215611f3057600080fd5b81516104d981611b0e565b7f41523a7a65726f416464723a0000000000000000000000000000000000000000815260008251611f7381600c850160208701611a99565b91909101600c0192915050565b818103818111156104c6576104c6611e84565b601f82111561100157600081815260208120601f850160051c81016020861015611fba5750805b601f850160051c820191505b81811015611fd957828155600101611fc6565b505050505050565b815167ffffffffffffffff811115611ffb57611ffb611b5c565b61200f816120098454611e31565b84611f93565b602080601f831160018114612062576000841561202c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611fd9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156120af57888601518255948401946001909101908401612090565b50858210156120eb57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b0190555056fea264697066735822122097aea87c926aeac94c95489d7f3674e61115440bca078ca4ef2af4eae4f9fea364736f6c63430008120033a264697066735822122089e27a345c7c6ec2e044b333ee9138d2f0743901e70542a655eb5279da9b965b64736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000003": { + "contractName": "EtherVault", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000000000777700000000000000000000000000000006", + "0x029ae2e2f1d6964720a0fa7e6ffa902f995c156242f4f5a930aa9d9765d167d0": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "code": "0x6080604052600436106100c05760003560e01c8063715018a611610074578063d73bb3d01161004e578063d73bb3d014610257578063f2fde38b14610277578063fe9fbb801461029757600080fd5b8063715018a6146101f75780638da5cb5b1461020c578063ba0bbd951461023757600080fd5b80631be2bfa7116100a55780631be2bfa71461018c5780632d1fb389146101ac5780633ab76e9f146101cc57600080fd5b80630ca4dffd1461012257806319ab453c1461016c57600080fd5b3661011d5747158015906100e4575033600090815260c9602052604090205460ff16155b1561011b576040517f4fa3f24500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b34801561012e57600080fd5b5061014261013d36600461119e565b6102ed565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561017857600080fd5b5061011b61018736600461120e565b610301565b34801561019857600080fd5b506101426101a736600461122b565b61049a565b3480156101b857600080fd5b5061011b6101c7366004611282565b6104af565b3480156101d857600080fd5b5060975473ffffffffffffffffffffffffffffffffffffffff16610142565b34801561020357600080fd5b5061011b6105c6565b34801561021857600080fd5b5060655473ffffffffffffffffffffffffffffffffffffffff16610142565b34801561024357600080fd5b5061011b6102523660046112ae565b6105da565b34801561026357600080fd5b5061011b6102723660046112da565b6106f1565b34801561028357600080fd5b5061011b61029236600461120e565b61078d565b3480156102a357600080fd5b506102dd6102b236600461120e565b73ffffffffffffffffffffffffffffffffffffffff16600090815260c9602052604090205460ff1690565b6040519015158152602001610163565b60006102fa468484610841565b9392505050565b600054610100900460ff16158080156103215750600054600160ff909116105b8061033b5750303b15801561033b575060005460ff166001145b6103cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561042a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610433826109a6565b801561049657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60006104a7848484610841565b949350505050565b6104b76109bf565b73ffffffffffffffffffffffffffffffffffffffff82161580610505575073ffffffffffffffffffffffffffffffffffffffff8216600090815260c9602052604090205460ff161515811515145b1561053c576040517f6faf7e9c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216600081815260c9602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf910160405180910390a25050565b6105ce6109bf565b6105d86000610a40565b565b33600090815260c9602052604090205460ff16610623576040517f4fa3f24500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61062b610ab7565b73ffffffffffffffffffffffffffffffffffffffff8216610678576040517f687563df00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61069873ffffffffffffffffffffffffffffffffffffffff831682610b2a565b8173ffffffffffffffffffffffffffffffffffffffff167f7b9f77d35803cd201eac9c4ed739bc1fcd3f1be6ab8877d925d1e55517b6fd6e826040516106e091815260200190565b60405180910390a261049660018055565b33600090815260c9602052604090205460ff1661073a576040517f4fa3f24500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610742610ab7565b61074c3382610b2a565b60405181815233907f7b9f77d35803cd201eac9c4ed739bc1fcd3f1be6ab8877d925d1e55517b6fd6e9060200160405180910390a261078a60018055565b50565b6107956109bf565b73ffffffffffffffffffffffffffffffffffffffff8116610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103c3565b61078a81610a40565b60008061084d85610c05565b8460405160200161085f929190611317565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526097547fbf40fac100000000000000000000000000000000000000000000000000000000835290925073ffffffffffffffffffffffffffffffffffffffff169063bf40fac1906108e290849060040161136f565b602060405180830381865afa1580156108ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092391906113c0565b91508261099e5760405173ffffffffffffffffffffffffffffffffffffffff83161515906109559083906020016113dd565b6040516020818303038152906040529061099c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c3919061136f565b505b509392505050565b6109ae610cc3565b6109b6610d62565b61078a81610e01565b60655473ffffffffffffffffffffffffffffffffffffffff1633146105d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c3565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600260015403610b23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103c3565b6002600155565b80156104965760008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610b8a576040519150601f19603f3d011682016040523d82523d6000602084013e610b8f565b606091505b5050905080610bfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f455448207472616e73666572206661696c65640000000000000000000000000060448201526064016103c3565b505050565b60018055565b60606000610c1283610e95565b600101905060008167ffffffffffffffff811115610c3257610c326110af565b6040519080825280601f01601f191660200182016040528015610c5c576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610c6657509392505050565b600054610100900460ff16610d5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c3565b6105d8610f78565b600054610100900460ff16610df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c3565b6105d861100f565b73ffffffffffffffffffffffffffffffffffffffff8116610e4e576040517f9a109b0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610ede577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610f0a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610f2857662386f26fc10000830492506010015b6305f5e1008310610f40576305f5e100830492506008015b6127108310610f5457612710830492506004015b60648310610f66576064830492506002015b600a8310610f72576001015b92915050565b600054610100900460ff16610bff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c3565b600054610100900460ff166110a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016103c3565b6105d833610a40565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126110ef57600080fd5b813567ffffffffffffffff8082111561110a5761110a6110af565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611150576111506110af565b8160405283815286602085880101111561116957600080fd5b836020870160208301376000602085830101528094505050505092915050565b8035801515811461119957600080fd5b919050565b600080604083850312156111b157600080fd5b823567ffffffffffffffff8111156111c857600080fd5b6111d4858286016110de565b9250506111e360208401611189565b90509250929050565b73ffffffffffffffffffffffffffffffffffffffff8116811461078a57600080fd5b60006020828403121561122057600080fd5b81356102fa816111ec565b60008060006060848603121561124057600080fd5b83359250602084013567ffffffffffffffff81111561125e57600080fd5b61126a868287016110de565b92505061127960408501611189565b90509250925092565b6000806040838503121561129557600080fd5b82356112a0816111ec565b91506111e360208401611189565b600080604083850312156112c157600080fd5b82356112cc816111ec565b946020939093013593505050565b6000602082840312156112ec57600080fd5b5035919050565b60005b8381101561130e5781810151838201526020016112f6565b50506000910152565b600083516113298184602088016112f3565b7f2e0000000000000000000000000000000000000000000000000000000000000090830190815283516113638160018401602088016112f3565b01600101949350505050565b602081526000825180602084015261138e8160408501602087016112f3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156113d257600080fd5b81516102fa816111ec565b7f41523a7a65726f416464723a000000000000000000000000000000000000000081526000825161141581600c8501602087016112f3565b91909101600c019291505056fea26469706673582212205ba76b4da10c920143efe8a59a5126aa1d82a4e0405a1710388f185b06f3d9e964736f6c63430008120033", + "balance": "0xffffffffffffff59776f94274fffffff" + }, + "0x0000777700000000000000000000000000000007": { + "contractName": "SignalService", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000000000777700000000000000000000000000000006" + }, + "code": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80635221f613116100815780638da5cb5b1161005b5780638da5cb5b146101b0578063f2fde38b146101ce578063f8f3f844146101e157600080fd5b80635221f6131461017457806366ca2bc014610187578063715018a6146101a857600080fd5b80631be2bfa7116100b25780631be2bfa71461012057806332676bc6146101335780633ab76e9f1461015657600080fd5b80630ca4dffd146100ce57806319ab453c1461010b575b600080fd5b6100e16100dc366004611c53565b61020b565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61011e610119366004611cd7565b610221565b005b6100e161012e366004611cf4565b6103ba565b610146610141366004611d4f565b6103cf565b6040519015158152602001610102565b60975473ffffffffffffffffffffffffffffffffffffffff166100e1565b610146610182366004611d7b565b61047a565b61019a610195366004611e11565b610767565b604051908152602001610102565b61011e6107c3565b60655473ffffffffffffffffffffffffffffffffffffffff166100e1565b61011e6101dc366004611cd7565b6107d7565b61019a6101ef366004611d4f565b6040805192835260208301919091528082206060909201905290565b600061021846848461088e565b90505b92915050565b600054610100900460ff16158080156102415750600054600160ff909116105b8061025b5750303b15801561025b575060005460ff166001145b6102ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561034a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610353826109f3565b80156103b657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60006103c784848461088e565b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff831661041e576040517fa99bf91a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000829003610459576040517f053c769c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080519283526020830191909152808220606090920190525460011490565b60004686036104b5576040517fe822b48d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610502576040517fa99bf91a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084900361053d576040517f053c769c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061054b83850185611ed0565b9050600061058f6040518060400160405280600581526020017f7461696b6f000000000000000000000000000000000000000000000000000000815250600061020b565b825161010001516040517f25bf86f20000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015273ffffffffffffffffffffffffffffffffffffffff91909116906325bf86f290602401602060405180830381865afa158015610615573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106399190612075565b905080158015906106535750815161065090610a0c565b81145b801561075b575073B51f0f2bdCbf6cfabB35239921A5c672519F74ba63960304398360000151606001516106be8b6040518060400160405280600e81526020017f7369676e616c5f7365727669636500000000000000000000000000000000000081525060006103ba565b604080518c8152602081018c9052818120606090910190915260208701516040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815261071a949392916001916004016120fc565b602060405180830381865af4158015610737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075b9190612148565b98975050505050505050565b60008181036107a2576040517f053c769c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50604080513381526020810192909252808220606090920190526001815590565b6107cb610a31565b6107d56000610ab2565b565b6107df610a31565b73ffffffffffffffffffffffffffffffffffffffff8116610882576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102e3565b61088b81610ab2565b50565b60008061089a85610b29565b846040516020016108ac929190612165565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526097547fbf40fac100000000000000000000000000000000000000000000000000000000835290925073ffffffffffffffffffffffffffffffffffffffff169063bf40fac19061092f9084906004016121bd565b602060405180830381865afa15801561094c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097091906121d0565b9150826109eb5760405173ffffffffffffffffffffffffffffffffffffffff83161515906109a29083906020016121ed565b604051602081830303815290604052906109e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102e391906121bd565b505b509392505050565b6109fb610be7565b610a03610c86565b61088b81610d25565b600080610a22610a1d846000610db9565b6111fd565b80516020909101209392505050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146107d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102e3565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606000610b3683611241565b600101905060008167ffffffffffffffff811115610b5657610b56611b1e565b6040519080825280601f01601f191660200182016040528015610b80576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610b8a57509392505050565b600054610100900460ff16610c7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e3565b6107d5611323565b600054610100900460ff16610d1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e3565b6107d56113c0565b73ffffffffffffffffffffffffffffffffffffffff8116610d72576040517f9a109b0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61020082015160609015610e2557610dd2826011612290565b67ffffffffffffffff811115610dea57610dea611b1e565b604051908082528060200260200182016040528015610e1d57816020015b6060815260200190600190039081610e085790505b509050610e95565b6101e083015115610e3b57610dd2826010612290565b610e4682600f612290565b67ffffffffffffffff811115610e5e57610e5e611b1e565b604051908082528060200260200182016040528015610e9157816020015b6060815260200190600190039081610e7c5790505b5090505b8251610ea090611460565b81600081518110610eb357610eb36122a3565b6020026020010181905250610ecb8360200151611460565b81600181518110610ede57610ede6122a3565b6020026020010181905250610ef68360400151611473565b81600281518110610f0957610f096122a3565b6020026020010181905250610f218360600151611460565b81600381518110610f3457610f346122a3565b6020026020010181905250610f4c8360800151611460565b81600481518110610f5f57610f5f6122a3565b6020026020010181905250610f778360a00151611460565b81600581518110610f8a57610f8a6122a3565b6020026020010181905250610fc18360c00151604051602001610fad91906122d2565b6040516020818303038152906040526114af565b81600681518110610fd457610fd46122a3565b6020026020010181905250610fec8360e0015161151e565b81600781518110610fff57610fff6122a3565b602002602001018190525061102a8361010001516fffffffffffffffffffffffffffffffff1661151e565b8160088151811061103d5761103d6122a3565b602002602001018190525061105683610120015161152c565b81600981518110611069576110696122a3565b602002602001018190525061108283610140015161152c565b81600a81518110611095576110956122a3565b60200260200101819052506110ae83610160015161152c565b81600b815181106110c1576110c16122a3565b60200260200101819052506110da8361018001516114af565b81600c815181106110ed576110ed6122a3565b6020026020010181905250611106836101a00151611460565b81600d81518110611119576111196122a3565b6020026020010181905250611168836101c00151604051602001610fad919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b81600e8151811061117b5761117b6122a3565b6020026020010181905250826101e001516000146111c0576111a1836101e0015161151e565b81600f815181106111b4576111b46122a3565b60200260200101819052505b6102008301511561021b576111d9836102000151611460565b816010815181106111ec576111ec6122a3565b602002602001018190525092915050565b6060600061120a83611544565b9050611218815160c0611678565b8160405160200161122a929190612307565b604051602081830303815290604052915050919050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061128a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106112b6576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106112d457662386f26fc10000830492506010015b6305f5e10083106112ec576305f5e100830492506008015b612710831061130057612710830492506004015b60648310611312576064830492506002015b600a831061021b5760010192915050565b600054610100900460ff166113ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e3565b60018055565b600054610100900460ff16611457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102e3565b6107d533610ab2565b606061021b61146e83611860565b6114af565b604051606082811b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208301529061021b90603401610fad565b606080825160011480156114dd57506080836000815181106114d3576114d36122a3565b016020015160f81c105b156114e957508161021b565b6114f583516080611678565b83604051602001611507929190612307565b604051602081830303815290604052905092915050565b606061021b61146e83611948565b606061021b61146e8367ffffffffffffffff16611948565b6060815160000361156357505060408051600081526020810190915290565b6000805b83518110156115a857838181518110611582576115826122a3565b602002602001015151826115969190612290565b91506115a181612336565b9050611567565b60008267ffffffffffffffff8111156115c3576115c3611b1e565b6040519080825280601f01601f1916602001820160405280156115ed576020820181803683370190505b50600092509050602081015b855183101561166f576000868481518110611616576116166122a3565b60200260200101519050600060208201905061163483828451611aa3565b878581518110611646576116466122a3565b6020026020010151518361165a9190612290565b925050508261166890612336565b92506115f9565b50949350505050565b60608060388410156116f757604080516001808252818301909252906020820181803683370190505090506116ad838561236e565b60f81b816000815181106116c3576116c36122a3565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610218565b600060015b6117068187612387565b156117295761171482612336565b91506117226101008261239b565b90506116fc565b611734826001612290565b67ffffffffffffffff81111561174c5761174c611b1e565b6040519080825280601f01601f191660200182016040528015611776576020820181803683370190505b509250611783858361236e565b61178e90603761236e565b60f81b836000815181106117a4576117a46122a3565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190505b8181116109e9576101006117ec82846123b2565b6117f8906101006124e5565b6118029088612387565b61180c91906124f1565b60f81b838281518110611821576118216122a3565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061185981612336565b90506117d8565b606060008260405160200161187791815260200190565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815260208084528383019092529250600091829160208201818036833701905050905060005b815181101561166f5783836118da81612336565b9450815181106118ec576118ec6122a3565b602001015160f81c60f81b828281518110611909576119096122a3565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061194181612336565b90506118c6565b606060008260405160200161195f91815260200190565b604051602081830303815290604052905060005b60208110156119cc5781818151811061198e5761198e6122a3565b01602001517fff00000000000000000000000000000000000000000000000000000000000000166000036119cc576119c581612336565b9050611973565b60006119d98260206123b2565b67ffffffffffffffff8111156119f1576119f1611b1e565b6040519080825280601f01601f191660200182016040528015611a1b576020820181803683370190505b50905060005b815181101561166f578383611a3581612336565b945081518110611a4757611a476122a3565b602001015160f81c60f81b828281518110611a6457611a646122a3565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611a9c81612336565b9050611a21565b8282825b60208110611adf5781518352611abe602084612290565b9250611acb602083612290565b9150611ad86020826123b2565b9050611aa7565b905182516020929092036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169116179052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611b7057611b70611b1e565b60405290565b604051610220810167ffffffffffffffff81118282101715611b7057611b70611b1e565b600082601f830112611bab57600080fd5b813567ffffffffffffffff80821115611bc657611bc6611b1e565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611c0c57611c0c611b1e565b81604052838152866020858801011115611c2557600080fd5b836020870160208301376000602085830101528094505050505092915050565b801515811461088b57600080fd5b60008060408385031215611c6657600080fd5b823567ffffffffffffffff811115611c7d57600080fd5b611c8985828601611b9a565b9250506020830135611c9a81611c45565b809150509250929050565b73ffffffffffffffffffffffffffffffffffffffff8116811461088b57600080fd5b8035611cd281611ca5565b919050565b600060208284031215611ce957600080fd5b813561021881611ca5565b600080600060608486031215611d0957600080fd5b83359250602084013567ffffffffffffffff811115611d2757600080fd5b611d3386828701611b9a565b9250506040840135611d4481611c45565b809150509250925092565b60008060408385031215611d6257600080fd5b8235611d6d81611ca5565b946020939093013593505050565b600080600080600060808688031215611d9357600080fd5b853594506020860135611da581611ca5565b935060408601359250606086013567ffffffffffffffff80821115611dc957600080fd5b818801915088601f830112611ddd57600080fd5b813581811115611dec57600080fd5b896020828501011115611dfe57600080fd5b9699959850939650602001949392505050565b600060208284031215611e2357600080fd5b5035919050565b600082601f830112611e3b57600080fd5b60405161010080820182811067ffffffffffffffff82111715611e6057611e60611b1e565b60405283018185821115611e7357600080fd5b845b82811015611e8d578035825260209182019101611e75565b509195945050505050565b80356fffffffffffffffffffffffffffffffff81168114611cd257600080fd5b803567ffffffffffffffff81168114611cd257600080fd5b600060208284031215611ee257600080fd5b813567ffffffffffffffff80821115611efa57600080fd5b9083019060408286031215611f0e57600080fd5b611f16611b4d565b823582811115611f2557600080fd5b83016103008188031215611f3857600080fd5b611f40611b76565b8135815260208201356020820152611f5a60408301611cc7565b6040820152606082013560608201526080820135608082015260a082013560a0820152611f8a8860c08401611e2a565b60c08201526101c08083013560e08301526101e0611fa9818501611e98565b610100840152610200611fbd818601611eb8565b610120850152611fd06102208601611eb8565b610140850152611fe36102408601611eb8565b61016085015261026085013587811115611ffc57600080fd5b6120088c828801611b9a565b610180860152506102808501356101a08501526120286102a08601611eb8565b838501526102c0850135828501526102e085013581850152505050808352505060208301358281111561205a57600080fd5b61206687828601611b9a565b60208301525095945050505050565b60006020828403121561208757600080fd5b5051919050565b60005b838110156120a9578181015183820152602001612091565b50506000910152565b600081518084526120ca81602086016020860161208e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b85815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015282606082015260a06080820152600061213d60a08301846120b2565b979650505050505050565b60006020828403121561215a57600080fd5b815161021881611c45565b6000835161217781846020880161208e565b7f2e0000000000000000000000000000000000000000000000000000000000000090830190815283516121b181600184016020880161208e565b01600101949350505050565b60208152600061021860208301846120b2565b6000602082840312156121e257600080fd5b815161021881611ca5565b7f41523a7a65726f416464723a000000000000000000000000000000000000000081526000825161222581600c85016020870161208e565b91909101600c0192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561021b5761021b612261565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008183825b60088110156122f75781518352602092830192909101906001016122d8565b5050506101008201905092915050565b6000835161231981846020880161208e565b83519083019061232d81836020880161208e565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361236757612367612261565b5060010190565b60ff818116838216019081111561021b5761021b612261565b60008261239657612396612232565b500490565b808202811582820484141761021b5761021b612261565b8181038181111561021b5761021b612261565b600181815b8085111561241e57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561240457612404612261565b8085161561241157918102915b93841c93908002906123ca565b509250929050565b6000826124355750600161021b565b816124425750600061021b565b816001811461245857600281146124625761247e565b600191505061021b565b60ff84111561247357612473612261565b50506001821b61021b565b5060208310610133831016604e8410600b84101617156124a1575081810a61021b565b6124ab83836123c5565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156124dd576124dd612261565b029392505050565b60006102188383612426565b60008261250057612500612232565b50069056fea26469706673582212209e7235233ea73cd822dc3fc71cb88aeed9bb6967b10cbcf6820dcc506b275d0164736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000005": { + "contractName": "TestERC20", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5072656465706c6f79455243323000000000000000000000000000000000001c", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5052450000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000000000000000002ee000", + "0x0fbcff3234c0e4fa090508601e67e2155e18580b7c6ab4cb716e8ef2dca88184": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x55385a0c2ad17c21b4fe396be9b1f10f500e7eebad11fcd1afe36c68ee5fa4cd": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x478db7f3c43c550c1670aa0517a6d515b9e15f22ea28e4f99e8c5f8bcf58e406": "0x00000000000000000000000000000000000000000000000000000000000fa000" + }, + "code": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610194578063a9059cbb146101a7578063dd62ed3e146101ba57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461018c57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d6610200565b6040516100e39190610908565b60405180910390f35b6100ff6100fa36600461099d565b610292565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f3660046109c7565b6102ac565b604051601281526020016100e3565b6100ff61015136600461099d565b6102d0565b610113610164366004610a03565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100d661031c565b6100ff6101a236600461099d565b61032b565b6100ff6101b536600461099d565b610401565b6101136101c8366004610a25565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461020f90610a58565b80601f016020809104026020016040519081016040528092919081815260200182805461023b90610a58565b80156102885780601f1061025d57610100808354040283529160200191610288565b820191906000526020600020905b81548152906001019060200180831161026b57829003601f168201915b5050505050905090565b6000336102a081858561040f565b60019150505b92915050565b6000336102ba8582856105c2565b6102c5858585610699565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102a09082908690610317908790610aab565b61040f565b60606004805461020f90610a58565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102c5828686840361040f565b6000336102a0818585610699565b73ffffffffffffffffffffffffffffffffffffffff83166104b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff8216610554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106935781811015610686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b610693848484840361040f565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831661073c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff82166107df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103eb565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610693565b600060208083528351808285015260005b8181101561093557858101830151858201604001528201610919565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461099857600080fd5b919050565b600080604083850312156109b057600080fd5b6109b983610974565b946020939093013593505050565b6000806000606084860312156109dc57600080fd5b6109e584610974565b92506109f360208501610974565b9150604084013590509250925092565b600060208284031215610a1557600080fd5b610a1e82610974565b9392505050565b60008060408385031215610a3857600080fd5b610a4183610974565b9150610a4f60208401610974565b90509250929050565b600181811c90821680610a6c57607f821691505b602082108103610aa5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b808201808211156102a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122066fafca01d431074160bbb4b6fc540b95eb31fa8c4479f896ac206b98463328464736f6c63430008120033", + "balance": "0x0" + } +} diff --git a/crates/chainspec/res/genesis/taiko/eldfell.json b/crates/chainspec/res/genesis/taiko/eldfell.json new file mode 100644 index 000000000000..b5938af70e40 --- /dev/null +++ b/crates/chainspec/res/genesis/taiko/eldfell.json @@ -0,0 +1,164 @@ +{ + "0x19B4F9C381C7927FE33D853e48b560141A380C44": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x88f66d67C0e643A541822cc326708530a827EC8E": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x2E610A0D8E30D6df2877B9c3EC3daDb885364800": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0xd56fbBb9C88938a61e9CA71339Abd5f84dF131Cf": { + "contractName": "LibTrieProof", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063a54274621461003a575b600080fd5b61004d61004836600461173e565b610061565b604051901515815260200160405180910390f35b600080806100718486018661188e565b6040516bffffffffffffffffffffffff1960608c901b166020820152919350915060009081906100b490603401604051602081830303815290604052858d610184565b915091508161010a5760405162461bcd60e51b815260206004820152601960248201527f4c54503a696e76616c6964206163636f756e742070726f6f660000000000000060448201526064015b60405180910390fd5b6000610115826101ad565b9050600061013c8260028151811061012f5761012f6118f2565b60200260200101516101e6565b90506101738b60405160200161015491815260200190565b60405160208183030381529060405261016c8c6102e9565b87846102fc565b9d9c50505050505050505050505050565b60006060600061019386610316565b90506101a0818686610348565b9250925050935093915050565b6040805180820182526000808252602091820152815180830190925282518252808301908201526060906101e090610423565b92915050565b600060218260000151111561023d5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610101565b600080600061024b8561060f565b91945092509050600081600181111561026657610266611908565b146102b35760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610101565b60008386602001516102c59190611934565b805190915060208410156102df5760208490036101000a90045b9695505050505050565b60606101e06102f783610959565b610a8d565b60008061030886610316565b90506102df81868686610afc565b6060818051906020012060405160200161033291815260200190565b6040516020818303038152906040529050919050565b60006060600061035785610b39565b90506000806000610369848a89610c32565b8151929550909350915015808061037d5750815b6103c95760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e0000000000006044820152606401610101565b6000816103e55760405180602001604052806000815250610411565b610411866103f4600188611947565b81518110610404576104046118f2565b6020026020010151611052565b919b919a509098505050505050505050565b60606000806104318461060f565b9193509091506001905081600181111561044d5761044d611908565b1461049a5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e0000000000000000006044820152606401610101565b6040805160208082526104208201909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816104b35790505090506000835b8651811015610604576020821061054c5760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201526939ba103632b733ba341760b11b6064820152608401610101565b6000806105896040518060400160405280858c6000015161056d9190611947565b8152602001858c602001516105829190611934565b905261060f565b5091509150604051806040016040528083836105a59190611934565b8152602001848b602001516105ba9190611934565b8152508585815181106105cf576105cf6118f2565b60209081029190910101526105e5600185611934565b93506105f18183611934565b6105fb9084611934565b925050506104e0565b508152949350505050565b6000806000808460000151116106675760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e00000000000000006044820152606401610101565b6020840151805160001a607f811161068c576000600160009450945094505050610952565b60b781116107085760006106a1608083611947565b9050808760000151116106f65760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e000000000000006044820152606401610101565b60019550935060009250610952915050565b60bf81116107f757600061071d60b783611947565b9050808760000151116107725760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e006044820152606401610101565b600183015160208290036101000a900461078c8183611934565b8851116107db5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e00000000000000006044820152606401610101565b6107e6826001611934565b965094506000935061095292505050565b60f7811161087257600061080c60c083611947565b9050808760000151116108615760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e0000000000000000006044820152606401610101565b600195509350849250610952915050565b600061087f60f783611947565b9050808760000151116108d45760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e0000006044820152606401610101565b600183015160208290036101000a90046108ee8183611934565b8851116109365760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b210292628103637b733903634b9ba1760511b6044820152606401610101565b610941826001611934565b965094506001935061095292505050565b9193909250565b606060008260405160200161097091815260200190565b604051602081830303815290604052905060005b60208110156109c55781818151811061099f5761099f6118f2565b01602001516001600160f81b0319166000036109c5576109be8161195a565b9050610984565b60006109d2826020611947565b67ffffffffffffffff8111156109ea576109ea6117eb565b6040519080825280601f01601f191660200182016040528015610a14576020820181803683370190505b50905060005b8151811015610a84578383610a2e8161195a565b945081518110610a4057610a406118f2565b602001015160f81c60f81b828281518110610a5d57610a5d6118f2565b60200101906001600160f81b031916908160001a905350610a7d8161195a565b9050610a1a565b50949350505050565b60608082516001148015610abb5750608083600081518110610ab157610ab16118f2565b016020015160f81c105b15610ac75750816101e0565b610ad383516080611079565b83604051602001610ae59291906119a3565b604051602081830303815290604052905092915050565b6000806000610b0c878686610348565b91509150818015610b2e57508051602080830191909120875191880191909120145b979650505050505050565b60606000610b46836101ad565b90506000815167ffffffffffffffff811115610b6457610b646117eb565b604051908082528060200260200182016040528015610ba957816020015b6040805180820190915260608082526020820152815260200190600190039081610b825790505b50905060005b8251811015610c2a576000610bdc848381518110610bcf57610bcf6118f2565b6020026020010151611223565b90506040518060400160405280610bf2836101ad565b815260200182815250838381518110610c0d57610c0d6118f2565b60200260200101819052505080610c239061195a565b9050610baf565b509392505050565b600060606000806000610c44876112b3565b90506000869050600080610c6b604051806040016040528060608152602001606081525090565b60005b8c5181101561102a578c8181518110610c8957610c896118f2565b602002602001015191508284610c9f9190611934565b9350610cac600188611934565b965083600003610d09578482602001518051906020012014610d045760405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b6044820152606401610101565b610dcb565b602082602001515110610d70578482602001518051906020012014610d045760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c206861736800000000006044820152606401610101565b84610d7e83602001516113ec565b14610dcb5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f646520686173680000000000006044820152606401610101565b610dd7601060016119c0565b60ff1682600001515103610e45578551841461102a576000868581518110610e0157610e016118f2565b01602001518351805160f89290921c925060009183908110610e2557610e256118f2565b60200260200101519050610e3881611414565b965060019450505061101a565b81515160011901610fd2576000610e5b8361144a565b9050600081600081518110610e7257610e726118f2565b016020015160f81c90506000610e896002836119ef565b610e94906002611a11565b90506000610ea5848360ff1661146e565b90506000610eb38b8a61146e565b90506000610ec183836114a4565b905060ff851660021480610ed8575060ff85166003145b15610f1257808351148015610eed5750808251145b15610eff57610efc818b611934565b99505b50600160ff1b995061102a945050505050565b60ff85161580610f25575060ff85166001145b15610f7b5782518114610f455750600160ff1b995061102a945050505050565b610f6c8860000151600181518110610f5f57610f5f6118f2565b6020026020010151611414565b9a50975061101a945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e206044820152650e0e4caccd2f60d31b6064820152608401610101565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e0000006044820152606401610101565b6110238161195a565b9050610c6e565b50600160ff1b84148661103d878661146e565b909e909d50909b509950505050505050505050565b805180516060916101e09161106990600190611947565b81518110610bcf57610bcf6118f2565b60608060388410156110e057604080516001808252818301909252906020820181803683370190505090506110ae83856119c0565b60f81b816000815181106110c4576110c46118f2565b60200101906001600160f81b031916908160001a90535061121c565b600060015b6110ef8187611a2a565b15611112576110fd8261195a565b915061110b61010082611a3e565b90506110e5565b61111d826001611934565b67ffffffffffffffff811115611135576111356117eb565b6040519080825280601f01601f19166020018201604052801561115f576020820181803683370190505b50925061116c85836119c0565b6111779060376119c0565b60f81b8360008151811061118d5761118d6118f2565b60200101906001600160f81b031916908160001a905350600190505b818111611219576101006111bd8284611947565b6111c990610100611b39565b6111d39088611a2a565b6111dd9190611b45565b60f81b8382815181106111f2576111f26118f2565b60200101906001600160f81b031916908160001a9053506112128161195a565b90506111a9565b50505b9392505050565b606060008060006112338561060f565b91945092509050600081600181111561124e5761124e611908565b1461129b5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e00000000000000006044820152606401610101565b6112aa8560200151848461151e565b95945050505050565b60606000825160026112c59190611a3e565b67ffffffffffffffff8111156112dd576112dd6117eb565b6040519080825280601f01601f191660200182016040528015611307576020820181803683370190505b50905060005b83518110156113e557600484828151811061132a5761132a6118f2565b01602001516001600160f81b031916901c82611347836002611a3e565b81518110611357576113576118f2565b60200101906001600160f81b031916908160001a9053506010848281518110611382576113826118f2565b0160200151611394919060f81c6119ef565b60f81b826113a3836002611a3e565b6113ae906001611934565b815181106113be576113be6118f2565b60200101906001600160f81b031916908160001a9053506113de8161195a565b905061130d565b5092915050565b600060208251101561140057506020015190565b818060200190518101906101e09190611b59565b600060606020836000015110156114355761142e836115c7565b9050611441565b61143e83611223565b90505b61121c816113ec565b60606101e06114698360000151600081518110610bcf57610bcf6118f2565b6112b3565b60608251821061148d57506040805160208101909152600081526101e0565b61121c838384865161149f9190611947565b6115d2565b6000805b8084511180156114b85750808351115b801561150957508281815181106114d1576114d16118f2565b602001015160f81c60f81b6001600160f81b0319168482815181106114f8576114f86118f2565b01602001516001600160f81b031916145b1561121c576115178161195a565b90506114a8565b606060008267ffffffffffffffff81111561153b5761153b6117eb565b6040519080825280601f01601f191660200182016040528015611565576020820181803683370190505b509050805160000361157857905061121c565b8484016020820160005b8581101561159a578281015182820152602001611582565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60606101e082611728565b6060816115e081601f611934565b101561161f5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610101565b8261162a8382611934565b10156116695760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610101565b6116738284611934565b845110156116b75760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610101565b6060821580156116d65760405191506000825260208201604052610a84565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561170f5780518352602092830192016116f7565b5050858452601f01601f19166040525050949350505050565b60606101e082602001516000846000015161151e565b60008060008060008060a0878903121561175757600080fd5b8635955060208701356001600160a01b038116811461177557600080fd5b94506040870135935060608701359250608087013567ffffffffffffffff808211156117a057600080fd5b818901915089601f8301126117b457600080fd5b8135818111156117c357600080fd5b8a60208285010111156117d557600080fd5b6020830194508093505050509295509295509295565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261181257600080fd5b813567ffffffffffffffff8082111561182d5761182d6117eb565b604051601f8301601f19908116603f01168101908282118183101715611855576118556117eb565b8160405283815286602085880101111561186e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156118a157600080fd5b823567ffffffffffffffff808211156118b957600080fd5b6118c586838701611801565b935060208501359150808211156118db57600080fd5b506118e885828601611801565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156101e0576101e061191e565b818103818111156101e0576101e061191e565b60006001820161196c5761196c61191e565b5060010190565b6000815160005b81811015611994576020818501810151868301520161197a565b50600093019283525090919050565b60006119b86119b28386611973565b84611973565b949350505050565b60ff81811683821601908111156101e0576101e061191e565b634e487b7160e01b600052601260045260246000fd5b600060ff831680611a0257611a026119d9565b8060ff84160691505092915050565b60ff82811682821603908111156101e0576101e061191e565b600082611a3957611a396119d9565b500490565b80820281158282048414176101e0576101e061191e565b600181815b80851115611a90578160001904821115611a7657611a7661191e565b80851615611a8357918102915b93841c9390800290611a5a565b509250929050565b600082611aa7575060016101e0565b81611ab4575060006101e0565b8160018114611aca5760028114611ad457611af0565b60019150506101e0565b60ff841115611ae557611ae561191e565b50506001821b6101e0565b5060208310610133831016604e8410600b8410161715611b13575081810a6101e0565b611b1d8383611a55565b8060001904821115611b3157611b3161191e565b029392505050565b600061121c8383611a98565b600082611b5457611b546119d9565b500690565b600060208284031215611b6b57600080fd5b505191905056fea26469706673582212200ce0b855958491d449296239ab0a499d51105fc25c306cacdd66eed473ebcf4164736f6c63430008140033", + "balance": "0x0" + }, + "0x3D242344128D1db694d798CF0Ad3dC778Aa77347": { + "contractName": "LibBridgeRetry", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209ad4b2c866dbe1263f15c72a9d9c6857d19b471dc0ffa8cba69fdd5d4cb102b864736f6c63430008140033", + "balance": "0x0" + }, + "0x9c7145F3B1EaB768364a9ff72318B9D7AeafB156": { + "contractName": "LibBridgeProcess", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220580d1b027125bdf07c98c62cba13a64e78c2192e8c0f84c6cef28804c6341ae864736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000006": { + "contractName": "ProxiedAddressManager", + "storage": {}, + "code": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063656b06a414610067578063715018a6146100b75780638da5cb5b146100c1578063decd8e39146100d2578063e1c7392a146100e5578063f2fde38b146100ed575b600080fd5b61009b610075366004610466565b60009182526065602090815260408084209284529190529020546001600160a01b031690565b6040516001600160a01b03909116815260200160405180910390f35b6100bf610100565b005b6033546001600160a01b031661009b565b6100bf6100e03660046104a4565b610114565b6100bf6101d4565b6100bf6100fb3660046104d9565b6102ea565b610108610360565b61011260006103ba565b565b61011c610360565b6001600160a01b0381163b15801561013c57506001600160a01b03811633145b1561015a57604051633baa901360e21b815260040160405180910390fd5b600083815260656020908152604080832085845282529182902080546001600160a01b038581166001600160a01b0319831681179093558451928352169181018290529091849186917fe41a6e8584d6e19a0dfc5f9331be4ebe61b5f025d45da164c9ca6ee9b837cea9910160405180910390a350505050565b600054610100900460ff16158080156101f45750600054600160ff909116105b8061020e5750303b15801561020e575060005460ff166001145b6102765760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610299576000805461ff0019166101001790555b6102a161040c565b80156102e7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6102f2610360565b6001600160a01b0381166103575760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161026d565b6102e7816103ba565b6033546001600160a01b031633146101125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161026d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166104335760405162461bcd60e51b815260040161026d906104fb565b610112600054610100900460ff1661045d5760405162461bcd60e51b815260040161026d906104fb565b610112336103ba565b6000806040838503121561047957600080fd5b50508035926020909101359150565b80356001600160a01b038116811461049f57600080fd5b919050565b6000806000606084860312156104b957600080fd5b83359250602084013591506104d060408501610488565b90509250925092565b6000602082840312156104eb57600080fd5b6104f482610488565b9392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220d1b8f83f17d2971223f345076e2c8b1982272c271a0ce36e6b3541cd15bd267964736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000006": { + "contractName": "AddressManagerProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0xa2985d6ec808cf8e4351b74656a3169ef9f5ae53c52585f208ff047513b6b22f": "0x0000000000000000000000001000777700000000000000000000000000000001", + "0xab0df58d0c513f542551f7cf89c05da0610fe5e3092a4b838d7d8529d492ecf0": "0x0000000000000000000000001000777700000000000000000000000000000004", + "0x56e7eae2fe6d26fea53c92b4b72c70c097b4c6cb841f2560628bc18c65113ede": "0x0000000000000000000000001000777700000000000000000000000000000002", + "0x7b5ab0263db4edc4cd0bef661062356260cf371a7955689e8739ce5188c0e9fe": "0x0000000000000000000000001000777700000000000000000000000000000003", + "0x62856d7e6e6c45fe7cca6dc9dc0aff508e9e029ca538a20a7d2086827adddfda": "0x0000000000000000000000001000777700000000000000000000000000000007", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000006" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220caef1c2a647344b8936c2def885861b955c9b56ccb762c5243ac8ec49af2096f64736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000001": { + "contractName": "ProxiedTaikoL2", + "storage": {}, + "code": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80639ee512f2116100b8578063c7b969081161007c578063c7b96908146102f3578063da69d3db1461030d578063dac5df7814610320578063ee82ac5e14610329578063f2fde38b1461033c578063f535bd561461034f57600080fd5b80639ee512f21461028e578063a86f9d9e146102a7578063b8914ce4146102ba578063bacb386d146102cd578063c20ebea5146102e057600080fd5b8063591aad8a116100ff578063591aad8a1461021d5780635c82e9c21461024f5780636c6563f614610262578063715018a6146102755780638da5cb5b1461027d57600080fd5b80630652b57a1461013c57806310da3738146101515780633ab76e9f1461018b5780634e755573146101b0578063539b8ade146101f2575b600080fd5b61014f61014a3660046116de565b610369565b005b6101787f92954368afd3caa1f3ce3ead0069c1af414054aefe1ef9aeacc1bf426222ce3881565b6040519081526020015b60405180910390f35b6097546001600160a01b03165b6040516001600160a01b039091168152602001610182565b6101b86103ec565b6040805182516001600160801b031681526020808401516001600160401b0316908201529181015163ffffffff1690820152606001610182565b60cd54610205906001600160401b031681565b6040516001600160401b039091168152602001610182565b61023061022b3660046116fb565b61044f565b6040805160ff9094168452602084019290925290820152606001610182565b61014f61025d366004611731565b61068a565b610198610270366004611782565b610a46565b61014f610a5d565b6065546001600160a01b0316610198565b61019871777735367b36bc9b61c50022d9d0700db4ec81565b6101986102b53660046117b7565b610a71565b6101786102c83660046117e3565b610a87565b6101786102db3660046117e3565b610ac3565b6101786102ee366004611810565b610afc565b60cd5461020590600160401b90046001600160401b031681565b61014f61031b366004611861565b610b20565b61017860cb5481565b6101786103373660046117e3565b610d8b565b61014f61034a3660046116de565b610dd8565b60cd5461020590600160801b90046001600160401b031681565b610371610e51565b6001600160a01b03811661039857604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b6040805160608101825260008082526020820181905291810191909152506040805160608101825260cc546001600160801b0381168252600160801b81046001600160401b03166020830152600160c01b900463ffffffff169181019190915290565b60008060008360ff1660011415801561046c57508360ff16600214155b1561048a5760405163bcd2d90d60e01b815260040160405180910390fd5b8360ff166001146104bb577fc6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee56104dd565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817985b915060008460ff16600114610512577fad77eceea844778cb4376153fc8f06f12f1695df4585bf75bfb17ec19ce90818610534565b7fb4a95509ce05fe8d45987859a067780d16a367c0e2cacf79cd301b93fb7179405b905060008560ff16600114610569577f71620584f61c57e688bbd3fd7a39a036e588d962c4c830f3dacbc15c917e02f261058b565b7f45b59254b0320fd853f3f38ac574999e91bd75fd5e6cab9c22c5e71fc6d276e45b82880192831001905060ff86166001036105c5576105be8282600170014551231950b75fc4402da1732fc9bebe19610eab565b9250610634565b61060d7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a16106088484600170014551231950b75fc4402da1732fc9bebe19610eab565b610efa565b90925090506106318282600170014551231950b75fc4402da1732fc9bebe19610eab565b92505b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610681576106788370014551231950b75fc4402da1732fc9bebe196118bd565b92506001851894505b50509250925092565b600054610100900460ff16158080156106aa5750600054600160ff909116105b806106c45750303b1580156106c4575060005460ff166001145b61072c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561074f576000805461ff0019166101001790555b600146111580610763575063ffffffff4610155b15610781576040516306cffa2760e01b815260040160405180910390fd5b60014311156107a357604051635a0f9e4160e11b815260040160405180910390fd5b6107b360408301602084016118d0565b63ffffffff16156109a2576107cb60208301836118eb565b6001600160401b031615806107f657506107eb60608301604084016118eb565b6001600160401b0316155b80610817575061080c60808301606084016118eb565b6001600160401b0316155b80610838575061082d60a08301608084016118eb565b6001600160401b0316155b1561085657604051639cc448b560e01b815260040160405180910390fd5b60008061089e61086c60608601604087016118eb565b61087960208701876118eb565b61088960808801606089016118eb565b61089960a0890160808a016118eb565b610f19565b91509150816001600160801b0316600014806108ca57506001600160401b036001600160801b03831610155b806108dc57506001600160801b038116155b156108fa57604051639cc448b560e01b815260040160405180910390fd5b60cc80546001600160401b038416600160801b026001600160c01b03199091166001600160801b0384161717905561093860408501602086016118d0565b60cc805463ffffffff92909216600160c01b0263ffffffff60c01b19909216919091179055600261096f60608601604087016118eb565b610979919061191c565b60cd60106101000a8154816001600160401b0302191690836001600160401b0316021790555050505b60cd805467ffffffffffffffff1916426001600160401b03161790556109c783611018565b6109d043611031565b5060cb5543156109fb5760006109e76001436118bd565b600081815260c96020526040902090409055505b8015610a41576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6000610a538484846110c4565b90505b9392505050565b610a65610e51565b610a6f6000611178565b565b6000610a7e4684846110c4565b90505b92915050565b6000808215610a965782610aaa565b60cd54600160401b90046001600160401b03165b600090815260ca60205260409020600101549392505050565b6000808215610ad25782610ae6565b60cd54600160401b90046001600160401b03165b600090815260ca60205260409020549392505050565b6000610b17610b096103ec565b8563ffffffff1685856111ca565b50949350505050565b3371777735367b36bc9b61c50022d9d0700db4ec14610b5257604051636494e9f760e01b815260040160405180910390fd5b6000610b5f6001436118bd565b90508040600080610b6f84611031565b915091508160cb5414610ba35760cb54604051636340d9fb60e11b8152600481019190915260248101839052604401610723565b60cb819055600084815260c96020908152604080832086905560cd80546fffffffffffffffff00000000000000001916600160401b6001600160401b038c1690810291909117909155815180830183528c81528084018c815282865260ca8552948390209051815593516001949094019390935580518b81529182018a90527f7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b910160405180910390a2600080610c586103ec565b9050806040015163ffffffff16600014610cbd5760cd54610c8f908290610c88906001600160401b0316426118bd565b458a6111ca565b60cd80546001600160401b03909216600160801b0267ffffffffffffffff60801b1990921691909117905591505b814814610cf057604051634083acad60e01b81526001600160401b03808416600483015248166024820152604401610723565b60cd80546001600160401b0342811667ffffffffffffffff19909216821790925560408051438416815292851660208401524563ffffffff908116848301526060840192909252608083018890524460a08401524160c08401524690911660e0830152517ff5e89a4a67ffebdbc23df567479d3096c1dba4169c6bbf20ffc6b24d7f6e6e70918190036101000190a150505050505050505050565b6000438210610d9c57506000919050565b4382108015610db65750610db2610100436118bd565b8210155b15610dc057504090565b50600090815260c9602052604090205490565b919050565b610de0610e51565b6001600160a01b038116610e455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610723565b610e4e81611178565b50565b6065546001600160a01b03163314610a6f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610723565b600060405160408152602080820152602060408201528460608201528560808201528360a08201528260c082015260208160e08360056107d05a03fa610ef057600080fd5b5195945050505050565b6000806000198385098385029250828110838203039150509250929050565b600080856001600160401b0316600003610f3557610f35611942565b6000610f4260028861191c565b9050610f606001600160401b038816680755bf798b4a1bf1e4611958565b9250610f7f610f7a84886001600160401b03168489611276565b611335565b91506000610f8f84848489611276565b90506000610fa9858585610fa48b6002611972565b611276565b9050600082610fba8361271061199d565b610fc491906119b4565b9050806001600160401b0316876001600160401b03161461100b57604051631530943760e11b81526001600160401b03808916600483015282166024820152604401610723565b5050505094509492505050565b6110206113a2565b6110286113d1565b610e4e81611400565b60008061103c6116a9565b60005b60ff811080156110525750806001018510155b15611084576000198186030180408360ff83066101008110611076576110766119c8565b60200201525060010161103f565b5046611fe0820152612000812092508340816110a160ff876119de565b61010081106110b2576110b26119c8565b60200201526120009020919391925050565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113991906119f2565b90508115801561115057506001600160a01b038116155b15610a5657604051631467050360e21b81526004810185905260248101849052604401610723565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080806202bf2063ffffffff8516116111e55760006111ec565b6202bf2084035b60cd5460408901519192506001600160401b03600160801b909104811663ffffffff8085169190910192811689029161123691839061122f908690839061144916565b039061145f565b935050505061125e86602001516001600160401b03168760000151838763ffffffff16611276565b91508160000361126d57600191505b94509492505050565b60006001600160801b0385161580159061129857506001600160801b03841615155b6112a4576112a4611942565b60006001600160401b038316156112bb57826112be565b60015b905060006112d5856001600160401b031688611474565b905060006112f56112e68488611a0f565b6001600160401b031689611474565b90506001600160801b0387166001600160401b03841661131584846118bd565b61131f91906119b4565b61132991906119b4565b98975050505050505050565b60006001600160801b0382111561139e5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608401610723565b5090565b600054610100900460ff166113c95760405162461bcd60e51b815260040161072390611a36565b610a6f6114c6565b600054610100900460ff166113f85760405162461bcd60e51b815260040161072390611a36565b610a6f6114f3565b6001600160a01b03811661142757604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b60008183116114585781610a7e565b5090919050565b600081831161146e5782610a7e565b50919050565b60008061148a6001600160801b0384168561199d565b9050680755bf798b4a1bf1e481106114b55760405163576ff4f160e01b815260040160405180910390fd5b6114be81611523565b949350505050565b600054610100900460ff166114ed5760405162461bcd60e51b815260040161072390611a36565b60018055565b600054610100900460ff1661151a5760405162461bcd60e51b815260040161072390611a36565b610a6f33611178565b6000680248ce36a70cb26b3e19821361153e57506000919050565b680755bf798b4a1bf1e5821261156757604051631a93c68960e11b815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b6d2c06887d92262d378b9593af35346c09791803c2923d5d9721c3da80929091056001605f1b0190921d6bb17217f7d1cf79abc9e3b39881029095039081018102606090811d6d019dd9374d4315c8464a395fc09881016c1bff318b126baa436ea9aeaffd19840102821d93840193016d29c9ad45cc0beb0a2ff097a7bab40192909202821d6dcf3c27b2e487711b467e90f19320016c22fcd1cffa6fa000f6e27eeca082018202831d6d022f98fbc368092c79210d196fa0018202831d6d13aaae3ba38de06adc25ebfacc0901820290921d6d624dcbeb5e25df590e409325888a01026d360d7aeea093263ec6495851bd9760621b010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b604051806120000160405280610100906020820280368337509192915050565b6001600160a01b0381168114610e4e57600080fd5b6000602082840312156116f057600080fd5b8135610a56816116c9565b6000806040838503121561170e57600080fd5b82359150602083013560ff8116811461172657600080fd5b809150509250929050565b60008082840360c081121561174557600080fd5b8335611750816116c9565b925060a0601f198201121561176457600080fd5b506020830190509250929050565b80358015158114610dd357600080fd5b60008060006060848603121561179757600080fd5b83359250602084013591506117ae60408501611772565b90509250925092565b600080604083850312156117ca57600080fd5b823591506117da60208401611772565b90509250929050565b6000602082840312156117f557600080fd5b5035919050565b803563ffffffff81168114610dd357600080fd5b60008060006060848603121561182557600080fd5b61182e846117fc565b925061183c602085016117fc565b91506117ae604085016117fc565b80356001600160401b0381168114610dd357600080fd5b6000806000806080858703121561187757600080fd5b843593506020850135925061188e6040860161184a565b915061189c606086016117fc565b905092959194509250565b634e487b7160e01b600052601160045260246000fd5b81810381811115610a8157610a816118a7565b6000602082840312156118e257600080fd5b610a7e826117fc565b6000602082840312156118fd57600080fd5b610a7e8261184a565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038084168061193657611936611906565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60006001600160801b038084168061193657611936611906565b6001600160401b03818116838216028082169190828114611995576119956118a7565b505092915050565b8082028115828204841417610a8157610a816118a7565b6000826119c3576119c3611906565b500490565b634e487b7160e01b600052603260045260246000fd5b6000826119ed576119ed611906565b500690565b600060208284031215611a0457600080fd5b8151610a56816116c9565b6001600160401b03818116838216019080821115611a2f57611a2f6118a7565b5092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220bd7f7091e6a697697091252fac98ba75d8b5eb2366b8463a9d05f995c921619164736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000001": { + "contractName": "TaikoL2Proxy", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000cb": "0xd02f27dfd81ca98ddc593afdc449ac14b6f636ece56d0f41f5aa383eaa73d02b", + "0x00000000000000000000000000000000000000000000000000000000000000cc": "0x0000000000bebc200000000058b8ef1c0000000485b9d2e799564d28c46075dd", + "0x00000000000000000000000000000000000000000000000000000000000000cd": "0x00000000000000000000000a9507f68000000000000000000000000064b16457", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000001" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220caef1c2a647344b8936c2def885861b955c9b56ccb762c5243ac8ec49af2096f64736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000004": { + "contractName": "ProxiedBridge", + "storage": {}, + "code": "0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063bac443e21161006f578063bac443e21461041b578063ce70f39b1461043b578063d0496d6a1461045b578063f2fde38b146104ca578063f9803919146104ea578063fee99b221461050a57600080fd5b8063715018a6146103955780638da5cb5b146103aa57806396e17852146103c8578063a4444efd146103db578063a86f9d9e146103fb57600080fd5b8063540be6a3116100f2578063540be6a3146102e75780635817b0c3146103075780635d0bd98614610335578063606b5b74146103555780636c6563f61461037557600080fd5b80630652b57a1461020357806319ab453c14610223578063343b643c146102435780633ab76e9f146102885780635075a9d4146102ba57600080fd5b366101fe5761014c6a1d1bdad95b97dd985d5b1d60aa1b600161052a565b6001600160a01b0316336001600160a01b03161415801561019757506101816a195d1a195c97dd985d5b1d60aa1b600161052a565b6001600160a01b0316336001600160a01b031614155b80156101c757506101b1647461696b6f60d81b600161052a565b6001600160a01b0316336001600160a01b031614155b80156101de57506065546001600160a01b03163314155b156101fc576040516345dd044560e11b815260040160405180910390fd5b005b600080fd5b34801561020f57600080fd5b506101fc61021e366004612b75565b610540565b34801561022f57600080fd5b506101fc61023e366004612b75565b6105c3565b34801561024f57600080fd5b5061027361025e366004612b92565b600090815260cd602052604090205460ff1690565b60405190151581526020015b60405180910390f35b34801561029457600080fd5b506097546001600160a01b03165b6040516001600160a01b03909116815260200161027f565b3480156102c657600080fd5b506102da6102d5366004612b92565b6106db565b60405161027f9190612be3565b3480156102f357600080fd5b50610273610302366004612b92565b6106e6565b34801561031357600080fd5b50610327610322366004612c0a565b6106f2565b60405190815260200161027f565b34801561034157600080fd5b50610273610350366004612b92565b610705565b34801561036157600080fd5b50610327610370366004612b92565b610718565b34801561038157600080fd5b506102a2610390366004612c4c565b610723565b3480156103a157600080fd5b506101fc61073a565b3480156103b657600080fd5b506065546001600160a01b03166102a2565b6103276103d6366004612c0a565b61074e565b3480156103e757600080fd5b506102736103f6366004612ccd565b61077c565b34801561040757600080fd5b506102a2610416366004612d1f565b61052a565b34801561042757600080fd5b506101fc610436366004612d4f565b610794565b34801561044757600080fd5b50610273610456366004612ccd565b6107b8565b34801561046757600080fd5b50604080516060808201835260008083526020808401829052928401528251808201845260ca5480825260cb546001600160a01b0390811683860190815260cc54938701938452865192835251169381019390935251928201929092520161027f565b3480156104d657600080fd5b506101fc6104e5366004612b75565b6107c7565b3480156104f657600080fd5b506101fc610505366004612db7565b610840565b34801561051657600080fd5b506101fc610525366004612d4f565b61085e565b6000610537468484610874565b90505b92915050565b610548610928565b6001600160a01b03811661056f57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b600054610100900460ff16158080156105e35750600054600160ff909116105b806105fd5750303b1580156105fd575060005460ff166001145b6106655760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610688576000805461ff0019166101001790555b61069182610982565b80156106d7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061053a8261099b565b600061053a30836109c6565b600061053a61070083612f0d565b610aa7565b60006107113083610ad7565b5092915050565b600061053a82610b60565b6000610730848484610874565b90505b9392505050565b610742610928565b61074c6000610b9b565b565b6000610758610bed565b61076c60c93061076785612f0d565b610c46565b905061077760018055565b919050565b600061078b3086868686610f27565b95945050505050565b61079c610bed565b6107aa60c93085858561108a565b6107b360018055565b505050565b600061078b308686868661137b565b6107cf610928565b6001600160a01b0381166108345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065c565b61083d81610b9b565b50565b610848610bed565b61085560c9308484611600565b6106d760018055565b610866610bed565b6107aa60c930858585611838565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa1580156108c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e9919061300e565b90508115801561090057506001600160a01b038116155b1561073357604051631467050360e21b8152600481018590526024810184905260440161065c565b6065546001600160a01b0316331461074c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065c565b61098a611d37565b610992611d66565b61083d81611d95565b6000806109a783610b60565b80549091508060038111156109be576109be612bab565b949350505050565b604051635437cecf60e11b81526000906001600160a01b0384169063a86f9d9e906109f590849060040161302b565b602060405180830381865afa158015610a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a36919061300e565b604051631933b5e360e11b8152306004820152602481018490526001600160a01b0391909116906332676bc690604401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610537919061304d565b600081604051602001610aba91906130ba565b604051602081830303815290604052805190602001209050919050565b600080836001600160a01b0316636c6563f68460016040518363ffffffff1660e01b8152600401610b099291906131b4565b602060405180830381865afa158015610b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4a919061300e565b6001600160a01b03811615159590945092505050565b60006040518060400160405280600e81526020016d4d4553534147455f53544154555360901b81525082604051602001610aba9291906131d3565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600260015403610c3f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161065c565b6002600155565b60808101516000906001600160a01b0316610c74576040516301b1868360e71b815260040160405180910390fd5b600080610c85858560600151610ad7565b91509150811580610c995750468460600151145b15610cb75760405163e822b48d60e01b815260040160405180910390fd5b60a08401516001600160a01b03161580610ce65750806001600160a01b03168460a001516001600160a01b0316145b15610d045760405163b9ad6a0f60e01b815260040160405180910390fd5b60008461012001518561010001518660e00151610d21919061320b565b610d2b919061320b565b9050348114610d4d57604051632609a19760e21b815260040160405180910390fd5b604051635437cecf60e11b81526000906001600160a01b0388169063a86f9d9e90610d7d9060019060040161321e565b602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe919061300e565b9050610dd36001600160a01b03821683611dde565b8754886000610de18361323d565b909155508652336020870152466040870152610dfc86610aa7565b604051635437cecf60e11b81529095506001600160a01b0388169063a86f9d9e90610e2c9060009060040161302b565b602060405180830381865afa158015610e49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6d919061300e565b6001600160a01b03166366ca2bc0866040518263ffffffff1660e01b8152600401610e9a91815260200190565b6020604051808303816000875af1158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613256565b50847f47866f7dacd4a276245be6ed543cae03c9c17eb17e6980cee28e3dd168b7f9f387604051610f0e91906130ba565b60405180910390a2505050509392505050565b60018055565b600080866001600160a01b0316636c6563f68660006040518363ffffffff1660e01b8152600401610f599291906131b4565b602060405180830381865afa158015610f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9a919061300e565b604051635437cecf60e11b81529091506001600160a01b0388169063a86f9d9e90610fca9060009060040161302b565b602060405180830381865afa158015610fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100b919061300e565b6001600160a01b0316635221f61386838988886040518663ffffffff1660e01b815260040161103e95949392919061326f565b602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f919061304d565b979650505050505050565b600061109c60a0850160808601612b75565b6001600160a01b0316036110c3576040516301b1868360e71b815260040160405180910390fd5b468360400135146110e75760405163e822b48d60e01b815260040160405180910390fd5b60006110f561070085612f0d565b600081815260048801602052604090205490915060ff16151560010361112e5760405163afde133560e01b815260040160405180910390fd5b61113f85828660600135868661137b565b61115c5760405163498b0b1d60e01b815260040160405180910390fd5b60008181526004870160205260408120805460ff1916600117905561118a61010086013560e087013561320b565b9050801561131f57604051635437cecf60e11b81526000906001600160a01b0388169063a86f9d9e906111c29060019060040161321e565b602060405180830381865afa1580156111df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611203919061300e565b90506001600160a01b03811615611298576001600160a01b03811663ba0bbd9561123360a0890160808a01612b75565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101859052604401600060405180830381600087803b15801561127b57600080fd5b505af115801561128f573d6000803e3d6000fd5b5050505061131d565b60006112aa60a0880160808901612b75565b6001600160a01b03168360405160006040518083038185875af1925050503d80600081146112f4576040519150601f19603f3d011682016040523d82523d6000602084013e6112f9565b606091505b505090508061131b5760405163f6664cf160e01b815260040160405180910390fd5b505b505b817fea00c741e39d1d9ab1c6703152d71f9da09a782ed4ae128414730dadbb9bd84761135160a0880160808901612b75565b604080516001600160a01b039092168252602082018590520160405180910390a250505050505050565b600046840361139d5760405163e822b48d60e01b815260040160405180910390fd5b60008590036113bf5760405163a6407c9360e01b815260040160405180910390fd5b60006113cd83850185613359565b604051635437cecf60e11b8152647461696b6f60d81b60048201526000602482018190529192506001600160a01b0389169063a86f9d9e90604401602060405180830381865afa158015611425573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611449919061300e565b8251610100015160405163bacb386d60e01b81526001600160801b0390911660048201526001600160a01b03919091169063bacb386d90602401602060405180830381865afa1580156114a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c49190613256565b90508015806114dd575081516114d990611e94565b8114155b156114ed5760009250505061078b565b815160600151604051633632b1fb60e11b815273d56fbBb9C88938a61e9CA71339Abd5f84dF131Cf9163a5427462916001600160a01b038c1690636c6563f69061153e908c906000906004016131b4565b602060405180830381865afa15801561155b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157f919061300e565b6115888b610b60565b602087015160405160e086901b6001600160e01b03191681526115b3949392916003916004016134fd565b602060405180830381865af41580156115d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f4919061304d565b98975050505050505050565b610140820135158061160f5750805b156116555761162460a0830160808401612b75565b6001600160a01b0316336001600160a01b0316146116555760405163d7f4fc9f60e01b815260040160405180910390fd5b600061166361070084612f0d565b905060016116708261099b565b600381111561168157611681612bab565b1461169f57604051631f6646b560e01b815260040160405180910390fd5b604051635437cecf60e11b81526000906001600160a01b0386169063a86f9d9e906116cf9060019060040161321e565b602060405180830381865afa1580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611710919061300e565b90506001600160a01b0381161561178057604051630d73bb3d60e41b815261010085013560048201526001600160a01b0382169063d73bb3d090602401600060405180830381600087803b15801561176757600080fd5b505af115801561177b573d6000803e3d6000fd5b505050505b61178c8685845a611eb9565b156117a15761179c826002612011565b611830565b8215611818576117b2826003612011565b6000806117c560e0870160c08801612b75565b6001600160a01b0316146117e8576117e360e0860160c08701612b75565b6117f8565b6117f860a0860160808701612b75565b90506118126001600160a01b038216610100870135611dde565b50611830565b6118306001600160a01b038216610100860135611dde565b505050505050565b61014083013515801561186c575061185660a0840160808501612b75565b6001600160a01b0316336001600160a01b031614155b1561188a5760405163398b635960e21b815260040160405180910390fd5b468360600135146118ae5760405163e822b48d60e01b815260040160405180910390fd5b60006118bc61070085612f0d565b905060006118c98261099b565b60038111156118da576118da612bab565b146118f857604051630cfafbf960e01b815260040160405180910390fd5b6000856001600160a01b0316636c6563f6866040013560006040518363ffffffff1660e01b815260040161192d9291906131b4565b602060405180830381865afa15801561194a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196e919061300e565b604051635437cecf60e11b81529091506001600160a01b0387169063a86f9d9e9061199e9060009060040161302b565b602060405180830381865afa1580156119bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119df919061300e565b6001600160a01b0316635221f6138660400135838588886040518663ffffffff1660e01b8152600401611a1695949392919061326f565b602060405180830381865afa158015611a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a57919061304d565b611a74576040516314504c7360e31b815260040160405180910390fd5b6000610120860135611a8f61010088013560e089013561320b565b611a99919061320b565b90506000876001600160a01b031663a86f9d9e60016040518263ffffffff1660e01b8152600401611aca919061321e565b602060405180830381865afa158015611ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0b919061300e565b90506001600160a01b03811615801590611b255750600082115b15611b8557604051630d73bb3d60e41b8152600481018390526001600160a01b0382169063d73bb3d090602401600060405180830381600087803b158015611b6c57600080fd5b505af1158015611b80573d6000803e3d6000fd5b505050505b611bac60e0880135611b9d60a08a0160808b01612b75565b6001600160a01b031690611dde565b60008030611bc060c08b0160a08c01612b75565b6001600160a01b03161480611bed57506000611be260c08b0160a08c01612b75565b6001600160a01b0316145b15611c02575060029050610100880135611c79565b6000611c1460a08b0160808c01612b75565b6001600160a01b0316336001600160a01b031614611c3757896101400135611c39565b5a5b90506000611c498d8c8a85611eb9565b90508015611c5a5760029350611c76565b60019350611c766001600160a01b0386166101008d0135611dde565b50505b611c838683612011565b600080611c9660e08c0160c08d01612b75565b6001600160a01b031614611cb957611cb460e08b0160c08c01612b75565b611cc9565b611cc960a08b0160808c01612b75565b90506001600160a01b0381163303611d07576000611cec836101208d013561320b565b9050611d016001600160a01b03831682611dde565b50611d29565b611d16336101208c0135611dde565b611d296001600160a01b03821683611dde565b505050505050505050505050565b600054610100900460ff16611d5e5760405162461bcd60e51b815260040161065c90613530565b61074c61208a565b600054610100900460ff16611d8d5760405162461bcd60e51b815260040161065c90613530565b61074c6120b1565b6001600160a01b038116611dbc57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b801580611df257506001600160a01b038216155b15611dfb575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611e48576040519150601f19603f3d011682016040523d82523d6000602084013e611e4d565b606091505b50509050806107b35760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640161065c565b600080611eaa611ea58460006120e1565b612502565b80516020909101209392505050565b600081600003611edc57604051637f0e960960e11b815260040160405180910390fd5b6040518060600160405280848152602001856020016020810190611f009190612b75565b6001600160a01b039081168252604087810135602093840152835160018a0155918301516002890180546001600160a01b0319169190921617905501516003860155611f5260c0850160a08601612b75565b6001600160a01b031682610100860135611f7061016088018861357b565b604051611f7e9291906135c1565b600060405180830381858888f193505050503d8060008114611fbc576040519150601f19603f3d011682016040523d82523d6000602084013e611fc1565b606091505b505060408051606081018252600180825260208201819052600019919092018190528782018290556002880180546001600160a01b03191690921790915560039096019590955550929392505050565b80600381111561202357612023612bab565b61202c8361099b565b600381111561203d5761203d612bab565b146106d75761204c8282612546565b817f0af4d5247f6a4028d6699afb62871a76b398da1d1a626c8a9b90e0bd5f54c73c823360405161207e9291906135d1565b60405180910390a25050565b600054610100900460ff16610f215760405162461bcd60e51b815260040161065c90613530565b600054610100900460ff166120d85760405162461bcd60e51b815260040161065c90613530565b61074c33610b9b565b6102008201516060901561214c576120fa82601161320b565b6001600160401b0381111561211157612111612dfd565b60405190808252806020026020018201604052801561214457816020015b606081526020019060019003908161212f5790505b5090506121bb565b6101e083015115612162576120fa82601061320b565b61216d82600f61320b565b6001600160401b0381111561218457612184612dfd565b6040519080825280602002602001820160405280156121b757816020015b60608152602001906001900390816121a25790505b5090505b82516121c69061256f565b816000815181106121d9576121d96135f7565b60200260200101819052506121f1836020015161256f565b81600181518110612204576122046135f7565b602002602001018190525061221c8360400151612582565b8160028151811061222f5761222f6135f7565b6020026020010181905250612247836060015161256f565b8160038151811061225a5761225a6135f7565b6020026020010181905250612272836080015161256f565b81600481518110612285576122856135f7565b602002602001018190525061229d8360a0015161256f565b816005815181106122b0576122b06135f7565b60200260200101819052506122e78360c001516040516020016122d3919061360d565b6040516020818303038152906040526125ab565b816006815181106122fa576122fa6135f7565b60200260200101819052506123128360e0015161261a565b81600781518110612325576123256135f7565b60200260200101819052506123478361010001516001600160801b031661261a565b8160088151811061235a5761235a6135f7565b6020026020010181905250612373836101200151612628565b81600981518110612386576123866135f7565b602002602001018190525061239f836101400151612628565b81600a815181106123b2576123b26135f7565b60200260200101819052506123cb836101600151612628565b81600b815181106123de576123de6135f7565b60200260200101819052506123f78361018001516125ab565b81600c8151811061240a5761240a6135f7565b6020026020010181905250612423836101a0015161256f565b81600d81518110612436576124366135f7565b602002602001018190525061246d836101c001516040516020016122d3919060c09190911b6001600160c01b031916815260080190565b81600e81518110612480576124806135f7565b6020026020010181905250826101e001516000146124c5576124a6836101e0015161261a565b81600f815181106124b9576124b96135f7565b60200260200101819052505b6102008301511561053a576124de83610200015161256f565b816010815181106124f1576124f16135f7565b602002602001018190525092915050565b6060600061250f8361263f565b905061251d815160c0612774565b8160405160200161252f929190613642565b604051602081830303815290604052915050919050565b600061255183610b60565b9050600082600381111561256757612567612bab565b909155505050565b606061053a61257d8361291c565b6125ab565b604051606082811b6bffffffffffffffffffffffff191660208301529061053a906034016122d3565b606080825160011480156125d957506080836000815181106125cf576125cf6135f7565b016020015160f81c105b156125e557508161053a565b6125f183516080612774565b83604051602001612603929190613642565b604051602081830303815290604052905092915050565b606061053a61257d836129ce565b606061053a61257d836001600160401b03166129ce565b60608151600003612660576040805160008082526020820190925290610711565b6000805b83518110156126a55783818151811061267f5761267f6135f7565b60200260200101515182612693919061320b565b915061269e8161323d565b9050612664565b6000826001600160401b038111156126bf576126bf612dfd565b6040519080825280601f01601f1916602001820160405280156126e9576020820181803683370190505b50600092509050602081015b855183101561276b576000868481518110612712576127126135f7565b60200260200101519050600060208201905061273083828451612af8565b878581518110612742576127426135f7565b60200260200101515183612756919061320b565b92505050826127649061323d565b92506126f5565b50949350505050565b60608060388410156127db57604080516001808252818301909252906020820181803683370190505090506127a98385613671565b60f81b816000815181106127bf576127bf6135f7565b60200101906001600160f81b031916908160001a905350610537565b600060015b6127ea81876136a0565b1561280d576127f88261323d565b9150612806610100826136b4565b90506127e0565b61281882600161320b565b6001600160401b0381111561282f5761282f612dfd565b6040519080825280601f01601f191660200182016040528015612859576020820181803683370190505b5092506128668583613671565b612871906037613671565b60f81b83600081518110612887576128876135f7565b60200101906001600160f81b031916908160001a905350600190505b818111612913576101006128b782846136cb565b6128c3906101006137c2565b6128cd90886136a0565b6128d791906137ce565b60f81b8382815181106128ec576128ec6135f7565b60200101906001600160f81b031916908160001a90535061290c8161323d565b90506128a3565b50509392505050565b606060008260405160200161293391815260200190565b60408051808303601f1901815260208084528383019092529250600091829160208201818036833701905050905060005b815181101561276b5783836129788161323d565b94508151811061298a5761298a6135f7565b602001015160f81c60f81b8282815181106129a7576129a76135f7565b60200101906001600160f81b031916908160001a9053506129c78161323d565b9050612964565b60606000826040516020016129e591815260200190565b604051602081830303815290604052905060005b6020811015612a3a57818181518110612a1457612a146135f7565b01602001516001600160f81b031916600003612a3a57612a338161323d565b90506129f9565b6000612a478260206136cb565b6001600160401b03811115612a5e57612a5e612dfd565b6040519080825280601f01601f191660200182016040528015612a88576020820181803683370190505b50905060005b815181101561276b578383612aa28161323d565b945081518110612ab457612ab46135f7565b602001015160f81c60f81b828281518110612ad157612ad16135f7565b60200101906001600160f81b031916908160001a905350612af18161323d565b9050612a8e565b8282825b60208110612b345781518352612b1360208461320b565b9250612b2060208361320b565b9150612b2d6020826136cb565b9050612afc565b905182516020929092036101000a6000190180199091169116179052505050565b6001600160a01b038116811461083d57600080fd5b803561077781612b55565b600060208284031215612b8757600080fd5b813561053781612b55565b600060208284031215612ba457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60048110612bdf57634e487b7160e01b600052602160045260246000fd5b9052565b6020810161053a8284612bc1565b60006101a08284031215612c0457600080fd5b50919050565b600060208284031215612c1c57600080fd5b81356001600160401b03811115612c3257600080fd5b6109be84828501612bf1565b801515811461083d57600080fd5b600080600060608486031215612c6157600080fd5b83359250602084013591506040840135612c7a81612c3e565b809150509250925092565b60008083601f840112612c9757600080fd5b5081356001600160401b03811115612cae57600080fd5b602083019150836020828501011115612cc657600080fd5b9250929050565b60008060008060608587031215612ce357600080fd5b843593506020850135925060408501356001600160401b03811115612d0757600080fd5b612d1387828801612c85565b95989497509550505050565b60008060408385031215612d3257600080fd5b823591506020830135612d4481612c3e565b809150509250929050565b600080600060408486031215612d6457600080fd5b83356001600160401b0380821115612d7b57600080fd5b612d8787838801612bf1565b94506020860135915080821115612d9d57600080fd5b50612daa86828701612c85565b9497909650939450505050565b60008060408385031215612dca57600080fd5b82356001600160401b03811115612de057600080fd5b612dec85828601612bf1565b9250506020830135612d4481612c3e565b634e487b7160e01b600052604160045260246000fd5b6040516101a081016001600160401b0381118282101715612e3657612e36612dfd565b60405290565b604080519081016001600160401b0381118282101715612e3657612e36612dfd565b60405161022081016001600160401b0381118282101715612e3657612e36612dfd565b600082601f830112612e9257600080fd5b81356001600160401b0380821115612eac57612eac612dfd565b604051601f8301601f19908116603f01168101908282118183101715612ed457612ed4612dfd565b81604052838152866020858801011115612eed57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006101a08236031215612f2057600080fd5b612f28612e13565b82358152612f3860208401612b6a565b60208201526040830135604082015260608301356060820152612f5d60808401612b6a565b6080820152612f6e60a08401612b6a565b60a0820152612f7f60c08401612b6a565b60c082015260e08381013590820152610100808401359082015261012080840135908201526101408084013590820152610160808401356001600160401b0380821115612fcb57600080fd5b612fd736838801612e81565b83850152610180925082860135915080821115612ff357600080fd5b5061300036828701612e81565b918301919091525092915050565b60006020828403121561302057600080fd5b815161053781612b55565b6d7369676e616c5f7365727669636560901b8152901515602082015260400190565b60006020828403121561305f57600080fd5b815161053781612c3e565b60005b8381101561308557818101518382015260200161306d565b50506000910152565b600081518084526130a681602086016020860161306a565b601f01601f19169290920160200192915050565b6020815281516020820152600060208301516130e160408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015161311060a08401826001600160a01b03169052565b5060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610160808401919091528301516101a061018080850182905261318e6101c086018461308e565b90860151858203601f1901838701529092506131aa838261308e565b9695505050505050565b9182526562726964676560d01b60208301521515604082015260600190565b600083516131e581846020880161306a565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561053a5761053a6131f5565b6a195d1a195c97dd985d5b1d60aa1b8152901515602082015260400190565b60006001820161324f5761324f6131f5565b5060010190565b60006020828403121561326857600080fd5b5051919050565b8581526001600160a01b0385166020820152604081018490526080606082018190528101829052818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b600082601f8301126132cf57600080fd5b6040516101008082018281106001600160401b03821117156132f3576132f3612dfd565b6040528301818582111561330657600080fd5b845b82811015613320578035825260209182019101613308565b509195945050505050565b80356001600160801b038116811461077757600080fd5b80356001600160401b038116811461077757600080fd5b60006020828403121561336b57600080fd5b81356001600160401b038082111561338257600080fd5b908301906040828603121561339657600080fd5b61339e612e3c565b8235828111156133ad57600080fd5b830161030081880312156133c057600080fd5b6133c8612e5e565b81358152602082013560208201526133e260408301612b6a565b6040820152606082013560608201526080820135608082015260a082013560a08201526134128860c084016132be565b60c08201526101c08083013560e08301526101e061343181850161332b565b610100840152610200613445818601613342565b6101208501526134586102208601613342565b61014085015261346b6102408601613342565b6101608501526102608501358781111561348457600080fd5b6134908c828801612e81565b610180860152506102808501356101a08501526134b06102a08601613342565b838501526102c0850135828501526102e08501358185015250505080835250506020830135828111156134e257600080fd5b6134ee87828601612e81565b60208301525095945050505050565b85815260018060a01b038516602082015283604082015282606082015260a06080820152600061107f60a083018461308e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000808335601e1984360301811261359257600080fd5b8301803591506001600160401b038211156135ac57600080fd5b602001915036819003821315612cc657600080fd5b8183823760009101908152919050565b604081016135df8285612bc1565b6001600160a01b039290921660209190910152919050565b634e487b7160e01b600052603260045260246000fd5b60008183825b6008811015613632578151835260209283019290910190600101613613565b5050506101008201905092915050565b6000835161365481846020880161306a565b83519083019061366881836020880161306a565b01949350505050565b60ff818116838216019081111561053a5761053a6131f5565b634e487b7160e01b600052601260045260246000fd5b6000826136af576136af61368a565b500490565b808202811582820484141761053a5761053a6131f5565b8181038181111561053a5761053a6131f5565b600181815b808511156137195781600019048211156136ff576136ff6131f5565b8085161561370c57918102915b93841c93908002906136e3565b509250929050565b6000826137305750600161053a565b8161373d5750600061053a565b8160018114613753576002811461375d57613779565b600191505061053a565b60ff84111561376e5761376e6131f5565b50506001821b61053a565b5060208310610133831016604e8410600b841016171561379c575081810a61053a565b6137a683836136de565b80600019048211156137ba576137ba6131f5565b029392505050565b60006105378383613721565b6000826137dd576137dd61368a565b50069056fea2646970667358221220375c4de0362d3ed6e76edb571acb958d89d208d7216e0c416a7cdb4ee2dfeba764736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000004": { + "contractName": "BridgeProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000004" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220caef1c2a647344b8936c2def885861b955c9b56ccb762c5243ac8ec49af2096f64736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000002": { + "contractName": "ProxiedTokenVault", + "storage": {}, + "code": "0x6080604052600436106100e85760003560e01c8063780b64f01161008a578063a86f9d9e11610059578063a86f9d9e146102ca578063c287e578146102ea578063ee1490b21461032a578063f2fde38b1461033d57600080fd5b8063780b64f0146101fc5780638da5cb5b1461025b5780639754149b146102795780639aa8605c1461029957600080fd5b80633ab76e9f116100c65780633ab76e9f1461014f57806367090ccf146101865780636c6563f6146101c7578063715018a6146101e757600080fd5b80630652b57a146100ed5780630c6fab821461010f57806319ab453c1461012f575b600080fd5b3480156100f957600080fd5b5061010d610108366004611fa4565b61035d565b005b34801561011b57600080fd5b5061010d61012a366004611fc1565b6103e0565b34801561013b57600080fd5b5061010d61014a366004611fa4565b61068f565b34801561015b57600080fd5b506097546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101696101a1366004612030565b60cb6020908152600092835260408084209091529082529020546001600160a01b031681565b3480156101d357600080fd5b506101696101e236600461206e565b6107a7565b3480156101f357600080fd5b5061010d6107be565b34801561020857600080fd5b5061023c6102173660046120a7565b60cc60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161017d565b34801561026757600080fd5b506065546001600160a01b0316610169565b34801561028557600080fd5b5061010d6102943660046120c0565b6107d2565b3480156102a557600080fd5b506102b96102b4366004611fa4565b610b54565b60405161017d9594939291906121b0565b3480156102d657600080fd5b506101696102e5366004612201565b610ca5565b3480156102f657600080fd5b5061031a610305366004611fa4565b60c96020526000908152604090205460ff1681565b604051901515815260200161017d565b61010d610338366004612295565b610cbb565b34801561034957600080fd5b5061010d610358366004611fa4565b611574565b6103656115ed565b6001600160a01b03811661038c57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b6103e8611647565b6562726964676560d01b6103fd816001610ca5565b6001600160a01b0316336001600160a01b03161461042e57604051630d85cccf60e11b815260040160405180910390fd5b6000336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561046e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104929190612374565b90506104b281604001516a1d1bdad95b97dd985d5b1d60aa1b60006107a7565b6001600160a01b031681602001516001600160a01b0316146104e7576040516320258b8760e21b815260040160405180910390fd5b6000468735036105b4576105016040880160208901611fa4565b905061051c6a3a30b4b5b7afba37b5b2b760a91b6001610ca5565b6001600160a01b0316816001600160a01b03160361059b576040516340c10f1960e01b81526001600160a01b038681166004830152602482018690528216906340c10f1990604401600060405180830381600087803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b50505050610624565b6105af6001600160a01b03821686866116a0565b610624565b6105bd87611703565b6040516340c10f1960e01b81526001600160a01b03878116600483015260248201879052919250908216906340c10f1990604401600060405180830381600087803b15801561060b57600080fd5b505af115801561061f573d6000803e3d6000fd5b505050505b815160408084015181519081526001600160a01b0384811660208301529181018790528188169291891691907fe5da926519fc972010fe65b35c1e3339e6dc72b35ffaec203999c2a2a2593eac9060600160405180910390a450505061068960018055565b50505050565b600054610100900460ff16158080156106af5750600054600160ff909116105b806106c95750303b1580156106c9575060005460ff166001145b6107315760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610754576000805461ff0019166101001790555b61075d82611762565b80156107a3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60006107b484848461177b565b90505b9392505050565b6107c66115ed565b6107d0600061182f565b565b6107da611647565b60006107ec60a0850160808601611fa4565b6001600160a01b031603610813576040516372b41cdf60e01b815260040160405180910390fd5b46836040013514610837576040516348bc100560e01b815260040160405180910390fd5b600061084d6562726964676560d01b6000610ca5565b90506000816001600160a01b0316635817b0c3866040518263ffffffff1660e01b815260040161087d919061244c565b602060405180830381865afa15801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be919061256a565b600081815260cc6020526040902080546001909101549192506001600160a01b031690816108ff57604051637c6addb760e01b815260040160405180910390fd5b60405163ce70f39b60e01b81526001600160a01b0385169063ce70f39b9061093590869060608c0135908b908b90600401612583565b602060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097691906125ad565b610993576040516308ba49e560e31b815260040160405180910390fd5b6040805180820182526000808252602080830182815287835260cc909152929020905181546001600160a01b0319166001600160a01b0390911617815590516001909101558015610adb576001600160a01b038216600090815260c9602052604090205460ff1680610a2e5750610a196a3a30b4b5b7afba37b5b2b760a91b6001610ca5565b6001600160a01b0316826001600160a01b0316145b15610ab7576001600160a01b0382166340c10f19610a5260a08a0160808b01611fa4565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015610a9a57600080fd5b505af1158015610aae573d6000803e3d6000fd5b50505050610adb565b610adb610aca60a0890160808a01611fa4565b6001600160a01b03841690836116a0565b610aeb60a0880160808901611fa4565b6001600160a01b0316837fc5d9f7cd7998e24ecf12ad69eca9339764e2cb13788d5d9616f502601b219af68484604051610b3a9291906001600160a01b03929092168252602082015260400190565b60405180910390a350505050610b4f60018055565b505050565b60ca6020526000908152604090208054600182015460028301805492936001600160a01b03831693600160a01b90930460ff1692909190610b94906125ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc0906125ca565b8015610c0d5780601f10610be257610100808354040283529160200191610c0d565b820191906000526020600020905b815481529060010190602001808311610bf057829003601f168201915b505050505090806003018054610c22906125ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4e906125ca565b8015610c9b5780601f10610c7057610100808354040283529160200191610c9b565b820191906000526020600020905b815481529060010190602001808311610c7e57829003601f168201915b5050505050905085565b6000610cb246848461177b565b90505b92915050565b610cc3611647565b6001600160a01b0387161580610d035750610cee886a1d1bdad95b97dd985d5b1d60aa1b60006107a7565b6001600160a01b0316876001600160a01b0316145b15610d2157604051634694641b60e01b815260040160405180910390fd5b6001600160a01b038616610d4857604051637c6addb760e01b815260040160405180910390fd5b84600003610d685760405162af849960e11b815260040160405180910390fd5b6040805160a08101825260008082526020820181905291810191909152606080820181905260808201526001600160a01b038716600090815260c9602052604081205460ff1615610faf576001600160a01b03888116600090815260ca6020908152604091829020825160a08101845281548152600182015494851692810192909252600160a01b90930460ff1691810191909152600282018054919291606084019190610e15906125ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610e41906125ca565b8015610e8e5780601f10610e6357610100808354040283529160200191610e8e565b820191906000526020600020905b815481529060010190602001808311610e7157829003601f168201915b50505050508152602001600382018054610ea7906125ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed3906125ca565b8015610f205780601f10610ef557610100808354040283529160200191610f20565b820191906000526020600020905b815481529060010190602001808311610f0357829003601f168201915b5050509190925250505060208101519092506001600160a01b0316610f4757610f47612604565b604051632770a7eb60e21b8152336004820152602481018890526001600160a01b03891690639dc29fac90604401600060405180830381600087803b158015610f8f57600080fd5b505af1158015610fa3573d6000803e3d6000fd5b505050508690506112a8565b60008890506040518060a001604052804681526020018a6001600160a01b03168152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611012573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110369190612629565b60ff168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801561107c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110a49190810190612646565b8152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa1580156110e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261110f9190810190612646565b9052925061112c6a3a30b4b5b7afba37b5b2b760a91b6001610ca5565b6001600160a01b0316896001600160a01b0316036111ac57604051632770a7eb60e21b8152336004820152602481018990526001600160a01b038a1690639dc29fac90604401600060405180830381600087803b15801561118c57600080fd5b505af11580156111a0573d6000803e3d6000fd5b505050508791506112a6565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156111f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611217919061256a565b905061122e6001600160a01b03831633308c611881565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa158015611274573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611298919061256a565b6112a291906126bd565b9250505b505b611337604051806101a001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b606081018b905233608082015261135e8b6a1d1bdad95b97dd985d5b1d60aa1b60006107a7565b6001600160a01b031660a08201526080810151604051630637d5c160e11b91611390918691908e9087906024016126de565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610160820152610140810187905261012081018690526113e286346126bd565b60e08201526001600160a01b03851660c0820152610180810184905260006114136562726964676560d01b82610ca5565b6001600160a01b03166396e1785234846040518363ffffffff1660e01b815260040161143f9190612776565b60206040518083038185885af115801561145d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611482919061256a565b905060405180604001604052808b6001600160a01b031681526020018481525060cc600083815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550602082015181600101559050508a6001600160a01b031682608001516001600160a01b0316827f325cab7553038374e17f39bb45e2a2c90f66c6a52798cb5f95c20d94c11c95e28f8e88604051611555939291909283526001600160a01b03919091166020830152604082015260600190565b60405180910390a45050505061156a60018055565b5050505050505050565b61157c6115ed565b6001600160a01b0381166115e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610728565b6115ea8161182f565b50565b6065546001600160a01b031633146107d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610728565b6002600154036116995760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610728565b6002600155565b6040516001600160a01b038316602482015260448101829052610b4f90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526118b9565b8035600090815260cb6020908152604080832083929091839161172a918701908701611fa4565b6001600160a01b03908116825260208201929092526040016000205416905080610cb5576117578361198b565b6107b7565b60018055565b61176a611be6565b611772611c15565b6115ea81611c44565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f09190612866565b90508115801561180757506001600160a01b038116155b156107b757604051631467050360e21b81526004810185905260248101849052604401610728565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526106899085906323b872dd60e01b906084016116cc565b600061190e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611c8d9092919063ffffffff16565b805190915015610b4f578080602001905181019061192c91906125ad565b610b4f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610728565b6000611a048183356119a36040860160208701611fa4565b6040516119c692916001600160a01b031690602001918252602082015260400190565b60405160208183030381529060405280519060200120604051806020016119ec90611f72565b601f1982820381018352601f90910116604052611c9c565b6097549091506001600160a01b0380831691636c0db62b9116611a2d6040860160208701611fa4565b8535611a3f6060880160408901612883565b611a4c60608901896128a0565b611a5960808b018b6128a0565b6040518963ffffffff1660e01b8152600401611a7c9897969594939291906128e7565b600060405180830381600087803b158015611a9657600080fd5b505af1158015611aaa573d6000803e3d6000fd5b5050506001600160a01b038216600090815260c960209081526040808320805460ff1916600117905560ca9091529020839150611ae78282612a55565b50508135600090815260cb60209081526040808320849390929091611b1191908701908701611fa4565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b0316826020016020810190611b729190611fa4565b6001600160a01b031683357f9e465b29e576a3e01584e31d607353f21b80c055e813af907c0a495f6cf4f7bc611bab60608701876128a0565b611bb860808901896128a0565b611bc860608b0160408c01612883565b604051611bd9959493929190612adc565b60405180910390a4919050565b600054610100900460ff16611c0d5760405162461bcd60e51b815260040161072890612b19565b6107d0611da0565b600054610100900460ff16611c3c5760405162461bcd60e51b815260040161072890612b19565b6107d0611dc7565b6001600160a01b038116611c6b57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b60606107b48484600085611df7565b600083471015611cee5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401610728565b8151600003611d3f5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401610728565b8282516020840186f590506001600160a01b0381166107b75760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401610728565b600054610100900460ff1661175c5760405162461bcd60e51b815260040161072890612b19565b600054610100900460ff16611dee5760405162461bcd60e51b815260040161072890612b19565b6107d03361182f565b606082471015611e585760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610728565b600080866001600160a01b03168587604051611e749190612b64565b60006040518083038185875af1925050503d8060008114611eb1576040519150601f19603f3d011682016040523d82523d6000602084013e611eb6565b606091505b5091509150611ec787838387611ed4565b925050505b949350505050565b60608315611f43578251600003611f3c576001600160a01b0385163b611f3c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610728565b5081611ecc565b611ecc8383815115611f585781518083602001fd5b8060405162461bcd60e51b81526004016107289190612b80565b61199080612b9483390190565b6001600160a01b03811681146115ea57600080fd5b8035611f9f81611f7f565b919050565b600060208284031215611fb657600080fd5b81356107b781611f7f565b60008060008060808587031215611fd757600080fd5b843567ffffffffffffffff811115611fee57600080fd5b850160a0818803121561200057600080fd5b9350602085013561201081611f7f565b9250604085013561202081611f7f565b9396929550929360600135925050565b6000806040838503121561204357600080fd5b82359150602083013561205581611f7f565b809150509250929050565b80151581146115ea57600080fd5b60008060006060848603121561208357600080fd5b8335925060208401359150604084013561209c81612060565b809150509250925092565b6000602082840312156120b957600080fd5b5035919050565b6000806000604084860312156120d557600080fd5b833567ffffffffffffffff808211156120ed57600080fd5b908501906101a0828803121561210257600080fd5b9093506020850135908082111561211857600080fd5b818601915086601f83011261212c57600080fd5b81358181111561213b57600080fd5b87602082850101111561214d57600080fd5b6020830194508093505050509250925092565b60005b8381101561217b578181015183820152602001612163565b50506000910152565b6000815180845261219c816020860160208601612160565b601f01601f19169290920160200192915050565b8581526001600160a01b038516602082015260ff8416604082015260a0606082018190526000906121e390830185612184565b82810360808401526121f58185612184565b98975050505050505050565b6000806040838503121561221457600080fd5b82359150602083013561205581612060565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561226557612265612226565b604052919050565b600067ffffffffffffffff82111561228757612287612226565b50601f01601f191660200190565b600080600080600080600080610100898b0312156122b257600080fd5b8835975060208901356122c481611f7f565b965060408901356122d481611f7f565b9550606089013594506080890135935060a0890135925060c08901356122f981611f7f565b915060e089013567ffffffffffffffff81111561231557600080fd5b8901601f81018b1361232657600080fd5b80356123396123348261226d565b61223c565b8181528c602083850101111561234e57600080fd5b816020840160208301376000602083830101528093505050509295985092959890939650565b60006060828403121561238657600080fd5b6040516060810181811067ffffffffffffffff821117156123a9576123a9612226565b6040528251815260208301516123be81611f7f565b60208201526040928301519281019290925250919050565b6000808335601e198436030181126123ed57600080fd5b830160208101925035905067ffffffffffffffff81111561240d57600080fd5b80360382131561241c57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815281356020820152600061246560208401611f94565b6001600160a01b038116604084015250604083013560608301526060830135608083015261249560808401611f94565b6001600160a01b03811660a0840152506124b160a08401611f94565b6001600160a01b03811660c0840152506124cd60c08401611f94565b6001600160a01b03811660e08401525061010060e084013581840152610120818501358185015261014091508085013582850152506101608185013581850152612519818601866123d6565b925090506101a061018081818701526125376101c087018585612423565b9350612545818801886123d6565b878603601f1901848901529350905061255f848483612423565b979650505050505050565b60006020828403121561257c57600080fd5b5051919050565b8481528360208201526060604082015260006125a3606083018486612423565b9695505050505050565b6000602082840312156125bf57600080fd5b81516107b781612060565b600181811c908216806125de57607f821691505b6020821081036125fe57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052600160045260246000fd5b60ff811681146115ea57600080fd5b60006020828403121561263b57600080fd5b81516107b78161261a565b60006020828403121561265857600080fd5b815167ffffffffffffffff81111561266f57600080fd5b8201601f8101841361268057600080fd5b805161268e6123348261226d565b8181528560208385010111156126a357600080fd5b6126b4826020830160208601612160565b95945050505050565b81810381811115610cb557634e487b7160e01b600052601160045260246000fd5b60808152845160808201526000602086015160018060a01b0380821660a085015260ff60408901511660c08501526060880151915060a060e0850152612728610120850183612184565b91506080880151607f19858403016101008601526127468382612184565b9188166020860152506001600160a01b038616604085015291506127679050565b82606083015295945050505050565b60208152815160208201526000602083015161279d60408401826001600160a01b03169052565b50604083015160608301526060830151608083015260808301516127cc60a08401826001600160a01b03169052565b5060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610160808401919091528301516101a061018080850182905261284a6101c0860184612184565b90860151858203601f1901838701529092506125a38382612184565b60006020828403121561287857600080fd5b81516107b781611f7f565b60006020828403121561289557600080fd5b81356107b78161261a565b6000808335601e198436030181126128b757600080fd5b83018035915067ffffffffffffffff8211156128d257600080fd5b60200191503681900382131561241c57600080fd5b6001600160a01b038981168252881660208201526040810187905260ff8616606082015260c0608082018190526000906129249083018688612423565b82810360a0840152612937818587612423565b9b9a5050505050505050505050565b601f821115610b4f57600081815260208120601f850160051c8101602086101561296d5750805b601f850160051c820191505b8181101561298c57828155600101612979565b505050505050565b67ffffffffffffffff8311156129ac576129ac612226565b6129c0836129ba83546125ca565b83612946565b6000601f8411600181146129f457600085156129dc5750838201355b600019600387901b1c1916600186901b178355612a4e565b600083815260209020601f19861690835b82811015612a255786850135825560209485019460019092019101612a05565b5086821015612a425760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81358155600181016020830135612a6b81611f7f565b81546040850135612a7b8161261a565b60ff60a01b60a09190911b166001600160a01b03929092166001600160a81b03199190911617179055612ab160608301836128a0565b612abf818360028601612994565b5050612ace60808301836128a0565b610689818360038601612994565b606081526000612af0606083018789612423565b8281036020840152612b03818688612423565b91505060ff831660408301529695505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251612b76818460208701612160565b9190910192915050565b602081526000610cb2602083018461218456fe608060405234801561001057600080fd5b50611970806100206000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80636c6563f6116100c35780639dc29fac1161007c5780639dc29fac146102fa578063a457c2d71461030d578063a86f9d9e14610320578063a9059cbb14610333578063dd62ed3e14610346578063f2fde38b1461035957600080fd5b80636c6563f61461028a57806370a082311461029d578063715018a6146102c65780637cf8ed0d146102ce5780638da5cb5b146102e157806395d89b41146102f257600080fd5b8063313ce56711610115578063313ce5671461020e57806339509351146102235780633ab76e9f1461023657806340c10f191461025b57806349d126051461026e5780636c0db62b1461027757600080fd5b80630652b57a1461015d57806306fdde0314610172578063095ea7b31461019057806318160ddd146101b357806323b872dd146101c557806326afaadd146101d8575b600080fd5b61017061016b36600461144e565b61036c565b005b61017a6103ef565b604051610187919061148f565b60405180910390f35b6101a361019e3660046114c2565b610429565b6040519015158152602001610187565b60cb545b604051908152602001610187565b6101a36101d33660046114ee565b610443565b6101ef60fb5460fc546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610187565b60fd5460405160ff9091168152602001610187565b6101a36102313660046114c2565b610483565b6097546001600160a01b03165b6040516001600160a01b039091168152602001610187565b6101706102693660046114c2565b6104a5565b6101b760fc5481565b6101706102853660046115d2565b6105ae565b610243610298366004611691565b610754565b6101b76102ab36600461144e565b6001600160a01b0316600090815260c9602052604090205490565b610170610761565b60fb54610243906001600160a01b031681565b6065546001600160a01b0316610243565b61017a610775565b6101706103083660046114c2565b610807565b6101a361031b3660046114c2565b610901565b61024361032e3660046116c6565b610987565b6101a36103413660046114c2565b610994565b6101b76103543660046116f2565b6109c9565b61017061036736600461144e565b6109f4565b610374610a6d565b6001600160a01b03811661039b57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b60606103f9610ac7565b61040460fc54610ad6565b60405160200161041592919061172b565b604051602081830303815290604052905090565b600033610437818585610b69565b60019150505b92915050565b6000306001600160a01b0384160361046e576040516319a6f37760e21b815260040160405180910390fd5b610479848484610c8e565b90505b9392505050565b60003361043781858561049683836109c9565b6104a09190611769565b610b69565b647461696b6f60d81b6a1c1c9bdd995c97dc1bdbdb60aa1b6a1d1bdad95b97dd985d5b1d60aa1b6104d7836001610987565b6001600160a01b0316336001600160a01b03161415801561051457506104fe826001610987565b6001600160a01b0316336001600160a01b031614155b801561053c5750610526816001610987565b6001600160a01b0316336001600160a01b031614155b1561055a57604051630d85cccf60e11b815260040160405180910390fd5b6105648585610ca7565b846001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858560405161059f91815260200190565b60405180910390a25050505050565b600054610100900460ff16158080156105ce5750600054600160ff909116105b806105e85750303b1580156105e8575060005460ff166001145b6106505760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610673576000805461ff0019166101001790555b6001600160a01b0386161580610687575084155b8061069157504685145b8061069b57508251155b806106a557508151155b156106c3576040516301e25ab360e71b815260040160405180910390fd5b6106cc87610d69565b6106d68284610d82565b60fb80546001600160a01b0319166001600160a01b03881617905560fc85905560fd805460ff191660ff8616179055801561074b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6000610479848484610db3565b610769610a6d565b6107736000610e67565b565b606060cd80546107849061178a565b80601f01602080910402602001604051908101604052809291908181526020018280546107b09061178a565b80156107fd5780601f106107d2576101008083540402835291602001916107fd565b820191906000526020600020905b8154815290600101906020018083116107e057829003601f168201915b5050505050905090565b647461696b6f60d81b6a1c1c9bdd995c97dc1bdbdb60aa1b6a1d1bdad95b97dd985d5b1d60aa1b610839836001610987565b6001600160a01b0316336001600160a01b0316141580156108765750610860826001610987565b6001600160a01b0316336001600160a01b031614155b801561089e5750610888816001610987565b6001600160a01b0316336001600160a01b031614155b156108bc57604051630d85cccf60e11b815260040160405180910390fd5b6108c68585610eb9565b846001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58560405161059f91815260200190565b6000338161090f82866109c9565b90508381101561096f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610647565b61097c8286868403610b69565b506001949350505050565b600061047c468484610db3565b6000306001600160a01b038416036109bf576040516319a6f37760e21b815260040160405180910390fd5b61047c8383610fea565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b6109fc610a6d565b6001600160a01b038116610a615760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610647565b610a6a81610e67565b50565b6065546001600160a01b031633146107735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610647565b606060cc80546107849061178a565b60606000610ae383610ff8565b600101905060008167ffffffffffffffff811115610b0357610b0361152f565b6040519080825280601f01601f191660200182016040528015610b2d576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610b3757509392505050565b6001600160a01b038316610bcb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610647565b6001600160a01b038216610c2c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610647565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600033610c9c8582856110d0565b61097c85858561114a565b6001600160a01b038216610cfd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610647565b8060cb6000828254610d0f9190611769565b90915550506001600160a01b038216600081815260c960209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b5050565b610d716112f5565b610d79611324565b610a6a81611353565b600054610100900460ff16610da95760405162461bcd60e51b8152600401610647906117c4565b610d65828261139c565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa158015610e04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e28919061180f565b905081158015610e3f57506001600160a01b038116155b1561047c57604051631467050360e21b81526004810185905260248101849052604401610647565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610f195760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610647565b6001600160a01b038216600090815260c9602052604090205481811015610f8d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610647565b6001600160a01b038316600081815260c960209081526040808320868603905560cb80548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610c81565b505050565b60003361043781858561114a565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106110375772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611063576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061108157662386f26fc10000830492506010015b6305f5e1008310611099576305f5e100830492506008015b61271083106110ad57612710830492506004015b606483106110bf576064830492506002015b600a831061043d5760010192915050565b60006110dc84846109c9565b9050600019811461114457818110156111375760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610647565b6111448484848403610b69565b50505050565b6001600160a01b0383166111ae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610647565b6001600160a01b0382166112105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610647565b6001600160a01b038316600090815260c96020526040902054818110156112885760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610647565b6001600160a01b03808516600081815260c9602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112e89086815260200190565b60405180910390a3611144565b600054610100900460ff1661131c5760405162461bcd60e51b8152600401610647906117c4565b6107736113dc565b600054610100900460ff1661134b5760405162461bcd60e51b8152600401610647906117c4565b610773611409565b6001600160a01b03811661137a57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166113c35760405162461bcd60e51b8152600401610647906117c4565b60cc6113cf838261187a565b5060cd610fe5828261187a565b600054610100900460ff166114035760405162461bcd60e51b8152600401610647906117c4565b60018055565b600054610100900460ff166114305760405162461bcd60e51b8152600401610647906117c4565b61077333610e67565b6001600160a01b0381168114610a6a57600080fd5b60006020828403121561146057600080fd5b813561047c81611439565b60005b8381101561148657818101518382015260200161146e565b50506000910152565b60208152600082518060208401526114ae81604085016020870161146b565b601f01601f19169190910160400192915050565b600080604083850312156114d557600080fd5b82356114e081611439565b946020939093013593505050565b60008060006060848603121561150357600080fd5b833561150e81611439565b9250602084013561151e81611439565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261155657600080fd5b813567ffffffffffffffff808211156115715761157161152f565b604051601f8301601f19908116603f011681019082821181831017156115995761159961152f565b816040528381528660208588010111156115b257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c087890312156115eb57600080fd5b86356115f681611439565b9550602087013561160681611439565b945060408701359350606087013560ff8116811461162357600080fd5b9250608087013567ffffffffffffffff8082111561164057600080fd5b61164c8a838b01611545565b935060a089013591508082111561166257600080fd5b5061166f89828a01611545565b9150509295509295509295565b8035801515811461168c57600080fd5b919050565b6000806000606084860312156116a657600080fd5b83359250602084013591506116bd6040850161167c565b90509250925092565b600080604083850312156116d957600080fd5b823591506116e96020840161167c565b90509250929050565b6000806040838503121561170557600080fd5b823561171081611439565b9150602083013561172081611439565b809150509250929050565b6000835161173d81846020880161146b565b6241c55b60e71b908301908152835161175d81600484016020880161146b565b01600401949350505050565b8082018082111561043d57634e487b7160e01b600052601160045260246000fd5b600181811c9082168061179e57607f821691505b6020821081036117be57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561182157600080fd5b815161047c81611439565b601f821115610fe557600081815260208120601f850160051c810160208610156118535750805b601f850160051c820191505b818110156118725782815560010161185f565b505050505050565b815167ffffffffffffffff8111156118945761189461152f565b6118a8816118a2845461178a565b8461182c565b602080601f8311600181146118dd57600084156118c55750858301515b600019600386901b1c1916600185901b178555611872565b600085815260208120601f198616915b8281101561190c578886015182559484019460019091019084016118ed565b508582101561192a5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220b40c6ab2d2ac6f02bd81640104801f3a38058209c3426b02583ae83cd4f9626164736f6c63430008140033a264697066735822122051da8881de7c8127cafb93733e67495f9cf4eb99b2d5f043b163acb59a7c9c5c64736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000002": { + "contractName": "TokenVaultProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000002" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220caef1c2a647344b8936c2def885861b955c9b56ccb762c5243ac8ec49af2096f64736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000003": { + "contractName": "ProxiedEtherVault", + "storage": {}, + "code": "0x6080604052600436106100ab5760003560e01c80638da5cb5b116100645780638da5cb5b146101c0578063a86f9d9e146101de578063ba0bbd95146101fe578063d73bb3d01461021e578063f2fde38b1461023e578063fe9fbb801461025e57600080fd5b80630652b57a146100f457806319ab453c146101145780632d1fb389146101345780633ab76e9f146101545780636c6563f61461018b578063715018a6146101ab57600080fd5b366100ef5747158015906100cf575033600090815260c9602052604090205460ff16155b156100ed57604051634fa3f24560e01b815260040160405180910390fd5b005b600080fd5b34801561010057600080fd5b506100ed61010f366004610a90565b6102a7565b34801561012057600080fd5b506100ed61012f366004610a90565b61032a565b34801561014057600080fd5b506100ed61014f366004610ac2565b610442565b34801561016057600080fd5b506097546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019757600080fd5b5061016e6101a6366004610af7565b6104fb565b3480156101b757600080fd5b506100ed610512565b3480156101cc57600080fd5b506065546001600160a01b031661016e565b3480156101ea57600080fd5b5061016e6101f9366004610b2c565b610526565b34801561020a57600080fd5b506100ed610219366004610b4f565b610533565b34801561022a57600080fd5b506100ed610239366004610b7b565b6105f1565b34801561024a57600080fd5b506100ed610259366004610a90565b610674565b34801561026a57600080fd5b50610297610279366004610a90565b6001600160a01b0316600090815260c9602052604090205460ff1690565b6040519015158152602001610182565b6102af6106ea565b6001600160a01b0381166102d657604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b600054610100900460ff161580801561034a5750600054600160ff909116105b806103645750303b158015610364575060005460ff166001145b6103cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156103ef576000805461ff0019166101001790555b6103f882610744565b801561043e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61044a6106ea565b6001600160a01b038216158061047e57506001600160a01b038216600090815260c9602052604090205460ff161515811515145b1561049c57604051631bebdfa760e21b815260040160405180910390fd5b6001600160a01b038216600081815260c96020908152604091829020805460ff191685151590811790915591519182527f4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf910160405180910390a25050565b600061050884848461075d565b90505b9392505050565b61051a6106ea565b6105246000610811565b565b600061050b46848461075d565b33600090815260c9602052604090205460ff1661056357604051634fa3f24560e01b815260040160405180910390fd5b61056b610863565b6001600160a01b0382166105925760405163687563df60e01b815260040160405180910390fd5b6105a56001600160a01b038316826108bc565b816001600160a01b03167f7b9f77d35803cd201eac9c4ed739bc1fcd3f1be6ab8877d925d1e55517b6fd6e826040516105e091815260200190565b60405180910390a261043e60018055565b33600090815260c9602052604090205460ff1661062157604051634fa3f24560e01b815260040160405180910390fd5b610629610863565b61063333826108bc565b60405181815233907f7b9f77d35803cd201eac9c4ed739bc1fcd3f1be6ab8877d925d1e55517b6fd6e9060200160405180910390a261067160018055565b50565b61067c6106ea565b6001600160a01b0381166106e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103c3565b61067181610811565b6065546001600160a01b031633146105245760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c3565b61074c61097d565b6107546109ac565b610671816109db565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa1580156107ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d29190610b94565b9050811580156107e957506001600160a01b038116155b1561050b57604051631467050360e21b815260048101859052602481018490526044016103c3565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6002600154036108b55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103c3565b6002600155565b8015806108d057506001600160a01b038216155b156108d9575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610926576040519150601f19603f3d011682016040523d82523d6000602084013e61092b565b606091505b50509050806109725760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b60448201526064016103c3565b505050565b60018055565b600054610100900460ff166109a45760405162461bcd60e51b81526004016103c390610bb1565b610524610a24565b600054610100900460ff166109d35760405162461bcd60e51b81526004016103c390610bb1565b610524610a4b565b6001600160a01b038116610a0257604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166109775760405162461bcd60e51b81526004016103c390610bb1565b600054610100900460ff16610a725760405162461bcd60e51b81526004016103c390610bb1565b61052433610811565b6001600160a01b038116811461067157600080fd5b600060208284031215610aa257600080fd5b813561050b81610a7b565b80358015158114610abd57600080fd5b919050565b60008060408385031215610ad557600080fd5b8235610ae081610a7b565b9150610aee60208401610aad565b90509250929050565b600080600060608486031215610b0c57600080fd5b8335925060208401359150610b2360408501610aad565b90509250925092565b60008060408385031215610b3f57600080fd5b82359150610aee60208401610aad565b60008060408385031215610b6257600080fd5b8235610b6d81610a7b565b946020939093013593505050565b600060208284031215610b8d57600080fd5b5035919050565b600060208284031215610ba657600080fd5b815161050b81610a7b565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220d1f620816e429aef5462d90b937779e4a09a43cf61a7434dba633ff2bfa8098364736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000003": { + "contractName": "EtherVaultProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xa738d3397c1eb96f671d7e4bd29cabbfa1a9c9ebc0db4142aee17809c43ab720": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000003" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220caef1c2a647344b8936c2def885861b955c9b56ccb762c5243ac8ec49af2096f64736f6c63430008140033", + "balance": "0xffffffffffffff21f494c589bfffffff" + }, + "0x0000777700000000000000000000000000000007": { + "contractName": "ProxiedSignalService", + "storage": {}, + "code": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80636c6563f6116100715780636c6563f614610162578063715018a6146101755780638da5cb5b1461017d578063a86f9d9e1461018e578063f2fde38b146101a1578063f8f3f844146101b457600080fd5b80630652b57a146100b957806319ab453c146100ce57806332676bc6146100e15780633ab76e9f146101095780635221f6131461012e57806366ca2bc014610141575b600080fd5b6100cc6100c7366004611a18565b6101e0565b005b6100cc6100dc366004611a18565b610263565b6100f46100ef366004611a35565b61037b565b60405190151581526020015b60405180910390f35b6097546001600160a01b03165b6040516001600160a01b039091168152602001610100565b6100f461013c366004611a61565b6103ed565b61015461014f366004611af7565b61055d565b604051908152602001610100565b610116610170366004611b25565b6105a2565b6100cc6105b9565b6065546001600160a01b0316610116565b61011661019c366004611b5a565b6105cd565b6100cc6101af366004611a18565b6105da565b6101546101c2366004611a35565b6040805192835260208301919091526034600c830120918101905290565b6101e8610653565b6001600160a01b03811661020f57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b600054610100900460ff16158080156102835750600054600160ff909116105b8061029d5750303b15801561029d575060005460ff166001145b6103055760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610328576000805461ff0019166101001790555b610331826106ad565b8015610377576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60006001600160a01b0383166103a4576040516354cdfc8d60e11b815260040160405180910390fd5b60008290036103c65760405163014f1da760e21b815260040160405180910390fd5b5060408051838152602081018390526034600c820120908201909152546001145b92915050565b600046860361040f5760405163e822b48d60e01b815260040160405180910390fd5b6001600160a01b038516610436576040516354cdfc8d60e11b815260040160405180910390fd5b60008490036104585760405163014f1da760e21b815260040160405180910390fd5b600061046683850185611bf6565b9050600061047d647461696b6f60d81b60006105cd565b8251604051632e24533960e21b81526001600160a01b03929092169163b8914ce4916104af9160040190815260200190565b602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f09190611cbd565b60408051898152602081018990526034600c820120818301909252606081019190915290915061055190608001604051602081830303815290604052604051806040016040528060018152602001600160f81b8152508460200151846106c6565b98975050505050505050565b600081810361057f5760405163014f1da760e21b815260040160405180910390fd5b506040805133815260208101929092526034600c83012091810190526001815590565b60006105af8484846106ea565b90505b9392505050565b6105c1610653565b6105cb600061079e565b565b60006105b24684846106ea565b6105e2610653565b6001600160a01b0381166106475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102fc565b6106508161079e565b50565b6065546001600160a01b031633146105cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102fc565b6106b56107f0565b6106bd61081f565b6106508161084e565b6000806106d286610897565b90506106e0818686866108c9565b9695505050505050565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa15801561073b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075f9190611cd6565b90508115801561077657506001600160a01b038116155b156105b257604051631467050360e21b815260048101859052602481018490526044016102fc565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166108175760405162461bcd60e51b81526004016102fc90611cf3565b6105cb610906565b600054610100900460ff166108465760405162461bcd60e51b81526004016102fc90611cf3565b6105cb610933565b6001600160a01b03811661087557604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b606081805190602001206040516020016108b391815260200190565b6040516020818303038152906040529050919050565b60008060006108d9878686610963565b915091508180156108fb57508051602080830191909120875191880191909120145b979650505050505050565b600054610100900460ff1661092d5760405162461bcd60e51b81526004016102fc90611cf3565b60018055565b600054610100900460ff1661095a5760405162461bcd60e51b81526004016102fc90611cf3565b6105cb3361079e565b60006060600061097285610a3e565b90506000806000610984848a89610b37565b815192955090935091501580806109985750815b6109e45760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e00000000000060448201526064016102fc565b600081610a005760405180602001604052806000815250610a2c565b610a2c86610a0f600188611d54565b81518110610a1f57610a1f611d67565b6020026020010151610f57565b919b919a509098505050505050505050565b60606000610a4b83610f7e565b90506000815167ffffffffffffffff811115610a6957610a69611b86565b604051908082528060200260200182016040528015610aae57816020015b6040805180820190915260608082526020820152815260200190600190039081610a875790505b50905060005b8251811015610b2f576000610ae1848381518110610ad457610ad4611d67565b6020026020010151610fb1565b90506040518060400160405280610af783610f7e565b815260200182815250838381518110610b1257610b12611d67565b60200260200101819052505080610b2890611d7d565b9050610ab4565b509392505050565b600060606000806000610b4987611041565b90506000869050600080610b70604051806040016040528060608152602001606081525090565b60005b8c51811015610f2f578c8181518110610b8e57610b8e611d67565b602002602001015191508284610ba49190611d96565b9350610bb1600188611d96565b965083600003610c0e578482602001518051906020012014610c095760405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b60448201526064016102fc565b610cd0565b602082602001515110610c75578482602001518051906020012014610c095760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c2068617368000000000060448201526064016102fc565b84610c83836020015161117a565b14610cd05760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f6465206861736800000000000060448201526064016102fc565b610cdc60106001611da9565b60ff1682600001515103610d4a5785518414610f2f576000868581518110610d0657610d06611d67565b01602001518351805160f89290921c925060009183908110610d2a57610d2a611d67565b60200260200101519050610d3d816111a2565b9650600194505050610f1f565b81515160011901610ed7576000610d60836111d8565b9050600081600081518110610d7757610d77611d67565b016020015160f81c90506000610d8e600283611dc2565b610d99906002611df2565b90506000610daa848360ff166111fc565b90506000610db88b8a6111fc565b90506000610dc68383611232565b905060ff851660021480610ddd575060ff85166003145b15610e1757808351148015610df25750808251145b15610e0457610e01818b611d96565b99505b50600160ff1b9950610f2f945050505050565b60ff85161580610e2a575060ff85166001145b15610e805782518114610e4a5750600160ff1b9950610f2f945050505050565b610e718860000151600181518110610e6457610e64611d67565b60200260200101516111a2565b9a509750610f1f945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e206044820152650e0e4caccd2f60d31b60648201526084016102fc565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e00000060448201526064016102fc565b610f2881611d7d565b9050610b73565b50600160ff1b841486610f4287866111fc565b909e909d50909b509950505050505050505050565b805180516060916103e791610f6e90600190611d54565b81518110610ad457610ad4611d67565b6040805180820182526000808252602091820152815180830190925282518252808301908201526060906103e7906112ac565b60606000806000610fc185611498565b919450925090506000816001811115610fdc57610fdc611e0b565b146110295760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e000000000000000060448201526064016102fc565b611038856020015184846117e2565b95945050505050565b60606000825160026110539190611e21565b67ffffffffffffffff81111561106b5761106b611b86565b6040519080825280601f01601f191660200182016040528015611095576020820181803683370190505b50905060005b83518110156111735760048482815181106110b8576110b8611d67565b01602001516001600160f81b031916901c826110d5836002611e21565b815181106110e5576110e5611d67565b60200101906001600160f81b031916908160001a905350601084828151811061111057611110611d67565b0160200151611122919060f81c611dc2565b60f81b82611131836002611e21565b61113c906001611d96565b8151811061114c5761114c611d67565b60200101906001600160f81b031916908160001a90535061116c81611d7d565b905061109b565b5092915050565b600060208251101561118e57506020015190565b818060200190518101906103e79190611cbd565b600060606020836000015110156111c3576111bc8361188b565b90506111cf565b6111cc83610fb1565b90505b6105b28161117a565b60606103e76111f78360000151600081518110610ad457610ad4611d67565b611041565b60608251821061121b57506040805160208101909152600081526103e7565b6105b2838384865161122d9190611d54565b611896565b6000805b8084511180156112465750808351115b8015611297575082818151811061125f5761125f611d67565b602001015160f81c60f81b6001600160f81b03191684828151811061128657611286611d67565b01602001516001600160f81b031916145b156105b2576112a581611d7d565b9050611236565b60606000806112ba84611498565b919350909150600190508160018111156112d6576112d6611e0b565b146113235760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e00000000000000000060448201526064016102fc565b6040805160208082526104208201909252600091816020015b604080518082019091526000808252602082015281526020019060019003908161133c5790505090506000835b865181101561148d57602082106113d55760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201526939ba103632b733ba341760b11b60648201526084016102fc565b6000806114126040518060400160405280858c600001516113f69190611d54565b8152602001858c6020015161140b9190611d96565b9052611498565b50915091506040518060400160405280838361142e9190611d96565b8152602001848b602001516114439190611d96565b81525085858151811061145857611458611d67565b602090810291909101015261146e600185611d96565b935061147a8183611d96565b6114849084611d96565b92505050611369565b508152949350505050565b6000806000808460000151116114f05760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e000000000000000060448201526064016102fc565b6020840151805160001a607f81116115155760006001600094509450945050506117db565b60b7811161159157600061152a608083611d54565b90508087600001511161157f5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e0000000000000060448201526064016102fc565b600195509350600092506117db915050565b60bf81116116805760006115a660b783611d54565b9050808760000151116115fb5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e0060448201526064016102fc565b600183015160208290036101000a90046116158183611d96565b8851116116645760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e000000000000000060448201526064016102fc565b61166f826001611d96565b96509450600093506117db92505050565b60f781116116fb57600061169560c083611d54565b9050808760000151116116ea5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e00000000000000000060448201526064016102fc565b6001955093508492506117db915050565b600061170860f783611d54565b90508087600001511161175d5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e00000060448201526064016102fc565b600183015160208290036101000a90046117778183611d96565b8851116117bf5760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b210292628103637b733903634b9ba1760511b60448201526064016102fc565b6117ca826001611d96565b96509450600193506117db92505050565b9193909250565b606060008267ffffffffffffffff8111156117ff576117ff611b86565b6040519080825280601f01601f191660200182016040528015611829576020820181803683370190505b509050805160000361183c5790506105b2565b8484016020820160005b8581101561185e578281015182820152602001611846565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60606103e7826119ed565b6060816118a481601f611d96565b10156118e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102fc565b826118ee8382611d96565b101561192d5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102fc565b6119378284611d96565b8451101561197b5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016102fc565b60608215801561199a57604051915060008252602082016040526119e4565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156119d35780518352602092830192016119bb565b5050858452601f01601f1916604052505b50949350505050565b60606103e78260200151600084600001516117e2565b6001600160a01b038116811461065057600080fd5b600060208284031215611a2a57600080fd5b81356105b281611a03565b60008060408385031215611a4857600080fd5b8235611a5381611a03565b946020939093013593505050565b600080600080600060808688031215611a7957600080fd5b853594506020860135611a8b81611a03565b935060408601359250606086013567ffffffffffffffff80821115611aaf57600080fd5b818801915088601f830112611ac357600080fd5b813581811115611ad257600080fd5b896020828501011115611ae457600080fd5b9699959850939650602001949392505050565b600060208284031215611b0957600080fd5b5035919050565b80358015158114611b2057600080fd5b919050565b600080600060608486031215611b3a57600080fd5b8335925060208401359150611b5160408501611b10565b90509250925092565b60008060408385031215611b6d57600080fd5b82359150611b7d60208401611b10565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611bbf57611bbf611b86565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611bee57611bee611b86565b604052919050565b60006020808385031215611c0957600080fd5b823567ffffffffffffffff80821115611c2157600080fd5b9084019060408287031215611c3557600080fd5b611c3d611b9c565b823581528383013582811115611c5257600080fd5b80840193505086601f840112611c6757600080fd5b823582811115611c7957611c79611b86565b611c8b601f8201601f19168601611bc5565b92508083528785828601011115611ca157600080fd5b8085850186850137600090830185015292830152509392505050565b600060208284031215611ccf57600080fd5b5051919050565b600060208284031215611ce857600080fd5b81516105b281611a03565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156103e7576103e7611d3e565b634e487b7160e01b600052603260045260246000fd5b600060018201611d8f57611d8f611d3e565b5060010190565b808201808211156103e7576103e7611d3e565b60ff81811683821601908111156103e7576103e7611d3e565b600060ff831680611de357634e487b7160e01b600052601260045260246000fd5b8060ff84160691505092915050565b60ff82811682821603908111156103e7576103e7611d3e565b634e487b7160e01b600052602160045260246000fd5b80820281158282048414176103e7576103e7611d3e56fea2646970667358221220727b3b71bb6428f2b0ff827ceeabefd08ed4c1ffd6ad882c5d137fbe8f96be8064736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000007": { + "contractName": "SignalServiceProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000007" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220caef1c2a647344b8936c2def885861b955c9b56ccb762c5243ac8ec49af2096f64736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000005": { + "contractName": "RegularERC20", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x526567756c617245524332300000000000000000000000000000000000000018", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x52474c0000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000000000000000003e8000", + "0xc4fd933fc30203af5f8bd19ad30e064c96642a369b9fc4288ea95569541f4034": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x967c153683def525608ec6efe0cac3319a9c97a6d4164fb43765c79311abffdc": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x5de52a798624bd714aafa39067b28145e3708f46d26ac1d8a415c99cb44977ab": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x29f6d6ec0904737d43c119104bcf9427181549a0e10faeefa218e436001011fd": "0x00000000000000000000000000000000000000000000000000000000000fa000" + }, + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069c565b60405180910390f35b6100df6100da366004610706565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610730565b61024c565b604051601281526020016100c3565b6100df610131366004610706565b610270565b6100f361014436600461076c565b6001600160a01b031660009081526020819052604090205490565b6100b6610292565b6100df610175366004610706565b6102a1565b6100df610188366004610706565b610321565b6100f361019b36600461078e565b61032f565b6060600380546101af906107c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c1565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b60003361024081858561035a565b60019150505b92915050565b60003361025a85828561047e565b6102658585856104f8565b506001949350505050565b600033610240818585610283838361032f565b61028d91906107fb565b61035a565b6060600480546101af906107c1565b600033816102af828661032f565b9050838110156103145760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610265828686840361035a565b6000336102408185856104f8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103bc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161030b565b6001600160a01b03821661041d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161030b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061048a848461032f565b905060001981146104f257818110156104e55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161030b565b6104f2848484840361035a565b50505050565b6001600160a01b03831661055c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161030b565b6001600160a01b0382166105be5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161030b565b6001600160a01b038316600090815260208190526040902054818110156106365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161030b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f2565b600060208083528351808285015260005b818110156106c9578581018301518582016040015282016106ad565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461070157600080fd5b919050565b6000806040838503121561071957600080fd5b610722836106ea565b946020939093013593505050565b60008060006060848603121561074557600080fd5b61074e846106ea565b925061075c602085016106ea565b9150604084013590509250925092565b60006020828403121561077e57600080fd5b610787826106ea565b9392505050565b600080604083850312156107a157600080fd5b6107aa836106ea565b91506107b8602084016106ea565b90509250929050565b600181811c908216806107d557607f821691505b6020821081036107f557634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561024657634e487b7160e01b600052601160045260246000fdfea26469706673582212200c6a590d0220261e9ad2a153910ca40f21f69a425e5af92fee3a769ffc07753764736f6c63430008140033", + "balance": "0x0" + } +} diff --git a/crates/chainspec/res/genesis/taiko/grimsvotn.json b/crates/chainspec/res/genesis/taiko/grimsvotn.json new file mode 100644 index 000000000000..b9932a22f1e7 --- /dev/null +++ b/crates/chainspec/res/genesis/taiko/grimsvotn.json @@ -0,0 +1,164 @@ +{ + "0x19B4F9C381C7927FE33D853e48b560141A380C44": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x09d4121CD4123F039390c7f5e99b15BED5e07222": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x9E5da4B6D25Ee5A68aa8c29B6B87C82f7F463893": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x5075901Fdd1d57Ca754472cb94967f564bA7dc6E": { + "contractName": "LibTrieProof", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063a54274621461003a575b600080fd5b61004d61004836600461173e565b610061565b604051901515815260200160405180910390f35b600080806100718486018661188e565b6040516bffffffffffffffffffffffff1960608c901b166020820152919350915060009081906100b490603401604051602081830303815290604052858d610184565b915091508161010a5760405162461bcd60e51b815260206004820152601960248201527f4c54503a696e76616c6964206163636f756e742070726f6f660000000000000060448201526064015b60405180910390fd5b6000610115826101ad565b9050600061013c8260028151811061012f5761012f6118f2565b60200260200101516101e6565b90506101738b60405160200161015491815260200190565b60405160208183030381529060405261016c8c6102e9565b87846102fc565b9d9c50505050505050505050505050565b60006060600061019386610316565b90506101a0818686610348565b9250925050935093915050565b6040805180820182526000808252602091820152815180830190925282518252808301908201526060906101e090610423565b92915050565b600060218260000151111561023d5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610101565b600080600061024b8561060f565b91945092509050600081600181111561026657610266611908565b146102b35760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610101565b60008386602001516102c59190611934565b805190915060208410156102df5760208490036101000a90045b9695505050505050565b60606101e06102f783610959565b610a8d565b60008061030886610316565b90506102df81868686610afc565b6060818051906020012060405160200161033291815260200190565b6040516020818303038152906040529050919050565b60006060600061035785610b39565b90506000806000610369848a89610c32565b8151929550909350915015808061037d5750815b6103c95760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e0000000000006044820152606401610101565b6000816103e55760405180602001604052806000815250610411565b610411866103f4600188611947565b81518110610404576104046118f2565b6020026020010151611052565b919b919a509098505050505050505050565b60606000806104318461060f565b9193509091506001905081600181111561044d5761044d611908565b1461049a5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e0000000000000000006044820152606401610101565b6040805160208082526104208201909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816104b35790505090506000835b8651811015610604576020821061054c5760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201526939ba103632b733ba341760b11b6064820152608401610101565b6000806105896040518060400160405280858c6000015161056d9190611947565b8152602001858c602001516105829190611934565b905261060f565b5091509150604051806040016040528083836105a59190611934565b8152602001848b602001516105ba9190611934565b8152508585815181106105cf576105cf6118f2565b60209081029190910101526105e5600185611934565b93506105f18183611934565b6105fb9084611934565b925050506104e0565b508152949350505050565b6000806000808460000151116106675760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e00000000000000006044820152606401610101565b6020840151805160001a607f811161068c576000600160009450945094505050610952565b60b781116107085760006106a1608083611947565b9050808760000151116106f65760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e000000000000006044820152606401610101565b60019550935060009250610952915050565b60bf81116107f757600061071d60b783611947565b9050808760000151116107725760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e006044820152606401610101565b600183015160208290036101000a900461078c8183611934565b8851116107db5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e00000000000000006044820152606401610101565b6107e6826001611934565b965094506000935061095292505050565b60f7811161087257600061080c60c083611947565b9050808760000151116108615760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e0000000000000000006044820152606401610101565b600195509350849250610952915050565b600061087f60f783611947565b9050808760000151116108d45760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e0000006044820152606401610101565b600183015160208290036101000a90046108ee8183611934565b8851116109365760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b210292628103637b733903634b9ba1760511b6044820152606401610101565b610941826001611934565b965094506001935061095292505050565b9193909250565b606060008260405160200161097091815260200190565b604051602081830303815290604052905060005b60208110156109c55781818151811061099f5761099f6118f2565b01602001516001600160f81b0319166000036109c5576109be8161195a565b9050610984565b60006109d2826020611947565b67ffffffffffffffff8111156109ea576109ea6117eb565b6040519080825280601f01601f191660200182016040528015610a14576020820181803683370190505b50905060005b8151811015610a84578383610a2e8161195a565b945081518110610a4057610a406118f2565b602001015160f81c60f81b828281518110610a5d57610a5d6118f2565b60200101906001600160f81b031916908160001a905350610a7d8161195a565b9050610a1a565b50949350505050565b60608082516001148015610abb5750608083600081518110610ab157610ab16118f2565b016020015160f81c105b15610ac75750816101e0565b610ad383516080611079565b83604051602001610ae59291906119a3565b604051602081830303815290604052905092915050565b6000806000610b0c878686610348565b91509150818015610b2e57508051602080830191909120875191880191909120145b979650505050505050565b60606000610b46836101ad565b90506000815167ffffffffffffffff811115610b6457610b646117eb565b604051908082528060200260200182016040528015610ba957816020015b6040805180820190915260608082526020820152815260200190600190039081610b825790505b50905060005b8251811015610c2a576000610bdc848381518110610bcf57610bcf6118f2565b6020026020010151611223565b90506040518060400160405280610bf2836101ad565b815260200182815250838381518110610c0d57610c0d6118f2565b60200260200101819052505080610c239061195a565b9050610baf565b509392505050565b600060606000806000610c44876112b3565b90506000869050600080610c6b604051806040016040528060608152602001606081525090565b60005b8c5181101561102a578c8181518110610c8957610c896118f2565b602002602001015191508284610c9f9190611934565b9350610cac600188611934565b965083600003610d09578482602001518051906020012014610d045760405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b6044820152606401610101565b610dcb565b602082602001515110610d70578482602001518051906020012014610d045760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c206861736800000000006044820152606401610101565b84610d7e83602001516113ec565b14610dcb5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f646520686173680000000000006044820152606401610101565b610dd7601060016119c0565b60ff1682600001515103610e45578551841461102a576000868581518110610e0157610e016118f2565b01602001518351805160f89290921c925060009183908110610e2557610e256118f2565b60200260200101519050610e3881611414565b965060019450505061101a565b81515160011901610fd2576000610e5b8361144a565b9050600081600081518110610e7257610e726118f2565b016020015160f81c90506000610e896002836119ef565b610e94906002611a11565b90506000610ea5848360ff1661146e565b90506000610eb38b8a61146e565b90506000610ec183836114a4565b905060ff851660021480610ed8575060ff85166003145b15610f1257808351148015610eed5750808251145b15610eff57610efc818b611934565b99505b50600160ff1b995061102a945050505050565b60ff85161580610f25575060ff85166001145b15610f7b5782518114610f455750600160ff1b995061102a945050505050565b610f6c8860000151600181518110610f5f57610f5f6118f2565b6020026020010151611414565b9a50975061101a945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e206044820152650e0e4caccd2f60d31b6064820152608401610101565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e0000006044820152606401610101565b6110238161195a565b9050610c6e565b50600160ff1b84148661103d878661146e565b909e909d50909b509950505050505050505050565b805180516060916101e09161106990600190611947565b81518110610bcf57610bcf6118f2565b60608060388410156110e057604080516001808252818301909252906020820181803683370190505090506110ae83856119c0565b60f81b816000815181106110c4576110c46118f2565b60200101906001600160f81b031916908160001a90535061121c565b600060015b6110ef8187611a2a565b15611112576110fd8261195a565b915061110b61010082611a3e565b90506110e5565b61111d826001611934565b67ffffffffffffffff811115611135576111356117eb565b6040519080825280601f01601f19166020018201604052801561115f576020820181803683370190505b50925061116c85836119c0565b6111779060376119c0565b60f81b8360008151811061118d5761118d6118f2565b60200101906001600160f81b031916908160001a905350600190505b818111611219576101006111bd8284611947565b6111c990610100611b39565b6111d39088611a2a565b6111dd9190611b45565b60f81b8382815181106111f2576111f26118f2565b60200101906001600160f81b031916908160001a9053506112128161195a565b90506111a9565b50505b9392505050565b606060008060006112338561060f565b91945092509050600081600181111561124e5761124e611908565b1461129b5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e00000000000000006044820152606401610101565b6112aa8560200151848461151e565b95945050505050565b60606000825160026112c59190611a3e565b67ffffffffffffffff8111156112dd576112dd6117eb565b6040519080825280601f01601f191660200182016040528015611307576020820181803683370190505b50905060005b83518110156113e557600484828151811061132a5761132a6118f2565b01602001516001600160f81b031916901c82611347836002611a3e565b81518110611357576113576118f2565b60200101906001600160f81b031916908160001a9053506010848281518110611382576113826118f2565b0160200151611394919060f81c6119ef565b60f81b826113a3836002611a3e565b6113ae906001611934565b815181106113be576113be6118f2565b60200101906001600160f81b031916908160001a9053506113de8161195a565b905061130d565b5092915050565b600060208251101561140057506020015190565b818060200190518101906101e09190611b59565b600060606020836000015110156114355761142e836115c7565b9050611441565b61143e83611223565b90505b61121c816113ec565b60606101e06114698360000151600081518110610bcf57610bcf6118f2565b6112b3565b60608251821061148d57506040805160208101909152600081526101e0565b61121c838384865161149f9190611947565b6115d2565b6000805b8084511180156114b85750808351115b801561150957508281815181106114d1576114d16118f2565b602001015160f81c60f81b6001600160f81b0319168482815181106114f8576114f86118f2565b01602001516001600160f81b031916145b1561121c576115178161195a565b90506114a8565b606060008267ffffffffffffffff81111561153b5761153b6117eb565b6040519080825280601f01601f191660200182016040528015611565576020820181803683370190505b509050805160000361157857905061121c565b8484016020820160005b8581101561159a578281015182820152602001611582565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60606101e082611728565b6060816115e081601f611934565b101561161f5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610101565b8261162a8382611934565b10156116695760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610101565b6116738284611934565b845110156116b75760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610101565b6060821580156116d65760405191506000825260208201604052610a84565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561170f5780518352602092830192016116f7565b5050858452601f01601f19166040525050949350505050565b60606101e082602001516000846000015161151e565b60008060008060008060a0878903121561175757600080fd5b8635955060208701356001600160a01b038116811461177557600080fd5b94506040870135935060608701359250608087013567ffffffffffffffff808211156117a057600080fd5b818901915089601f8301126117b457600080fd5b8135818111156117c357600080fd5b8a60208285010111156117d557600080fd5b6020830194508093505050509295509295509295565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261181257600080fd5b813567ffffffffffffffff8082111561182d5761182d6117eb565b604051601f8301601f19908116603f01168101908282118183101715611855576118556117eb565b8160405283815286602085880101111561186e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156118a157600080fd5b823567ffffffffffffffff808211156118b957600080fd5b6118c586838701611801565b935060208501359150808211156118db57600080fd5b506118e885828601611801565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156101e0576101e061191e565b818103818111156101e0576101e061191e565b60006001820161196c5761196c61191e565b5060010190565b6000815160005b81811015611994576020818501810151868301520161197a565b50600093019283525090919050565b60006119b86119b28386611973565b84611973565b949350505050565b60ff81811683821601908111156101e0576101e061191e565b634e487b7160e01b600052601260045260246000fd5b600060ff831680611a0257611a026119d9565b8060ff84160691505092915050565b60ff82811682821603908111156101e0576101e061191e565b600082611a3957611a396119d9565b500490565b80820281158282048414176101e0576101e061191e565b600181815b80851115611a90578160001904821115611a7657611a7661191e565b80851615611a8357918102915b93841c9390800290611a5a565b509250929050565b600082611aa7575060016101e0565b81611ab4575060006101e0565b8160018114611aca5760028114611ad457611af0565b60019150506101e0565b60ff841115611ae557611ae561191e565b50506001821b6101e0565b5060208310610133831016604e8410600b8410161715611b13575081810a6101e0565b611b1d8383611a55565b8060001904821115611b3157611b3161191e565b029392505050565b600061121c8383611a98565b600082611b5457611b546119d9565b500690565b600060208284031215611b6b57600080fd5b505191905056fea264697066735822122067ddb2e3690f84d93d1a412860f6a463049c890e3ec168676bae8e8dc7ae3f3764736f6c63430008120033", + "balance": "0x0" + }, + "0x032847A8Cdd4487f83705f8D702743b60029AFDD": { + "contractName": "LibBridgeRetry", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220beb5d00868487ae13b8103480d5057ef120c70dcf0a0b13d4d29fb292e8aad5764736f6c63430008120033", + "balance": "0x0" + }, + "0x3e55D64323AD7E3287aa283475903D3fb3cA5098": { + "contractName": "LibBridgeProcess", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d80093ff59f040f5928ff201a3c212fa752b2ff8e0aea20a97ac0325ba978abb64736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000006": { + "contractName": "ProxiedAddressManager", + "storage": {}, + "code": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063656b06a414610067578063715018a6146100b75780638da5cb5b146100c1578063decd8e39146100d2578063e1c7392a146100e5578063f2fde38b146100ed575b600080fd5b61009b610075366004610466565b60009182526065602090815260408084209284529190529020546001600160a01b031690565b6040516001600160a01b03909116815260200160405180910390f35b6100bf610100565b005b6033546001600160a01b031661009b565b6100bf6100e03660046104a4565b610114565b6100bf6101d4565b6100bf6100fb3660046104d9565b6102ea565b610108610360565b61011260006103ba565b565b61011c610360565b6001600160a01b0381163b15801561013c57506001600160a01b03811633145b1561015a57604051633baa901360e21b815260040160405180910390fd5b600083815260656020908152604080832085845282529182902080546001600160a01b038581166001600160a01b0319831681179093558451928352169181018290529091849186917fe41a6e8584d6e19a0dfc5f9331be4ebe61b5f025d45da164c9ca6ee9b837cea9910160405180910390a350505050565b600054610100900460ff16158080156101f45750600054600160ff909116105b8061020e5750303b15801561020e575060005460ff166001145b6102765760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610299576000805461ff0019166101001790555b6102a161040c565b80156102e7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6102f2610360565b6001600160a01b0381166103575760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161026d565b6102e7816103ba565b6033546001600160a01b031633146101125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161026d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166104335760405162461bcd60e51b815260040161026d906104fb565b610112600054610100900460ff1661045d5760405162461bcd60e51b815260040161026d906104fb565b610112336103ba565b6000806040838503121561047957600080fd5b50508035926020909101359150565b80356001600160a01b038116811461049f57600080fd5b919050565b6000806000606084860312156104b957600080fd5b83359250602084013591506104d060408501610488565b90509250925092565b6000602082840312156104eb57600080fd5b6104f482610488565b9392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea2646970667358221220c5f7d4557009ba7141b3cd005aecb51648d30e5868346d5747a6722064e5e73664736f6c63430008120033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000006": { + "contractName": "AddressManagerProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0xfeaa72fcc59acba6371da88141d071c9993f23312f54395296e3d9e5d39f0056": "0x0000000000000000000000001000777700000000000000000000000000000001", + "0x92fbb82d3d87ec735ae0893053f892b13be008dae0d966d083fc63772a95a170": "0x0000000000000000000000001000777700000000000000000000000000000004", + "0x2d89f514e5eeed612cd92d7cbfb188ecb4896b21769ef98030d34bcdb4c94bd9": "0x0000000000000000000000001000777700000000000000000000000000000002", + "0xc783d6d711f5c3d107daed8026e2089323b4661d3f4f92208071f4addcb75352": "0x0000000000000000000000001000777700000000000000000000000000000003", + "0xe4e56c450eba5c80504ff288920951a9da92b61b66c227cf06a8edb6e2edb548": "0x0000000000000000000000001000777700000000000000000000000000000007", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000006" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106c2565b610118565b61005b6100933660046106dd565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106c2565b6101ed565b3480156100f557600080fd5b506100ad61020d565b610106610269565b6101166101116102fe565b610308565b565b61012061032c565b6001600160a01b0316330361014d5761014a8160405180602001604052806000815250600061035f565b50565b61014a6100fe565b61015d61032c565b6001600160a01b031633036101b4576101af8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061035f915050565b505050565b6101af6100fe565b60006101c661032c565b6001600160a01b031633036101e2576101dd6102fe565b905090565b6101ea6100fe565b90565b6101f561032c565b6001600160a01b0316330361014d5761014a8161038a565b600061021761032c565b6001600160a01b031633036101e2576101dd61032c565b606061025383836040518060600160405280602781526020016107d4602791396103de565b9392505050565b6001600160a01b03163b151590565b61027161032c565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd610456565b3660008037600080366000845af43d6000803e808015610327573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103688361047e565b6000825111806103755750805b156101af57610384838361022e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103b361032c565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a816104be565b6060600080856001600160a01b0316856040516103fb9190610784565b600060405180830381855af49150503d8060008114610436576040519150601f19603f3d011682016040523d82523d6000602084013e61043b565b606091505b509150915061044c86838387610567565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610350565b610487816105e8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105235760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102f5565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b606083156105d65782516000036105cf576001600160a01b0385163b6105cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102f5565b50816105e0565b6105e0838361067c565b949350505050565b6001600160a01b0381163b6106555760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102f5565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610546565b81511561068c5781518083602001fd5b8060405162461bcd60e51b81526004016102f591906107a0565b80356001600160a01b03811681146106bd57600080fd5b919050565b6000602082840312156106d457600080fd5b610253826106a6565b6000806000604084860312156106f257600080fd5b6106fb846106a6565b9250602084013567ffffffffffffffff8082111561071857600080fd5b818601915086601f83011261072c57600080fd5b81358181111561073b57600080fd5b87602082850101111561074d57600080fd5b6020830194508093505050509250925092565b60005b8381101561077b578181015183820152602001610763565b50506000910152565b60008251610796818460208701610760565b9190910192915050565b60208152600082518060208401526107bf816040850160208701610760565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f44b4bd0f73d4a6c872717d3b99f5935a2080af0980894ed447890241a743cdb64736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000001": { + "contractName": "ProxiedTaikoL2", + "storage": {}, + "code": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80638f3ca30d116100b8578063c7b969081161007c578063c7b96908146102f5578063dac5df781461030f578063e1848cb014610318578063ee82ac5e1461032b578063f2fde38b1461033e578063f535bd561461035157600080fd5b80638f3ca30d146102905780639ee512f2146102a3578063a86f9d9e146102bc578063b8914ce4146102cf578063bacb386d146102e257600080fd5b8063539b8ade116100ff578063539b8ade14610207578063591aad8a146102325780636c6563f614610264578063715018a6146102775780638da5cb5b1461027f57600080fd5b80630652b57a1461013c57806310da3738146101515780633ab76e9f1461018b5780633d384a4b146101b05780634e755573146101c3575b600080fd5b61014f61014a3660046116d2565b61036b565b005b6101787f92954368afd3caa1f3ce3ead0069c1af414054aefe1ef9aeacc1bf426222ce3881565b6040519081526020015b60405180910390f35b6097546001600160a01b03165b6040516001600160a01b039091168152602001610182565b61014f6101be366004611706565b6103ee565b6101cb61065e565b6040805182516001600160801b031681526020808401516001600160401b03908116918301919091529282015190921690820152606001610182565b60cd5461021a906001600160401b031681565b6040516001600160401b039091168152602001610182565b61024561024036600461174c565b6106be565b6040805160ff9094168452602084019290925290820152606001610182565b610198610272366004611792565b6108f9565b61014f610910565b6065546001600160a01b0316610198565b61014f61029e3660046117c7565b610924565b61019871777735367b36bc9b61c50022d9d0700db4ec81565b6101986102ca366004611808565b610ce0565b6101786102dd366004611834565b610cf6565b6101786102f0366004611834565b610d32565b60cd5461021a90600160401b90046001600160401b031681565b61017860cb5481565b61017861032636600461184d565b610d6b565b610178610339366004611834565b610d8f565b61014f61034c3660046116d2565b610ddc565b60cd5461021a90600160801b90046001600160401b031681565b610373610e55565b6001600160a01b03811661039a57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b3371777735367b36bc9b61c50022d9d0700db4ec1461042057604051636494e9f760e01b815260040160405180910390fd5b600061042d6001436118a8565b9050804060008061043d84610eaf565b915091508160cb54146104765760cb54604051636340d9fb60e11b81526004810191909152602481018390526044015b60405180910390fd5b60cb819055600084815260c96020908152604080832086905560cd80546fffffffffffffffff00000000000000001916600160401b6001600160401b038c1690810291909117909155815180830183528c81528084018c815282865260ca8552948390209051815593516001949094019390935580518b81529182018a90527f7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b910160405180910390a260008061052b61065e565b905080604001516001600160401b03166000146105935760cd5461056590829061055e906001600160401b0316426118a8565b458a610f42565b60cd80546001600160401b03909216600160801b0267ffffffffffffffff60801b1990921691909117905591505b8148146105c657604051634083acad60e01b81526001600160401b0380841660048301524816602482015260440161046d565b60cd805467ffffffffffffffff1916426001600160401b03908116918217909255604080514384168152858416602082015245909316908301526060820152608081018690524460a08201524160c082015263ffffffff461660e08201527f4dcb01f99c4a2c27a16ab38d00ec92434f8231be81fa62e058f260d3c7156029906101000160405180910390a150505050505050505050565b6040805160608101825260008082526020820181905291810191909152506040805160608101825260cc546001600160801b03811682526001600160401b03600160801b820481166020840152600160c01b909104169181019190915290565b60008060008360ff166001141580156106db57508360ff16600214155b156106f95760405163bcd2d90d60e01b815260040160405180910390fd5b8360ff1660011461072a577fc6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee561074c565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817985b915060008460ff16600114610781577fad77eceea844778cb4376153fc8f06f12f1695df4585bf75bfb17ec19ce908186107a3565b7fb4a95509ce05fe8d45987859a067780d16a367c0e2cacf79cd301b93fb7179405b905060008560ff166001146107d8577f71620584f61c57e688bbd3fd7a39a036e588d962c4c830f3dacbc15c917e02f26107fa565b7f45b59254b0320fd853f3f38ac574999e91bd75fd5e6cab9c22c5e71fc6d276e45b82880192831001905060ff86166001036108345761082d8282600170014551231950b75fc4402da1732fc9bebe19610fde565b92506108a3565b61087c7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a16108778484600170014551231950b75fc4402da1732fc9bebe19610fde565b61102d565b90925090506108a08282600170014551231950b75fc4402da1732fc9bebe19610fde565b92505b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156108f0576108e78370014551231950b75fc4402da1732fc9bebe196118a8565b92506001851894505b50509250925092565b600061090684848461104c565b90505b9392505050565b610918610e55565b6109226000611100565b565b600054610100900460ff16158080156109445750600054600160ff909116105b8061095e5750303b15801561095e575060005460ff166001145b6109c15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161046d565b6000805460ff1916600117905580156109e4576000805461ff0019166101001790555b6001461115806109f8575063ffffffff4610155b15610a16576040516306cffa2760e01b815260040160405180910390fd5b6001431115610a3857604051635a0f9e4160e11b815260040160405180910390fd5b610a4860408301602084016118bb565b6001600160401b031615610c3c57610a6360208301836118bb565b6001600160401b03161580610a8e5750610a8360608301604084016118bb565b6001600160401b0316155b80610aaf5750610aa460808301606084016118bb565b6001600160401b0316155b80610ad05750610ac560a08301608084016118bb565b6001600160401b0316155b15610aee57604051639cc448b560e01b815260040160405180910390fd5b600080610b36610b0460608601604087016118bb565b610b1160208701876118bb565b610b2160808801606089016118bb565b610b3160a0890160808a016118bb565b611152565b91509150816001600160801b031660001480610b6257506001600160401b036001600160801b03831610155b80610b7457506001600160801b038116155b15610b9257604051639cc448b560e01b815260040160405180910390fd5b60cc80546001600160401b038416600160801b026001600160c01b03199091166001600160801b03841617179055610bd060408501602086016118bb565b60cc80546001600160401b0392909216600160c01b026001600160c01b039092169190911790556002610c0960608601604087016118bb565b610c1391906118ec565b60cd60106101000a8154816001600160401b0302191690836001600160401b0316021790555050505b60cd805467ffffffffffffffff1916426001600160401b0316179055610c6183611251565b610c6a43610eaf565b5060cb554315610c95576000610c816001436118a8565b600081815260c96020526040902090409055505b8015610cdb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6000610ced46848461104c565b90505b92915050565b6000808215610d055782610d19565b60cd54600160401b90046001600160401b03165b600090815260ca60205260409020600101549392505050565b6000808215610d415782610d55565b60cd54600160401b90046001600160401b03165b600090815260ca60205260409020549392505050565b6000610d86610d7861065e565b8563ffffffff168585610f42565b50949350505050565b6000438210610da057506000919050565b4382108015610dba5750610db6610100436118a8565b8210155b15610dc457504090565b50600090815260c9602052604090205490565b919050565b610de4610e55565b6001600160a01b038116610e495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161046d565b610e5281611100565b50565b6065546001600160a01b031633146109225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161046d565b600080610eba61169d565b60005b60ff81108015610ed05750806001018510155b15610f02576000198186030180408360ff83066101008110610ef457610ef4611912565b602002015250600101610ebd565b5046611fe082015261200081209250834081610f1f60ff87611928565b6101008110610f3057610f30611912565b60200201526120009020919391925050565b600080806202bf206001600160401b03851611610f60576000610f67565b6202bf2084035b60cd546040890151919250600160801b90046001600160401b0390811681841601918116880290610fa49082610f9d858261126a565b0390611280565b9350505050610fc686602001516001600160401b031687600001518387611295565b915081600003610fd557600191505b94509492505050565b600060405160408152602080820152602060408201528460608201528560808201528360a08201528260c082015260208160e08360056107d05a03fa61102357600080fd5b5195945050505050565b6000806000198385098385029250828110838203039150509250929050565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa15801561109d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c1919061193c565b9050811580156110d857506001600160a01b038116155b1561090957604051631467050360e21b8152600481018590526024810184905260440161046d565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080856001600160401b031660000361116e5761116e611959565b600061117b6002886118ec565b90506111996001600160401b038816680755bf798b4a1bf1e461196f565b92506111b86111b384886001600160401b03168489611295565b611354565b915060006111c884848489611295565b905060006111e28585856111dd8b6002611989565b611295565b90506000826111f3836127106119b4565b6111fd91906119cb565b9050806001600160401b0316876001600160401b031614611244576040516331c2ec2360e21b81526001600160401b0380891660048301528216602482015260440161046d565b5050505094509492505050565b6112596113c1565b6112616113f0565b610e528161141f565b60008183116112795781610ced565b5090919050565b600081831161128f5782610ced565b50919050565b60006001600160801b038516158015906112b757506001600160801b03841615155b6112c3576112c3611959565b60006001600160401b038316156112da57826112dd565b60015b905060006112f4856001600160401b031688611468565b9050600061131461130584886119df565b6001600160401b031689611468565b90506001600160801b0387166001600160401b03841661133484846118a8565b61133e91906119cb565b61134891906119cb565b98975050505050505050565b60006001600160801b038211156113bd5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161046d565b5090565b600054610100900460ff166113e85760405162461bcd60e51b815260040161046d90611a06565b6109226114ba565b600054610100900460ff166114175760405162461bcd60e51b815260040161046d90611a06565b6109226114e7565b6001600160a01b03811661144657604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b60008061147e6001600160801b038416856119b4565b9050680755bf798b4a1bf1e481106114a9576040516372de381d60e01b815260040160405180910390fd5b6114b281611517565b949350505050565b600054610100900460ff166114e15760405162461bcd60e51b815260040161046d90611a06565b60018055565b600054610100900460ff1661150e5760405162461bcd60e51b815260040161046d90611a06565b61092233611100565b6000680248ce36a70cb26b3e19821361153257506000919050565b680755bf798b4a1bf1e5821261155b57604051631a93c68960e11b815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b6d2c06887d92262d378b9593af35346c09791803c2923d5d9721c3da80929091056001605f1b0190921d6bb17217f7d1cf79abc9e3b39881029095039081018102606090811d6d019dd9374d4315c8464a395fc09881016c1bff318b126baa436ea9aeaffd19840102821d93840193016d29c9ad45cc0beb0a2ff097a7bab40192909202821d6dcf3c27b2e487711b467e90f19320016c22fcd1cffa6fa000f6e27eeca082018202831d6d022f98fbc368092c79210d196fa0018202831d6d13aaae3ba38de06adc25ebfacc0901820290921d6d624dcbeb5e25df590e409325888a01026d360d7aeea093263ec6495851bd9760621b010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b604051806120000160405280610100906020820280368337509192915050565b6001600160a01b0381168114610e5257600080fd5b6000602082840312156116e457600080fd5b8135610909816116bd565b80356001600160401b0381168114610dd757600080fd5b6000806000806080858703121561171c57600080fd5b8435935060208501359250611733604086016116ef565b9150611741606086016116ef565b905092959194509250565b6000806040838503121561175f57600080fd5b82359150602083013560ff8116811461177757600080fd5b809150509250929050565b80358015158114610dd757600080fd5b6000806000606084860312156117a757600080fd5b83359250602084013591506117be60408501611782565b90509250925092565b60008082840360c08112156117db57600080fd5b83356117e6816116bd565b925060a0601f19820112156117fa57600080fd5b506020830190509250929050565b6000806040838503121561181b57600080fd5b8235915061182b60208401611782565b90509250929050565b60006020828403121561184657600080fd5b5035919050565b60008060006060848603121561186257600080fd5b833563ffffffff8116811461187657600080fd5b9250611884602085016116ef565b91506117be604085016116ef565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cf057610cf0611892565b6000602082840312156118cd57600080fd5b610ced826116ef565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680611906576119066118d6565b92169190910492915050565b634e487b7160e01b600052603260045260246000fd5b600082611937576119376118d6565b500690565b60006020828403121561194e57600080fd5b8151610909816116bd565b634e487b7160e01b600052600160045260246000fd5b60006001600160801b0380841680611906576119066118d6565b6001600160401b038181168382160280821691908281146119ac576119ac611892565b505092915050565b8082028115828204841417610cf057610cf0611892565b6000826119da576119da6118d6565b500490565b6001600160401b038181168382160190808211156119ff576119ff611892565b5092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212203890f26859c50d4bcb2990b86955150cc1db102725f3e4bc015ad2ec3f168ef764736f6c63430008120033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000001": { + "contractName": "TaikoL2Proxy", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000cb": "0xdec49b32a269dacf8af649c78ad8106484a218de96500f2e3cae7afa7871599b", + "0x00000000000000000000000000000000000000000000000000000000000000cc": "0x00000000001e8480000000022a83d6720000001c43c970ab8e4d088428ca4b6f", + "0x00000000000000000000000000000000000000000000000000000000000000cd": "0x000000000000000000000001b171ea0000000000000000000000000064707075", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000001" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106c2565b610118565b61005b6100933660046106dd565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106c2565b6101ed565b3480156100f557600080fd5b506100ad61020d565b610106610269565b6101166101116102fe565b610308565b565b61012061032c565b6001600160a01b0316330361014d5761014a8160405180602001604052806000815250600061035f565b50565b61014a6100fe565b61015d61032c565b6001600160a01b031633036101b4576101af8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061035f915050565b505050565b6101af6100fe565b60006101c661032c565b6001600160a01b031633036101e2576101dd6102fe565b905090565b6101ea6100fe565b90565b6101f561032c565b6001600160a01b0316330361014d5761014a8161038a565b600061021761032c565b6001600160a01b031633036101e2576101dd61032c565b606061025383836040518060600160405280602781526020016107d4602791396103de565b9392505050565b6001600160a01b03163b151590565b61027161032c565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd610456565b3660008037600080366000845af43d6000803e808015610327573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103688361047e565b6000825111806103755750805b156101af57610384838361022e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103b361032c565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a816104be565b6060600080856001600160a01b0316856040516103fb9190610784565b600060405180830381855af49150503d8060008114610436576040519150601f19603f3d011682016040523d82523d6000602084013e61043b565b606091505b509150915061044c86838387610567565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610350565b610487816105e8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105235760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102f5565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b606083156105d65782516000036105cf576001600160a01b0385163b6105cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102f5565b50816105e0565b6105e0838361067c565b949350505050565b6001600160a01b0381163b6106555760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102f5565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610546565b81511561068c5781518083602001fd5b8060405162461bcd60e51b81526004016102f591906107a0565b80356001600160a01b03811681146106bd57600080fd5b919050565b6000602082840312156106d457600080fd5b610253826106a6565b6000806000604084860312156106f257600080fd5b6106fb846106a6565b9250602084013567ffffffffffffffff8082111561071857600080fd5b818601915086601f83011261072c57600080fd5b81358181111561073b57600080fd5b87602082850101111561074d57600080fd5b6020830194508093505050509250925092565b60005b8381101561077b578181015183820152602001610763565b50506000910152565b60008251610796818460208701610760565b9190910192915050565b60208152600082518060208401526107bf816040850160208701610760565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f44b4bd0f73d4a6c872717d3b99f5935a2080af0980894ed447890241a743cdb64736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000004": { + "contractName": "ProxiedBridge", + "storage": {}, + "code": "0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063bac443e21161006f578063bac443e21461041b578063ce70f39b1461043b578063d0496d6a1461045b578063f2fde38b146104ca578063f9803919146104ea578063fee99b221461050a57600080fd5b8063715018a6146103955780638da5cb5b146103aa57806396e17852146103c8578063a4444efd146103db578063a86f9d9e146103fb57600080fd5b8063540be6a3116100f2578063540be6a3146102e75780635817b0c3146103075780635d0bd98614610335578063606b5b74146103555780636c6563f61461037557600080fd5b80630652b57a1461020357806319ab453c14610223578063343b643c146102435780633ab76e9f146102885780635075a9d4146102ba57600080fd5b366101fe5761014c6a1d1bdad95b97dd985d5b1d60aa1b600161052a565b6001600160a01b0316336001600160a01b03161415801561019757506101816a195d1a195c97dd985d5b1d60aa1b600161052a565b6001600160a01b0316336001600160a01b031614155b80156101c757506101b1647461696b6f60d81b600161052a565b6001600160a01b0316336001600160a01b031614155b80156101de57506065546001600160a01b03163314155b156101fc576040516345dd044560e11b815260040160405180910390fd5b005b600080fd5b34801561020f57600080fd5b506101fc61021e366004612b75565b610540565b34801561022f57600080fd5b506101fc61023e366004612b75565b6105c3565b34801561024f57600080fd5b5061027361025e366004612b92565b600090815260cd602052604090205460ff1690565b60405190151581526020015b60405180910390f35b34801561029457600080fd5b506097546001600160a01b03165b6040516001600160a01b03909116815260200161027f565b3480156102c657600080fd5b506102da6102d5366004612b92565b6106db565b60405161027f9190612be3565b3480156102f357600080fd5b50610273610302366004612b92565b6106e6565b34801561031357600080fd5b50610327610322366004612c0a565b6106f2565b60405190815260200161027f565b34801561034157600080fd5b50610273610350366004612b92565b610705565b34801561036157600080fd5b50610327610370366004612b92565b610718565b34801561038157600080fd5b506102a2610390366004612c4c565b610723565b3480156103a157600080fd5b506101fc61073a565b3480156103b657600080fd5b506065546001600160a01b03166102a2565b6103276103d6366004612c0a565b61074e565b3480156103e757600080fd5b506102736103f6366004612ccd565b61077c565b34801561040757600080fd5b506102a2610416366004612d1f565b61052a565b34801561042757600080fd5b506101fc610436366004612d4f565b610794565b34801561044757600080fd5b50610273610456366004612ccd565b6107b8565b34801561046757600080fd5b50604080516060808201835260008083526020808401829052928401528251808201845260ca5480825260cb546001600160a01b0390811683860190815260cc54938701938452865192835251169381019390935251928201929092520161027f565b3480156104d657600080fd5b506101fc6104e5366004612b75565b6107c7565b3480156104f657600080fd5b506101fc610505366004612db7565b610840565b34801561051657600080fd5b506101fc610525366004612d4f565b61085e565b6000610537468484610874565b90505b92915050565b610548610928565b6001600160a01b03811661056f57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b600054610100900460ff16158080156105e35750600054600160ff909116105b806105fd5750303b1580156105fd575060005460ff166001145b6106655760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610688576000805461ff0019166101001790555b61069182610982565b80156106d7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061053a8261099b565b600061053a30836109c6565b600061053a61070083612f0d565b610aa7565b60006107113083610ad7565b5092915050565b600061053a82610b60565b6000610730848484610874565b90505b9392505050565b610742610928565b61074c6000610b9b565b565b6000610758610bed565b61076c60c93061076785612f0d565b610c46565b905061077760018055565b919050565b600061078b3086868686610f27565b95945050505050565b61079c610bed565b6107aa60c93085858561108a565b6107b360018055565b505050565b600061078b308686868661137b565b6107cf610928565b6001600160a01b0381166108345760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065c565b61083d81610b9b565b50565b610848610bed565b61085560c9308484611600565b6106d760018055565b610866610bed565b6107aa60c930858585611838565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa1580156108c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e9919061300e565b90508115801561090057506001600160a01b038116155b1561073357604051631467050360e21b8152600481018590526024810184905260440161065c565b6065546001600160a01b0316331461074c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065c565b61098a611d37565b610992611d66565b61083d81611d95565b6000806109a783610b60565b80549091508060038111156109be576109be612bab565b949350505050565b604051635437cecf60e11b81526000906001600160a01b0384169063a86f9d9e906109f590849060040161302b565b602060405180830381865afa158015610a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a36919061300e565b604051631933b5e360e11b8152306004820152602481018490526001600160a01b0391909116906332676bc690604401602060405180830381865afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610537919061304d565b600081604051602001610aba91906130ba565b604051602081830303815290604052805190602001209050919050565b600080836001600160a01b0316636c6563f68460016040518363ffffffff1660e01b8152600401610b099291906131b4565b602060405180830381865afa158015610b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4a919061300e565b6001600160a01b03811615159590945092505050565b60006040518060400160405280600e81526020016d4d4553534147455f53544154555360901b81525082604051602001610aba9291906131d3565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600260015403610c3f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161065c565b6002600155565b60808101516000906001600160a01b0316610c74576040516301b1868360e71b815260040160405180910390fd5b600080610c85858560600151610ad7565b91509150811580610c995750468460600151145b15610cb75760405163e822b48d60e01b815260040160405180910390fd5b60a08401516001600160a01b03161580610ce65750806001600160a01b03168460a001516001600160a01b0316145b15610d045760405163b9ad6a0f60e01b815260040160405180910390fd5b60008461012001518561010001518660e00151610d21919061320b565b610d2b919061320b565b9050348114610d4d57604051632609a19760e21b815260040160405180910390fd5b604051635437cecf60e11b81526000906001600160a01b0388169063a86f9d9e90610d7d9060019060040161321e565b602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe919061300e565b9050610dd36001600160a01b03821683611dde565b8754886000610de18361323d565b909155508652336020870152466040870152610dfc86610aa7565b604051635437cecf60e11b81529095506001600160a01b0388169063a86f9d9e90610e2c9060009060040161302b565b602060405180830381865afa158015610e49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6d919061300e565b6001600160a01b03166366ca2bc0866040518263ffffffff1660e01b8152600401610e9a91815260200190565b6020604051808303816000875af1158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613256565b50847f47866f7dacd4a276245be6ed543cae03c9c17eb17e6980cee28e3dd168b7f9f387604051610f0e91906130ba565b60405180910390a2505050509392505050565b60018055565b600080866001600160a01b0316636c6563f68660006040518363ffffffff1660e01b8152600401610f599291906131b4565b602060405180830381865afa158015610f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9a919061300e565b604051635437cecf60e11b81529091506001600160a01b0388169063a86f9d9e90610fca9060009060040161302b565b602060405180830381865afa158015610fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100b919061300e565b6001600160a01b0316635221f61386838988886040518663ffffffff1660e01b815260040161103e95949392919061326f565b602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f919061304d565b979650505050505050565b600061109c60a0850160808601612b75565b6001600160a01b0316036110c3576040516301b1868360e71b815260040160405180910390fd5b468360400135146110e75760405163e822b48d60e01b815260040160405180910390fd5b60006110f561070085612f0d565b600081815260048801602052604090205490915060ff16151560010361112e5760405163afde133560e01b815260040160405180910390fd5b61113f85828660600135868661137b565b61115c5760405163498b0b1d60e01b815260040160405180910390fd5b60008181526004870160205260408120805460ff1916600117905561118a61010086013560e087013561320b565b9050801561131f57604051635437cecf60e11b81526000906001600160a01b0388169063a86f9d9e906111c29060019060040161321e565b602060405180830381865afa1580156111df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611203919061300e565b90506001600160a01b03811615611298576001600160a01b03811663ba0bbd9561123360a0890160808a01612b75565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101859052604401600060405180830381600087803b15801561127b57600080fd5b505af115801561128f573d6000803e3d6000fd5b5050505061131d565b60006112aa60a0880160808901612b75565b6001600160a01b03168360405160006040518083038185875af1925050503d80600081146112f4576040519150601f19603f3d011682016040523d82523d6000602084013e6112f9565b606091505b505090508061131b5760405163f6664cf160e01b815260040160405180910390fd5b505b505b817fea00c741e39d1d9ab1c6703152d71f9da09a782ed4ae128414730dadbb9bd84761135160a0880160808901612b75565b604080516001600160a01b039092168252602082018590520160405180910390a250505050505050565b600046840361139d5760405163e822b48d60e01b815260040160405180910390fd5b60008590036113bf5760405163a6407c9360e01b815260040160405180910390fd5b60006113cd83850185613359565b604051635437cecf60e11b8152647461696b6f60d81b60048201526000602482018190529192506001600160a01b0389169063a86f9d9e90604401602060405180830381865afa158015611425573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611449919061300e565b8251610100015160405163bacb386d60e01b81526001600160801b0390911660048201526001600160a01b03919091169063bacb386d90602401602060405180830381865afa1580156114a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c49190613256565b90508015806114dd575081516114d990611e94565b8114155b156114ed5760009250505061078b565b815160600151604051633632b1fb60e11b8152735075901Fdd1d57Ca754472cb94967f564bA7dc6E9163a5427462916001600160a01b038c1690636c6563f69061153e908c906000906004016131b4565b602060405180830381865afa15801561155b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157f919061300e565b6115888b610b60565b602087015160405160e086901b6001600160e01b03191681526115b3949392916003916004016134fd565b602060405180830381865af41580156115d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f4919061304d565b98975050505050505050565b610140820135158061160f5750805b156116555761162460a0830160808401612b75565b6001600160a01b0316336001600160a01b0316146116555760405163d7f4fc9f60e01b815260040160405180910390fd5b600061166361070084612f0d565b905060016116708261099b565b600381111561168157611681612bab565b1461169f57604051631f6646b560e01b815260040160405180910390fd5b604051635437cecf60e11b81526000906001600160a01b0386169063a86f9d9e906116cf9060019060040161321e565b602060405180830381865afa1580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611710919061300e565b90506001600160a01b0381161561178057604051630d73bb3d60e41b815261010085013560048201526001600160a01b0382169063d73bb3d090602401600060405180830381600087803b15801561176757600080fd5b505af115801561177b573d6000803e3d6000fd5b505050505b61178c8685845a611eb9565b156117a15761179c826002612011565b611830565b8215611818576117b2826003612011565b6000806117c560e0870160c08801612b75565b6001600160a01b0316146117e8576117e360e0860160c08701612b75565b6117f8565b6117f860a0860160808701612b75565b90506118126001600160a01b038216610100870135611dde565b50611830565b6118306001600160a01b038216610100860135611dde565b505050505050565b61014083013515801561186c575061185660a0840160808501612b75565b6001600160a01b0316336001600160a01b031614155b1561188a5760405163398b635960e21b815260040160405180910390fd5b468360600135146118ae5760405163e822b48d60e01b815260040160405180910390fd5b60006118bc61070085612f0d565b905060006118c98261099b565b60038111156118da576118da612bab565b146118f857604051630cfafbf960e01b815260040160405180910390fd5b6000856001600160a01b0316636c6563f6866040013560006040518363ffffffff1660e01b815260040161192d9291906131b4565b602060405180830381865afa15801561194a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196e919061300e565b604051635437cecf60e11b81529091506001600160a01b0387169063a86f9d9e9061199e9060009060040161302b565b602060405180830381865afa1580156119bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119df919061300e565b6001600160a01b0316635221f6138660400135838588886040518663ffffffff1660e01b8152600401611a1695949392919061326f565b602060405180830381865afa158015611a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a57919061304d565b611a74576040516314504c7360e31b815260040160405180910390fd5b6000610120860135611a8f61010088013560e089013561320b565b611a99919061320b565b90506000876001600160a01b031663a86f9d9e60016040518263ffffffff1660e01b8152600401611aca919061321e565b602060405180830381865afa158015611ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0b919061300e565b90506001600160a01b03811615801590611b255750600082115b15611b8557604051630d73bb3d60e41b8152600481018390526001600160a01b0382169063d73bb3d090602401600060405180830381600087803b158015611b6c57600080fd5b505af1158015611b80573d6000803e3d6000fd5b505050505b611bac60e0880135611b9d60a08a0160808b01612b75565b6001600160a01b031690611dde565b60008030611bc060c08b0160a08c01612b75565b6001600160a01b03161480611bed57506000611be260c08b0160a08c01612b75565b6001600160a01b0316145b15611c02575060029050610100880135611c79565b6000611c1460a08b0160808c01612b75565b6001600160a01b0316336001600160a01b031614611c3757896101400135611c39565b5a5b90506000611c498d8c8a85611eb9565b90508015611c5a5760029350611c76565b60019350611c766001600160a01b0386166101008d0135611dde565b50505b611c838683612011565b600080611c9660e08c0160c08d01612b75565b6001600160a01b031614611cb957611cb460e08b0160c08c01612b75565b611cc9565b611cc960a08b0160808c01612b75565b90506001600160a01b0381163303611d07576000611cec836101208d013561320b565b9050611d016001600160a01b03831682611dde565b50611d29565b611d16336101208c0135611dde565b611d296001600160a01b03821683611dde565b505050505050505050505050565b600054610100900460ff16611d5e5760405162461bcd60e51b815260040161065c90613530565b61074c61208a565b600054610100900460ff16611d8d5760405162461bcd60e51b815260040161065c90613530565b61074c6120b1565b6001600160a01b038116611dbc57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b801580611df257506001600160a01b038216155b15611dfb575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611e48576040519150601f19603f3d011682016040523d82523d6000602084013e611e4d565b606091505b50509050806107b35760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640161065c565b600080611eaa611ea58460006120e1565b612502565b80516020909101209392505050565b600081600003611edc57604051637f0e960960e11b815260040160405180910390fd5b6040518060600160405280848152602001856020016020810190611f009190612b75565b6001600160a01b039081168252604087810135602093840152835160018a0155918301516002890180546001600160a01b0319169190921617905501516003860155611f5260c0850160a08601612b75565b6001600160a01b031682610100860135611f7061016088018861357b565b604051611f7e9291906135c1565b600060405180830381858888f193505050503d8060008114611fbc576040519150601f19603f3d011682016040523d82523d6000602084013e611fc1565b606091505b505060408051606081018252600180825260208201819052600019919092018190528782018290556002880180546001600160a01b03191690921790915560039096019590955550929392505050565b80600381111561202357612023612bab565b61202c8361099b565b600381111561203d5761203d612bab565b146106d75761204c8282612546565b817f0af4d5247f6a4028d6699afb62871a76b398da1d1a626c8a9b90e0bd5f54c73c823360405161207e9291906135d1565b60405180910390a25050565b600054610100900460ff16610f215760405162461bcd60e51b815260040161065c90613530565b600054610100900460ff166120d85760405162461bcd60e51b815260040161065c90613530565b61074c33610b9b565b6102008201516060901561214c576120fa82601161320b565b6001600160401b0381111561211157612111612dfd565b60405190808252806020026020018201604052801561214457816020015b606081526020019060019003908161212f5790505b5090506121bb565b6101e083015115612162576120fa82601061320b565b61216d82600f61320b565b6001600160401b0381111561218457612184612dfd565b6040519080825280602002602001820160405280156121b757816020015b60608152602001906001900390816121a25790505b5090505b82516121c69061256f565b816000815181106121d9576121d96135f7565b60200260200101819052506121f1836020015161256f565b81600181518110612204576122046135f7565b602002602001018190525061221c8360400151612582565b8160028151811061222f5761222f6135f7565b6020026020010181905250612247836060015161256f565b8160038151811061225a5761225a6135f7565b6020026020010181905250612272836080015161256f565b81600481518110612285576122856135f7565b602002602001018190525061229d8360a0015161256f565b816005815181106122b0576122b06135f7565b60200260200101819052506122e78360c001516040516020016122d3919061360d565b6040516020818303038152906040526125ab565b816006815181106122fa576122fa6135f7565b60200260200101819052506123128360e0015161261a565b81600781518110612325576123256135f7565b60200260200101819052506123478361010001516001600160801b031661261a565b8160088151811061235a5761235a6135f7565b6020026020010181905250612373836101200151612628565b81600981518110612386576123866135f7565b602002602001018190525061239f836101400151612628565b81600a815181106123b2576123b26135f7565b60200260200101819052506123cb836101600151612628565b81600b815181106123de576123de6135f7565b60200260200101819052506123f78361018001516125ab565b81600c8151811061240a5761240a6135f7565b6020026020010181905250612423836101a0015161256f565b81600d81518110612436576124366135f7565b602002602001018190525061246d836101c001516040516020016122d3919060c09190911b6001600160c01b031916815260080190565b81600e81518110612480576124806135f7565b6020026020010181905250826101e001516000146124c5576124a6836101e0015161261a565b81600f815181106124b9576124b96135f7565b60200260200101819052505b6102008301511561053a576124de83610200015161256f565b816010815181106124f1576124f16135f7565b602002602001018190525092915050565b6060600061250f8361263f565b905061251d815160c0612774565b8160405160200161252f929190613642565b604051602081830303815290604052915050919050565b600061255183610b60565b9050600082600381111561256757612567612bab565b909155505050565b606061053a61257d8361291c565b6125ab565b604051606082811b6bffffffffffffffffffffffff191660208301529061053a906034016122d3565b606080825160011480156125d957506080836000815181106125cf576125cf6135f7565b016020015160f81c105b156125e557508161053a565b6125f183516080612774565b83604051602001612603929190613642565b604051602081830303815290604052905092915050565b606061053a61257d836129ce565b606061053a61257d836001600160401b03166129ce565b60608151600003612660576040805160008082526020820190925290610711565b6000805b83518110156126a55783818151811061267f5761267f6135f7565b60200260200101515182612693919061320b565b915061269e8161323d565b9050612664565b6000826001600160401b038111156126bf576126bf612dfd565b6040519080825280601f01601f1916602001820160405280156126e9576020820181803683370190505b50600092509050602081015b855183101561276b576000868481518110612712576127126135f7565b60200260200101519050600060208201905061273083828451612af8565b878581518110612742576127426135f7565b60200260200101515183612756919061320b565b92505050826127649061323d565b92506126f5565b50949350505050565b60608060388410156127db57604080516001808252818301909252906020820181803683370190505090506127a98385613671565b60f81b816000815181106127bf576127bf6135f7565b60200101906001600160f81b031916908160001a905350610537565b600060015b6127ea81876136a0565b1561280d576127f88261323d565b9150612806610100826136b4565b90506127e0565b61281882600161320b565b6001600160401b0381111561282f5761282f612dfd565b6040519080825280601f01601f191660200182016040528015612859576020820181803683370190505b5092506128668583613671565b612871906037613671565b60f81b83600081518110612887576128876135f7565b60200101906001600160f81b031916908160001a905350600190505b818111612913576101006128b782846136cb565b6128c3906101006137c2565b6128cd90886136a0565b6128d791906137ce565b60f81b8382815181106128ec576128ec6135f7565b60200101906001600160f81b031916908160001a90535061290c8161323d565b90506128a3565b50509392505050565b606060008260405160200161293391815260200190565b60408051808303601f1901815260208084528383019092529250600091829160208201818036833701905050905060005b815181101561276b5783836129788161323d565b94508151811061298a5761298a6135f7565b602001015160f81c60f81b8282815181106129a7576129a76135f7565b60200101906001600160f81b031916908160001a9053506129c78161323d565b9050612964565b60606000826040516020016129e591815260200190565b604051602081830303815290604052905060005b6020811015612a3a57818181518110612a1457612a146135f7565b01602001516001600160f81b031916600003612a3a57612a338161323d565b90506129f9565b6000612a478260206136cb565b6001600160401b03811115612a5e57612a5e612dfd565b6040519080825280601f01601f191660200182016040528015612a88576020820181803683370190505b50905060005b815181101561276b578383612aa28161323d565b945081518110612ab457612ab46135f7565b602001015160f81c60f81b828281518110612ad157612ad16135f7565b60200101906001600160f81b031916908160001a905350612af18161323d565b9050612a8e565b8282825b60208110612b345781518352612b1360208461320b565b9250612b2060208361320b565b9150612b2d6020826136cb565b9050612afc565b905182516020929092036101000a6000190180199091169116179052505050565b6001600160a01b038116811461083d57600080fd5b803561077781612b55565b600060208284031215612b8757600080fd5b813561053781612b55565b600060208284031215612ba457600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60048110612bdf57634e487b7160e01b600052602160045260246000fd5b9052565b6020810161053a8284612bc1565b60006101a08284031215612c0457600080fd5b50919050565b600060208284031215612c1c57600080fd5b81356001600160401b03811115612c3257600080fd5b6109be84828501612bf1565b801515811461083d57600080fd5b600080600060608486031215612c6157600080fd5b83359250602084013591506040840135612c7a81612c3e565b809150509250925092565b60008083601f840112612c9757600080fd5b5081356001600160401b03811115612cae57600080fd5b602083019150836020828501011115612cc657600080fd5b9250929050565b60008060008060608587031215612ce357600080fd5b843593506020850135925060408501356001600160401b03811115612d0757600080fd5b612d1387828801612c85565b95989497509550505050565b60008060408385031215612d3257600080fd5b823591506020830135612d4481612c3e565b809150509250929050565b600080600060408486031215612d6457600080fd5b83356001600160401b0380821115612d7b57600080fd5b612d8787838801612bf1565b94506020860135915080821115612d9d57600080fd5b50612daa86828701612c85565b9497909650939450505050565b60008060408385031215612dca57600080fd5b82356001600160401b03811115612de057600080fd5b612dec85828601612bf1565b9250506020830135612d4481612c3e565b634e487b7160e01b600052604160045260246000fd5b6040516101a081016001600160401b0381118282101715612e3657612e36612dfd565b60405290565b604080519081016001600160401b0381118282101715612e3657612e36612dfd565b60405161022081016001600160401b0381118282101715612e3657612e36612dfd565b600082601f830112612e9257600080fd5b81356001600160401b0380821115612eac57612eac612dfd565b604051601f8301601f19908116603f01168101908282118183101715612ed457612ed4612dfd565b81604052838152866020858801011115612eed57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006101a08236031215612f2057600080fd5b612f28612e13565b82358152612f3860208401612b6a565b60208201526040830135604082015260608301356060820152612f5d60808401612b6a565b6080820152612f6e60a08401612b6a565b60a0820152612f7f60c08401612b6a565b60c082015260e08381013590820152610100808401359082015261012080840135908201526101408084013590820152610160808401356001600160401b0380821115612fcb57600080fd5b612fd736838801612e81565b83850152610180925082860135915080821115612ff357600080fd5b5061300036828701612e81565b918301919091525092915050565b60006020828403121561302057600080fd5b815161053781612b55565b6d7369676e616c5f7365727669636560901b8152901515602082015260400190565b60006020828403121561305f57600080fd5b815161053781612c3e565b60005b8381101561308557818101518382015260200161306d565b50506000910152565b600081518084526130a681602086016020860161306a565b601f01601f19169290920160200192915050565b6020815281516020820152600060208301516130e160408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015161311060a08401826001600160a01b03169052565b5060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610160808401919091528301516101a061018080850182905261318e6101c086018461308e565b90860151858203601f1901838701529092506131aa838261308e565b9695505050505050565b9182526562726964676560d01b60208301521515604082015260600190565b600083516131e581846020880161306a565b9190910191825250602001919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561053a5761053a6131f5565b6a195d1a195c97dd985d5b1d60aa1b8152901515602082015260400190565b60006001820161324f5761324f6131f5565b5060010190565b60006020828403121561326857600080fd5b5051919050565b8581526001600160a01b0385166020820152604081018490526080606082018190528101829052818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b600082601f8301126132cf57600080fd5b6040516101008082018281106001600160401b03821117156132f3576132f3612dfd565b6040528301818582111561330657600080fd5b845b82811015613320578035825260209182019101613308565b509195945050505050565b80356001600160801b038116811461077757600080fd5b80356001600160401b038116811461077757600080fd5b60006020828403121561336b57600080fd5b81356001600160401b038082111561338257600080fd5b908301906040828603121561339657600080fd5b61339e612e3c565b8235828111156133ad57600080fd5b830161030081880312156133c057600080fd5b6133c8612e5e565b81358152602082013560208201526133e260408301612b6a565b6040820152606082013560608201526080820135608082015260a082013560a08201526134128860c084016132be565b60c08201526101c08083013560e08301526101e061343181850161332b565b610100840152610200613445818601613342565b6101208501526134586102208601613342565b61014085015261346b6102408601613342565b6101608501526102608501358781111561348457600080fd5b6134908c828801612e81565b610180860152506102808501356101a08501526134b06102a08601613342565b838501526102c0850135828501526102e08501358185015250505080835250506020830135828111156134e257600080fd5b6134ee87828601612e81565b60208301525095945050505050565b85815260018060a01b038516602082015283604082015282606082015260a06080820152600061107f60a083018461308e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000808335601e1984360301811261359257600080fd5b8301803591506001600160401b038211156135ac57600080fd5b602001915036819003821315612cc657600080fd5b8183823760009101908152919050565b604081016135df8285612bc1565b6001600160a01b039290921660209190910152919050565b634e487b7160e01b600052603260045260246000fd5b60008183825b6008811015613632578151835260209283019290910190600101613613565b5050506101008201905092915050565b6000835161365481846020880161306a565b83519083019061366881836020880161306a565b01949350505050565b60ff818116838216019081111561053a5761053a6131f5565b634e487b7160e01b600052601260045260246000fd5b6000826136af576136af61368a565b500490565b808202811582820484141761053a5761053a6131f5565b8181038181111561053a5761053a6131f5565b600181815b808511156137195781600019048211156136ff576136ff6131f5565b8085161561370c57918102915b93841c93908002906136e3565b509250929050565b6000826137305750600161053a565b8161373d5750600061053a565b8160018114613753576002811461375d57613779565b600191505061053a565b60ff84111561376e5761376e6131f5565b50506001821b61053a565b5060208310610133831016604e8410600b841016171561379c575081810a61053a565b6137a683836136de565b80600019048211156137ba576137ba6131f5565b029392505050565b60006105378383613721565b6000826137dd576137dd61368a565b50069056fea26469706673582212209944d85d0cc8409987bf496ae9ba9d199c3992cdf3a3f5d304737e8c526b4f3c64736f6c63430008120033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000004": { + "contractName": "BridgeProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000004" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106c2565b610118565b61005b6100933660046106dd565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106c2565b6101ed565b3480156100f557600080fd5b506100ad61020d565b610106610269565b6101166101116102fe565b610308565b565b61012061032c565b6001600160a01b0316330361014d5761014a8160405180602001604052806000815250600061035f565b50565b61014a6100fe565b61015d61032c565b6001600160a01b031633036101b4576101af8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061035f915050565b505050565b6101af6100fe565b60006101c661032c565b6001600160a01b031633036101e2576101dd6102fe565b905090565b6101ea6100fe565b90565b6101f561032c565b6001600160a01b0316330361014d5761014a8161038a565b600061021761032c565b6001600160a01b031633036101e2576101dd61032c565b606061025383836040518060600160405280602781526020016107d4602791396103de565b9392505050565b6001600160a01b03163b151590565b61027161032c565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd610456565b3660008037600080366000845af43d6000803e808015610327573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103688361047e565b6000825111806103755750805b156101af57610384838361022e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103b361032c565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a816104be565b6060600080856001600160a01b0316856040516103fb9190610784565b600060405180830381855af49150503d8060008114610436576040519150601f19603f3d011682016040523d82523d6000602084013e61043b565b606091505b509150915061044c86838387610567565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610350565b610487816105e8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105235760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102f5565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b606083156105d65782516000036105cf576001600160a01b0385163b6105cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102f5565b50816105e0565b6105e0838361067c565b949350505050565b6001600160a01b0381163b6106555760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102f5565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610546565b81511561068c5781518083602001fd5b8060405162461bcd60e51b81526004016102f591906107a0565b80356001600160a01b03811681146106bd57600080fd5b919050565b6000602082840312156106d457600080fd5b610253826106a6565b6000806000604084860312156106f257600080fd5b6106fb846106a6565b9250602084013567ffffffffffffffff8082111561071857600080fd5b818601915086601f83011261072c57600080fd5b81358181111561073b57600080fd5b87602082850101111561074d57600080fd5b6020830194508093505050509250925092565b60005b8381101561077b578181015183820152602001610763565b50506000910152565b60008251610796818460208701610760565b9190910192915050565b60208152600082518060208401526107bf816040850160208701610760565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f44b4bd0f73d4a6c872717d3b99f5935a2080af0980894ed447890241a743cdb64736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000002": { + "contractName": "ProxiedTokenVault", + "storage": {}, + "code": "0x6080604052600436106100e85760003560e01c8063780b64f01161008a578063a86f9d9e11610059578063a86f9d9e146102ca578063c287e578146102ea578063ee1490b21461032a578063f2fde38b1461033d57600080fd5b8063780b64f0146101fc5780638da5cb5b1461025b5780639754149b146102795780639aa8605c1461029957600080fd5b80633ab76e9f116100c65780633ab76e9f1461014f57806367090ccf146101865780636c6563f6146101c7578063715018a6146101e757600080fd5b80630652b57a146100ed5780630c6fab821461010f57806319ab453c1461012f575b600080fd5b3480156100f957600080fd5b5061010d610108366004611fe4565b61035d565b005b34801561011b57600080fd5b5061010d61012a366004612001565b6103e0565b34801561013b57600080fd5b5061010d61014a366004611fe4565b6105f7565b34801561015b57600080fd5b506097546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019257600080fd5b506101696101a1366004612070565b60cb6020908152600092835260408084209091529082529020546001600160a01b031681565b3480156101d357600080fd5b506101696101e23660046120ae565b61070f565b3480156101f357600080fd5b5061010d610726565b34801561020857600080fd5b5061023c6102173660046120e7565b60cc60205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b03909316835260208301919091520161017d565b34801561026757600080fd5b506065546001600160a01b0316610169565b34801561028557600080fd5b5061010d610294366004612100565b61073a565b3480156102a557600080fd5b506102b96102b4366004611fe4565b610a88565b60405161017d9594939291906121f0565b3480156102d657600080fd5b506101696102e5366004612241565b610bd9565b3480156102f657600080fd5b5061031a610305366004611fe4565b60c96020526000908152604090205460ff1681565b604051901515815260200161017d565b61010d6103383660046122d5565b610bef565b34801561034957600080fd5b5061010d610358366004611fe4565b61141f565b610365611498565b6001600160a01b03811661038c57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b6103e86114f2565b6562726964676560d01b6103fd816000610bd9565b6001600160a01b0316336001600160a01b03161461042e57604051630d85cccf60e11b815260040160405180910390fd5b6000336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561046e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049291906123b4565b90506104b281604001516a1d1bdad95b97dd985d5b1d60aa1b600061070f565b6001600160a01b031681602001516001600160a01b0316146104e7576040516320258b8760e21b815260040160405180910390fd5b60004687350361051c576105016040880160208901611fe4565b90506105176001600160a01b038216868661154b565b61058c565b610525876115ae565b6040516342e91bb360e01b81526001600160a01b03878116600483015260248201879052919250908216906342e91bb390604401600060405180830381600087803b15801561057357600080fd5b505af1158015610587573d6000803e3d6000fd5b505050505b815160408084015181519081526001600160a01b0384811660208301529181018790528188169291891691907fe5da926519fc972010fe65b35c1e3339e6dc72b35ffaec203999c2a2a2593eac9060600160405180910390a45050506105f160018055565b50505050565b600054610100900460ff16158080156106175750600054600160ff909116105b806106315750303b158015610631575060005460ff166001145b6106995760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156106bc576000805461ff0019166101001790555b6106c58261160d565b801561070b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061071c848484611626565b90505b9392505050565b61072e611498565b61073860006116da565b565b6107426114f2565b600061075460a0850160808601611fe4565b6001600160a01b03160361077b576040516372b41cdf60e01b815260040160405180910390fd5b4683604001351461079f576040516348bc100560e01b815260040160405180910390fd5b60006107b56562726964676560d01b6000610bd9565b90506000816001600160a01b0316635817b0c3866040518263ffffffff1660e01b81526004016107e5919061248c565b602060405180830381865afa158015610802573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082691906125aa565b600081815260cc6020526040902080546001909101549192506001600160a01b0316908161086757604051637c6addb760e01b815260040160405180910390fd5b60405163ce70f39b60e01b81526001600160a01b0385169063ce70f39b9061089d90869060608c0135908b908b906004016125c3565b602060405180830381865afa1580156108ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108de91906125ed565b6108fb576040516308ba49e560e31b815260040160405180910390fd5b6040805180820182526000808252602080830182815287835260cc909152929020905181546001600160a01b0319166001600160a01b0390911617815590516001909101558015610a0f576001600160a01b038216600090815260c9602052604090205460ff16156109eb576001600160a01b0382166342e91bb361098660a08a0160808b01611fe4565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b1580156109ce57600080fd5b505af11580156109e2573d6000803e3d6000fd5b50505050610a0f565b610a0f6109fe60a0890160808a01611fe4565b6001600160a01b038416908361154b565b610a1f60a0880160808901611fe4565b6001600160a01b0316837fc5d9f7cd7998e24ecf12ad69eca9339764e2cb13788d5d9616f502601b219af68484604051610a6e9291906001600160a01b03929092168252602082015260400190565b60405180910390a350505050610a8360018055565b505050565b60ca6020526000908152604090208054600182015460028301805492936001600160a01b03831693600160a01b90930460ff1692909190610ac89061260a565b80601f0160208091040260200160405190810160405280929190818152602001828054610af49061260a565b8015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b505050505090806003018054610b569061260a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b829061260a565b8015610bcf5780601f10610ba457610100808354040283529160200191610bcf565b820191906000526020600020905b815481529060010190602001808311610bb257829003601f168201915b5050505050905085565b6000610be6468484611626565b90505b92915050565b610bf76114f2565b6001600160a01b0387161580610c375750610c22886a1d1bdad95b97dd985d5b1d60aa1b600061070f565b6001600160a01b0316876001600160a01b0316145b15610c5557604051634694641b60e01b815260040160405180910390fd5b6001600160a01b038616610c7c57604051637c6addb760e01b815260040160405180910390fd5b84600003610c9c5760405162af849960e11b815260040160405180910390fd5b6040805160a08101825260008082526020820181905291810191909152606080820181905260808201526001600160a01b038716600090815260c9602052604081205460ff1615610ef357604051630ef7c31560e31b8152336004820152602481018890526001600160a01b038916906377be18a890604401600060405180830381600087803b158015610d2f57600080fd5b505af1158015610d43573d6000803e3d6000fd5b505050506001600160a01b03888116600090815260ca6020908152604091829020825160a08101845281548152600182015494851692810192909252600160a01b90930460ff1691810191909152600282018054919291606084019190610da99061260a565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd59061260a565b8015610e225780601f10610df757610100808354040283529160200191610e22565b820191906000526020600020905b815481529060010190602001808311610e0557829003601f168201915b50505050508152602001600382018054610e3b9061260a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e679061260a565b8015610eb45780601f10610e8957610100808354040283529160200191610eb4565b820191906000526020600020905b815481529060010190602001808311610e9757829003601f168201915b5050509190925250505060208101519092506001600160a01b0316610eec57604051633e45a03560e21b815260040160405180910390fd5b5085611153565b60008890506040518060a001604052804681526020018a6001600160a01b03168152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a9190612653565b60ff168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610fc0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe89190810190612670565b8152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801561102b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110539190810190612670565b90526040516370a0823160e01b81523060048201529093506000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561109f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c391906125aa565b90506110da6001600160a01b03831633308c61172c565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa158015611120573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114491906125aa565b61114e91906126e7565b925050505b6111e2604051806101a001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b606081018b90523360808201526112098b6a1d1bdad95b97dd985d5b1d60aa1b600061070f565b6001600160a01b031660a08201526080810151604051630637d5c160e11b9161123b918691908e908790602401612708565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526101608201526101408101879052610120810186905261128d86346126e7565b60e08201526001600160a01b03851660c0820152610180810184905260006112be6562726964676560d01b82610bd9565b6001600160a01b03166396e1785234846040518363ffffffff1660e01b81526004016112ea91906127a0565b60206040518083038185885af1158015611308573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061132d91906125aa565b905060405180604001604052808b6001600160a01b031681526020018481525060cc600083815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550602082015181600101559050508a6001600160a01b031682608001516001600160a01b0316827f325cab7553038374e17f39bb45e2a2c90f66c6a52798cb5f95c20d94c11c95e28f8e88604051611400939291909283526001600160a01b03919091166020830152604082015260600190565b60405180910390a45050505061141560018055565b5050505050505050565b611427611498565b6001600160a01b03811661148c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610690565b611495816116da565b50565b6065546001600160a01b031633146107385760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610690565b6002600154036115445760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610690565b6002600155565b6040516001600160a01b038316602482015260448101829052610a8390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611764565b8035600090815260cb602090815260408083208392909183916115d5918701908701611fe4565b6001600160a01b03908116825260208201929092526040016000205416905080610be95761160283611836565b61071f565b60018055565b611615611abb565b61161d611aea565b61149581611b19565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa158015611677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169b9190612890565b9050811580156116b257506001600160a01b038116155b1561071f57604051631467050360e21b81526004810185905260248101849052604401610690565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526105f19085906323b872dd60e01b90608401611577565b60006117b9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611b629092919063ffffffff16565b805190915015610a8357808060200190518101906117d791906125ed565b610a835760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610690565b60006118af81833561184e6040860160208701611fe4565b60405161187192916001600160a01b031690602001918252602082015260400190565b604051602081830303815290604052805190602001206040518060200161189790611fb2565b601f1982820381018352601f90910116604052611b71565b6097549091506001600160a01b0380831691636c0db62b91166118d86040860160208701611fe4565b85356118ea60608801604089016128ad565b6118f760608901896128ca565b61190460808b018b6128ca565b61190e8c35611c75565b60405160200161192093929190612911565b6040516020818303038152906040526040518863ffffffff1660e01b8152600401611951979695949392919061295a565b600060405180830381600087803b15801561196b57600080fd5b505af115801561197f573d6000803e3d6000fd5b5050506001600160a01b038216600090815260c960209081526040808320805460ff1916600117905560ca90915290208391506119bc8282612ac6565b50508135600090815260cb602090815260408083208493909290916119e691908701908701611fe4565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b0316826020016020810190611a479190611fe4565b6001600160a01b031683357f9e465b29e576a3e01584e31d607353f21b80c055e813af907c0a495f6cf4f7bc611a8060608701876128ca565b611a8d60808901896128ca565b611a9d60608b0160408c016128ad565b604051611aae959493929190612b4d565b60405180910390a4919050565b600054610100900460ff16611ae25760405162461bcd60e51b815260040161069090612b8a565b610738611d08565b600054610100900460ff16611b115760405162461bcd60e51b815260040161069090612b8a565b610738611d2f565b6001600160a01b038116611b4057604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b606061071c8484600085611d5f565b600083471015611bc35760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401610690565b8151600003611c145760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401610690565b8282516020840186f590506001600160a01b03811661071f5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401610690565b60606000611c8283611e3c565b600101905060008167ffffffffffffffff811115611ca257611ca2612266565b6040519080825280601f01601f191660200182016040528015611ccc576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611cd657509392505050565b600054610100900460ff166116075760405162461bcd60e51b815260040161069090612b8a565b600054610100900460ff16611d565760405162461bcd60e51b815260040161069090612b8a565b610738336116da565b606082471015611dc05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610690565b600080866001600160a01b03168587604051611ddc9190612bd5565b60006040518083038185875af1925050503d8060008114611e19576040519150601f19603f3d011682016040523d82523d6000602084013e611e1e565b606091505b5091509150611e2f87838387611f14565b925050505b949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611e7b5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611ea7576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611ec557662386f26fc10000830492506010015b6305f5e1008310611edd576305f5e100830492506008015b6127108310611ef157612710830492506004015b60648310611f03576064830492506002015b600a8310610be95760010192915050565b60608315611f83578251600003611f7c576001600160a01b0385163b611f7c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610690565b5081611e34565b611e348383815115611f985781518083602001fd5b8060405162461bcd60e51b81526004016106909190612bf1565b6116ce80612c0583390190565b6001600160a01b038116811461149557600080fd5b8035611fdf81611fbf565b919050565b600060208284031215611ff657600080fd5b813561071f81611fbf565b6000806000806080858703121561201757600080fd5b843567ffffffffffffffff81111561202e57600080fd5b850160a0818803121561204057600080fd5b9350602085013561205081611fbf565b9250604085013561206081611fbf565b9396929550929360600135925050565b6000806040838503121561208357600080fd5b82359150602083013561209581611fbf565b809150509250929050565b801515811461149557600080fd5b6000806000606084860312156120c357600080fd5b833592506020840135915060408401356120dc816120a0565b809150509250925092565b6000602082840312156120f957600080fd5b5035919050565b60008060006040848603121561211557600080fd5b833567ffffffffffffffff8082111561212d57600080fd5b908501906101a0828803121561214257600080fd5b9093506020850135908082111561215857600080fd5b818601915086601f83011261216c57600080fd5b81358181111561217b57600080fd5b87602082850101111561218d57600080fd5b6020830194508093505050509250925092565b60005b838110156121bb5781810151838201526020016121a3565b50506000910152565b600081518084526121dc8160208601602086016121a0565b601f01601f19169290920160200192915050565b8581526001600160a01b038516602082015260ff8416604082015260a060608201819052600090612223908301856121c4565b828103608084015261223581856121c4565b98975050505050505050565b6000806040838503121561225457600080fd5b823591506020830135612095816120a0565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122a5576122a5612266565b604052919050565b600067ffffffffffffffff8211156122c7576122c7612266565b50601f01601f191660200190565b600080600080600080600080610100898b0312156122f257600080fd5b88359750602089013561230481611fbf565b9650604089013561231481611fbf565b9550606089013594506080890135935060a0890135925060c089013561233981611fbf565b915060e089013567ffffffffffffffff81111561235557600080fd5b8901601f81018b1361236657600080fd5b8035612379612374826122ad565b61227c565b8181528c602083850101111561238e57600080fd5b816020840160208301376000602083830101528093505050509295985092959890939650565b6000606082840312156123c657600080fd5b6040516060810181811067ffffffffffffffff821117156123e9576123e9612266565b6040528251815260208301516123fe81611fbf565b60208201526040928301519281019290925250919050565b6000808335601e1984360301811261242d57600080fd5b830160208101925035905067ffffffffffffffff81111561244d57600080fd5b80360382131561245c57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081528135602082015260006124a560208401611fd4565b6001600160a01b03811660408401525060408301356060830152606083013560808301526124d560808401611fd4565b6001600160a01b03811660a0840152506124f160a08401611fd4565b6001600160a01b03811660c08401525061250d60c08401611fd4565b6001600160a01b03811660e08401525061010060e08401358184015261012081850135818501526101409150808501358285015250610160818501358185015261255981860186612416565b925090506101a061018081818701526125776101c087018585612463565b935061258581880188612416565b878603601f1901848901529350905061259f848483612463565b979650505050505050565b6000602082840312156125bc57600080fd5b5051919050565b8481528360208201526060604082015260006125e3606083018486612463565b9695505050505050565b6000602082840312156125ff57600080fd5b815161071f816120a0565b600181811c9082168061261e57607f821691505b60208210810361263e57634e487b7160e01b600052602260045260246000fd5b50919050565b60ff8116811461149557600080fd5b60006020828403121561266557600080fd5b815161071f81612644565b60006020828403121561268257600080fd5b815167ffffffffffffffff81111561269957600080fd5b8201601f810184136126aa57600080fd5b80516126b8612374826122ad565b8181528560208385010111156126cd57600080fd5b6126de8260208301602086016121a0565b95945050505050565b81810381811115610be957634e487b7160e01b600052601160045260246000fd5b60808152845160808201526000602086015160018060a01b0380821660a085015260ff60408901511660c08501526060880151915060a060e08501526127526101208501836121c4565b91506080880151607f198584030161010086015261277083826121c4565b9188166020860152506001600160a01b038616604085015291506127919050565b82606083015295945050505050565b6020815281516020820152600060208301516127c760408401826001600160a01b03169052565b50604083015160608301526060830151608083015260808301516127f660a08401826001600160a01b03169052565b5060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610160808401919091528301516101a06101808085018290526128746101c08601846121c4565b90860151858203601f1901838701529092506125e383826121c4565b6000602082840312156128a257600080fd5b815161071f81611fbf565b6000602082840312156128bf57600080fd5b813561071f81612644565b6000808335601e198436030181126128e157600080fd5b83018035915067ffffffffffffffff8211156128fc57600080fd5b60200191503681900382131561245c57600080fd5b8284823760008382016b050c4e4d2c8cecac9e13f19160a31b8152835161293f81600c8401602088016121a0565b602960f81b600c9290910191820152600d0195945050505050565b6001600160a01b038881168252871660208201526040810186905260ff8516606082015260c0608082018190526000906129979083018587612463565b82810360a08401526129a981856121c4565b9a9950505050505050505050565b601f821115610a8357600081815260208120601f850160051c810160208610156129de5750805b601f850160051c820191505b818110156129fd578281556001016129ea565b505050505050565b67ffffffffffffffff831115612a1d57612a1d612266565b612a3183612a2b835461260a565b836129b7565b6000601f841160018114612a655760008515612a4d5750838201355b600019600387901b1c1916600186901b178355612abf565b600083815260209020601f19861690835b82811015612a965786850135825560209485019460019092019101612a76565b5086821015612ab35760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81358155600181016020830135612adc81611fbf565b81546040850135612aec81612644565b60ff60a01b60a09190911b166001600160a01b03929092166001600160a81b03199190911617179055612b2260608301836128ca565b612b30818360028601612a05565b5050612b3f60808301836128ca565b6105f1818360038601612a05565b606081526000612b61606083018789612463565b8281036020840152612b74818688612463565b91505060ff831660408301529695505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251612be78184602087016121a0565b9190910192915050565b602081526000610be660208301846121c456fe608060405234801561001057600080fd5b506116ae806100206000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80636c6563f6116100c357806395d89b411161007c57806395d89b4114610305578063a457c2d71461030d578063a86f9d9e14610320578063a9059cbb14610333578063dd62ed3e14610346578063f2fde38b1461035957600080fd5b80636c6563f61461028a57806370a082311461029d578063715018a6146102c657806377be18a8146102ce5780637cf8ed0d146102e15780638da5cb5b146102f457600080fd5b8063395093511161011557806339509351146101ed5780633ab76e9f1461020057806342e91bb31461022557806349d126051461023857806367e828bf146102415780636c0db62b1461027757600080fd5b80630652b57a1461015d57806306fdde0314610172578063095ea7b31461019057806318160ddd146101b357806323b872dd146101c5578063313ce567146101d8575b600080fd5b61017061016b3660046111d3565b61036c565b005b61017a6103ef565b60405161018791906111f0565b60405180910390f35b6101a361019e36600461123e565b610481565b6040519015158152602001610187565b60cb545b604051908152602001610187565b6101a36101d336600461126a565b61049b565b60fd5460405160ff9091168152602001610187565b6101a36101fb36600461123e565b6104db565b6097546001600160a01b03165b6040516001600160a01b039091168152602001610187565b61017061023336600461123e565b6104fd565b6101b760fc5481565b61025860fb5460fc546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610187565b61017061028536600461134e565b61059a565b61020d61029836600461140d565b610740565b6101b76102ab3660046111d3565b6001600160a01b0316600090815260c9602052604090205490565b61017061074d565b6101706102dc36600461123e565b610761565b60fb5461020d906001600160a01b031681565b6065546001600160a01b031661020d565b61017a6107f1565b6101a361031b36600461123e565b610800565b61020d61032e366004611442565b610886565b6101a361034136600461123e565b610893565b6101b761035436600461146e565b6108c8565b6101706103673660046111d3565b6108f3565b61037461096c565b6001600160a01b03811661039b57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b606060cc80546103fe906114a7565b80601f016020809104026020016040519081016040528092919081815260200182805461042a906114a7565b80156104775780601f1061044c57610100808354040283529160200191610477565b820191906000526020600020905b81548152906001019060200180831161045a57829003601f168201915b5050505050905090565b60003361048f8185856109c6565b60019150505b92915050565b6000306001600160a01b038416036104c6576040516319a6f37760e21b815260040160405180910390fd5b6104d1848484610aeb565b90505b9392505050565b60003361048f8185856104ee83836108c8565b6104f891906114e1565b6109c6565b6a1d1bdad95b97dd985d5b1d60aa1b610517816000610886565b6001600160a01b0316336001600160a01b03161461054857604051630d85cccf60e11b815260040160405180910390fd5b6105528383610b04565b826001600160a01b03167f397b33b307fc137878ebfc75b295289ec0ee25a31bb5bf034f33256fe8ea2aa68360405161058d91815260200190565b60405180910390a2505050565b600054610100900460ff16158080156105ba5750600054600160ff909116105b806105d45750303b1580156105d4575060005460ff166001145b61063c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561065f576000805461ff0019166101001790555b6001600160a01b0386161580610673575084155b8061067d57504685145b8061068757508251155b8061069157508151155b156106af576040516301e25ab360e71b815260040160405180910390fd5b6106b887610bc6565b6106c28284610bdf565b60fb80546001600160a01b0319166001600160a01b03881617905560fc85905560fd805460ff191660ff86161790558015610737576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b60006104d1848484610c10565b61075561096c565b61075f6000610cc4565b565b6a1d1bdad95b97dd985d5b1d60aa1b61077b816000610886565b6001600160a01b0316336001600160a01b0316146107ac57604051630d85cccf60e11b815260040160405180910390fd5b6107b68383610d16565b826001600160a01b03167f9b5b9a05e4726d8bb959f1440e05c6b8109443f2083bc4e386237d76545265538360405161058d91815260200190565b606060cd80546103fe906114a7565b6000338161080e82866108c8565b90508381101561086e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610633565b61087b82868684036109c6565b506001949350505050565b60006104d4468484610c10565b6000306001600160a01b038416036108be576040516319a6f37760e21b815260040160405180910390fd5b6104d48383610e47565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b6108fb61096c565b6001600160a01b0381166109605760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610633565b61096981610cc4565b50565b6065546001600160a01b0316331461075f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610633565b6001600160a01b038316610a285760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610633565b6001600160a01b038216610a895760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610633565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600033610af9858285610e55565b61087b858585610ecf565b6001600160a01b038216610b5a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610633565b8060cb6000828254610b6c91906114e1565b90915550506001600160a01b038216600081815260c960209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b5050565b610bce61107a565b610bd66110a9565b610969816110d8565b600054610100900460ff16610c065760405162461bcd60e51b815260040161063390611502565b610bc28282611121565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa158015610c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c85919061154d565b905081158015610c9c57506001600160a01b038116155b156104d457604051631467050360e21b81526004810185905260248101849052604401610633565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610d765760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610633565b6001600160a01b038216600090815260c9602052604090205481811015610dea5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610633565b6001600160a01b038316600081815260c960209081526040808320868603905560cb80548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610ade565b505050565b60003361048f818585610ecf565b6000610e6184846108c8565b90506000198114610ec95781811015610ebc5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610633565b610ec984848484036109c6565b50505050565b6001600160a01b038316610f335760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610633565b6001600160a01b038216610f955760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610633565b6001600160a01b038316600090815260c960205260409020548181101561100d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610633565b6001600160a01b03808516600081815260c9602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061106d9086815260200190565b60405180910390a3610ec9565b600054610100900460ff166110a15760405162461bcd60e51b815260040161063390611502565b61075f611161565b600054610100900460ff166110d05760405162461bcd60e51b815260040161063390611502565b61075f61118e565b6001600160a01b0381166110ff57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166111485760405162461bcd60e51b815260040161063390611502565b60cc61115483826115b8565b5060cd610e4282826115b8565b600054610100900460ff166111885760405162461bcd60e51b815260040161063390611502565b60018055565b600054610100900460ff166111b55760405162461bcd60e51b815260040161063390611502565b61075f33610cc4565b6001600160a01b038116811461096957600080fd5b6000602082840312156111e557600080fd5b81356104d4816111be565b600060208083528351808285015260005b8181101561121d57858101830151858201604001528201611201565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561125157600080fd5b823561125c816111be565b946020939093013593505050565b60008060006060848603121561127f57600080fd5b833561128a816111be565b9250602084013561129a816111be565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126112d257600080fd5b813567ffffffffffffffff808211156112ed576112ed6112ab565b604051601f8301601f19908116603f01168101908282118183101715611315576113156112ab565b8160405283815286602085880101111561132e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c0878903121561136757600080fd5b8635611372816111be565b95506020870135611382816111be565b945060408701359350606087013560ff8116811461139f57600080fd5b9250608087013567ffffffffffffffff808211156113bc57600080fd5b6113c88a838b016112c1565b935060a08901359150808211156113de57600080fd5b506113eb89828a016112c1565b9150509295509295509295565b8035801515811461140857600080fd5b919050565b60008060006060848603121561142257600080fd5b8335925060208401359150611439604085016113f8565b90509250925092565b6000806040838503121561145557600080fd5b82359150611465602084016113f8565b90509250929050565b6000806040838503121561148157600080fd5b823561148c816111be565b9150602083013561149c816111be565b809150509250929050565b600181811c908216806114bb57607f821691505b6020821081036114db57634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561049557634e487b7160e01b600052601160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561155f57600080fd5b81516104d4816111be565b601f821115610e4257600081815260208120601f850160051c810160208610156115915750805b601f850160051c820191505b818110156115b05782815560010161159d565b505050505050565b815167ffffffffffffffff8111156115d2576115d26112ab565b6115e6816115e084546114a7565b8461156a565b602080601f83116001811461161b57600084156116035750858301515b600019600386901b1c1916600185901b1785556115b0565b600085815260208120601f198616915b8281101561164a5788860151825594840194600190910190840161162b565b50858210156116685787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea26469706673582212205ce93c18102792779a2e35d561c62ea243b85b80c5963767b571fcdab9e3d74a64736f6c63430008120033a26469706673582212205b590be2c7b9e2eb2401e8170149f7dba7d88f43691401f4ee5b704b6bdc8bb364736f6c63430008120033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000002": { + "contractName": "TokenVaultProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000002" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106c2565b610118565b61005b6100933660046106dd565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106c2565b6101ed565b3480156100f557600080fd5b506100ad61020d565b610106610269565b6101166101116102fe565b610308565b565b61012061032c565b6001600160a01b0316330361014d5761014a8160405180602001604052806000815250600061035f565b50565b61014a6100fe565b61015d61032c565b6001600160a01b031633036101b4576101af8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061035f915050565b505050565b6101af6100fe565b60006101c661032c565b6001600160a01b031633036101e2576101dd6102fe565b905090565b6101ea6100fe565b90565b6101f561032c565b6001600160a01b0316330361014d5761014a8161038a565b600061021761032c565b6001600160a01b031633036101e2576101dd61032c565b606061025383836040518060600160405280602781526020016107d4602791396103de565b9392505050565b6001600160a01b03163b151590565b61027161032c565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd610456565b3660008037600080366000845af43d6000803e808015610327573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103688361047e565b6000825111806103755750805b156101af57610384838361022e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103b361032c565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a816104be565b6060600080856001600160a01b0316856040516103fb9190610784565b600060405180830381855af49150503d8060008114610436576040519150601f19603f3d011682016040523d82523d6000602084013e61043b565b606091505b509150915061044c86838387610567565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610350565b610487816105e8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105235760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102f5565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b606083156105d65782516000036105cf576001600160a01b0385163b6105cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102f5565b50816105e0565b6105e0838361067c565b949350505050565b6001600160a01b0381163b6106555760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102f5565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610546565b81511561068c5781518083602001fd5b8060405162461bcd60e51b81526004016102f591906107a0565b80356001600160a01b03811681146106bd57600080fd5b919050565b6000602082840312156106d457600080fd5b610253826106a6565b6000806000604084860312156106f257600080fd5b6106fb846106a6565b9250602084013567ffffffffffffffff8082111561071857600080fd5b818601915086601f83011261072c57600080fd5b81358181111561073b57600080fd5b87602082850101111561074d57600080fd5b6020830194508093505050509250925092565b60005b8381101561077b578181015183820152602001610763565b50506000910152565b60008251610796818460208701610760565b9190910192915050565b60208152600082518060208401526107bf816040850160208701610760565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f44b4bd0f73d4a6c872717d3b99f5935a2080af0980894ed447890241a743cdb64736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000003": { + "contractName": "ProxiedEtherVault", + "storage": {}, + "code": "0x6080604052600436106100ab5760003560e01c80638da5cb5b116100645780638da5cb5b146101c0578063a86f9d9e146101de578063ba0bbd95146101fe578063d73bb3d01461021e578063f2fde38b1461023e578063fe9fbb801461025e57600080fd5b80630652b57a146100f457806319ab453c146101145780632d1fb389146101345780633ab76e9f146101545780636c6563f61461018b578063715018a6146101ab57600080fd5b366100ef5747158015906100cf575033600090815260c9602052604090205460ff16155b156100ed57604051634fa3f24560e01b815260040160405180910390fd5b005b600080fd5b34801561010057600080fd5b506100ed61010f366004610a90565b6102a7565b34801561012057600080fd5b506100ed61012f366004610a90565b61032a565b34801561014057600080fd5b506100ed61014f366004610ac2565b610442565b34801561016057600080fd5b506097546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019757600080fd5b5061016e6101a6366004610af7565b6104fb565b3480156101b757600080fd5b506100ed610512565b3480156101cc57600080fd5b506065546001600160a01b031661016e565b3480156101ea57600080fd5b5061016e6101f9366004610b2c565b610526565b34801561020a57600080fd5b506100ed610219366004610b4f565b610533565b34801561022a57600080fd5b506100ed610239366004610b7b565b6105f1565b34801561024a57600080fd5b506100ed610259366004610a90565b610674565b34801561026a57600080fd5b50610297610279366004610a90565b6001600160a01b0316600090815260c9602052604090205460ff1690565b6040519015158152602001610182565b6102af6106ea565b6001600160a01b0381166102d657604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b600054610100900460ff161580801561034a5750600054600160ff909116105b806103645750303b158015610364575060005460ff166001145b6103cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156103ef576000805461ff0019166101001790555b6103f882610744565b801561043e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61044a6106ea565b6001600160a01b038216158061047e57506001600160a01b038216600090815260c9602052604090205460ff161515811515145b1561049c57604051631bebdfa760e21b815260040160405180910390fd5b6001600160a01b038216600081815260c96020908152604091829020805460ff191685151590811790915591519182527f4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf910160405180910390a25050565b600061050884848461075d565b90505b9392505050565b61051a6106ea565b6105246000610811565b565b600061050b46848461075d565b33600090815260c9602052604090205460ff1661056357604051634fa3f24560e01b815260040160405180910390fd5b61056b610863565b6001600160a01b0382166105925760405163687563df60e01b815260040160405180910390fd5b6105a56001600160a01b038316826108bc565b816001600160a01b03167f7b9f77d35803cd201eac9c4ed739bc1fcd3f1be6ab8877d925d1e55517b6fd6e826040516105e091815260200190565b60405180910390a261043e60018055565b33600090815260c9602052604090205460ff1661062157604051634fa3f24560e01b815260040160405180910390fd5b610629610863565b61063333826108bc565b60405181815233907f7b9f77d35803cd201eac9c4ed739bc1fcd3f1be6ab8877d925d1e55517b6fd6e9060200160405180910390a261067160018055565b50565b61067c6106ea565b6001600160a01b0381166106e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103c3565b61067181610811565b6065546001600160a01b031633146105245760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c3565b61074c61097d565b6107546109ac565b610671816109db565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa1580156107ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d29190610b94565b9050811580156107e957506001600160a01b038116155b1561050b57604051631467050360e21b815260048101859052602481018490526044016103c3565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6002600154036108b55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103c3565b6002600155565b8015806108d057506001600160a01b038216155b156108d9575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610926576040519150601f19603f3d011682016040523d82523d6000602084013e61092b565b606091505b50509050806109725760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b60448201526064016103c3565b505050565b60018055565b600054610100900460ff166109a45760405162461bcd60e51b81526004016103c390610bb1565b610524610a24565b600054610100900460ff166109d35760405162461bcd60e51b81526004016103c390610bb1565b610524610a4b565b6001600160a01b038116610a0257604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166109775760405162461bcd60e51b81526004016103c390610bb1565b600054610100900460ff16610a725760405162461bcd60e51b81526004016103c390610bb1565b61052433610811565b6001600160a01b038116811461067157600080fd5b600060208284031215610aa257600080fd5b813561050b81610a7b565b80358015158114610abd57600080fd5b919050565b60008060408385031215610ad557600080fd5b8235610ae081610a7b565b9150610aee60208401610aad565b90509250929050565b600080600060608486031215610b0c57600080fd5b8335925060208401359150610b2360408501610aad565b90509250925092565b60008060408385031215610b3f57600080fd5b82359150610aee60208401610aad565b60008060408385031215610b6257600080fd5b8235610b6d81610a7b565b946020939093013593505050565b600060208284031215610b8d57600080fd5b5035919050565b600060208284031215610ba657600080fd5b815161050b81610a7b565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212207583c25e67e1b9db0f317fbe1c15cd5a0919373c4d9b26d98238ed2046695f9264736f6c63430008120033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000003": { + "contractName": "EtherVaultProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xa738d3397c1eb96f671d7e4bd29cabbfa1a9c9ebc0db4142aee17809c43ab720": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000003" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106c2565b610118565b61005b6100933660046106dd565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106c2565b6101ed565b3480156100f557600080fd5b506100ad61020d565b610106610269565b6101166101116102fe565b610308565b565b61012061032c565b6001600160a01b0316330361014d5761014a8160405180602001604052806000815250600061035f565b50565b61014a6100fe565b61015d61032c565b6001600160a01b031633036101b4576101af8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061035f915050565b505050565b6101af6100fe565b60006101c661032c565b6001600160a01b031633036101e2576101dd6102fe565b905090565b6101ea6100fe565b90565b6101f561032c565b6001600160a01b0316330361014d5761014a8161038a565b600061021761032c565b6001600160a01b031633036101e2576101dd61032c565b606061025383836040518060600160405280602781526020016107d4602791396103de565b9392505050565b6001600160a01b03163b151590565b61027161032c565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd610456565b3660008037600080366000845af43d6000803e808015610327573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103688361047e565b6000825111806103755750805b156101af57610384838361022e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103b361032c565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a816104be565b6060600080856001600160a01b0316856040516103fb9190610784565b600060405180830381855af49150503d8060008114610436576040519150601f19603f3d011682016040523d82523d6000602084013e61043b565b606091505b509150915061044c86838387610567565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610350565b610487816105e8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105235760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102f5565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b606083156105d65782516000036105cf576001600160a01b0385163b6105cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102f5565b50816105e0565b6105e0838361067c565b949350505050565b6001600160a01b0381163b6106555760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102f5565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610546565b81511561068c5781518083602001fd5b8060405162461bcd60e51b81526004016102f591906107a0565b80356001600160a01b03811681146106bd57600080fd5b919050565b6000602082840312156106d457600080fd5b610253826106a6565b6000806000604084860312156106f257600080fd5b6106fb846106a6565b9250602084013567ffffffffffffffff8082111561071857600080fd5b818601915086601f83011261072c57600080fd5b81358181111561073b57600080fd5b87602082850101111561074d57600080fd5b6020830194508093505050509250925092565b60005b8381101561077b578181015183820152602001610763565b50506000910152565b60008251610796818460208701610760565b9190910192915050565b60208152600082518060208401526107bf816040850160208701610760565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f44b4bd0f73d4a6c872717d3b99f5935a2080af0980894ed447890241a743cdb64736f6c63430008120033", + "balance": "0xffffffffffffff21f494c589bfffffff" + }, + "0x0000777700000000000000000000000000000007": { + "contractName": "ProxiedSignalService", + "storage": {}, + "code": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80636c6563f6116100715780636c6563f614610162578063715018a6146101755780638da5cb5b1461017d578063a86f9d9e1461018e578063f2fde38b146101a1578063f8f3f844146101b457600080fd5b80630652b57a146100b957806319ab453c146100ce57806332676bc6146100e15780633ab76e9f146101095780635221f6131461012e57806366ca2bc014610141575b600080fd5b6100cc6100c7366004611a18565b6101e0565b005b6100cc6100dc366004611a18565b610263565b6100f46100ef366004611a35565b61037b565b60405190151581526020015b60405180910390f35b6097546001600160a01b03165b6040516001600160a01b039091168152602001610100565b6100f461013c366004611a61565b6103ed565b61015461014f366004611af7565b61055d565b604051908152602001610100565b610116610170366004611b25565b6105a2565b6100cc6105b9565b6065546001600160a01b0316610116565b61011661019c366004611b5a565b6105cd565b6100cc6101af366004611a18565b6105da565b6101546101c2366004611a35565b6040805192835260208301919091526034600c830120918101905290565b6101e8610653565b6001600160a01b03811661020f57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040519081527f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b9060200160405180910390a150565b600054610100900460ff16158080156102835750600054600160ff909116105b8061029d5750303b15801561029d575060005460ff166001145b6103055760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610328576000805461ff0019166101001790555b610331826106ad565b8015610377576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60006001600160a01b0383166103a4576040516354cdfc8d60e11b815260040160405180910390fd5b60008290036103c65760405163014f1da760e21b815260040160405180910390fd5b5060408051838152602081018390526034600c820120908201909152546001145b92915050565b600046860361040f5760405163e822b48d60e01b815260040160405180910390fd5b6001600160a01b038516610436576040516354cdfc8d60e11b815260040160405180910390fd5b60008490036104585760405163014f1da760e21b815260040160405180910390fd5b600061046683850185611bf6565b9050600061047d647461696b6f60d81b60006105cd565b8251604051632e24533960e21b81526001600160a01b03929092169163b8914ce4916104af9160040190815260200190565b602060405180830381865afa1580156104cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f09190611cbd565b60408051898152602081018990526034600c820120818301909252606081019190915290915061055190608001604051602081830303815290604052604051806040016040528060018152602001600160f81b8152508460200151846106c6565b98975050505050505050565b600081810361057f5760405163014f1da760e21b815260040160405180910390fd5b506040805133815260208101929092526034600c83012091810190526001815590565b60006105af8484846106ea565b90505b9392505050565b6105c1610653565b6105cb600061079e565b565b60006105b24684846106ea565b6105e2610653565b6001600160a01b0381166106475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102fc565b6106508161079e565b50565b6065546001600160a01b031633146105cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102fc565b6106b56107f0565b6106bd61081f565b6106508161084e565b6000806106d286610897565b90506106e0818686866108c9565b9695505050505050565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa15801561073b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075f9190611cd6565b90508115801561077657506001600160a01b038116155b156105b257604051631467050360e21b815260048101859052602481018490526044016102fc565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166108175760405162461bcd60e51b81526004016102fc90611cf3565b6105cb610906565b600054610100900460ff166108465760405162461bcd60e51b81526004016102fc90611cf3565b6105cb610933565b6001600160a01b03811661087557604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b606081805190602001206040516020016108b391815260200190565b6040516020818303038152906040529050919050565b60008060006108d9878686610963565b915091508180156108fb57508051602080830191909120875191880191909120145b979650505050505050565b600054610100900460ff1661092d5760405162461bcd60e51b81526004016102fc90611cf3565b60018055565b600054610100900460ff1661095a5760405162461bcd60e51b81526004016102fc90611cf3565b6105cb3361079e565b60006060600061097285610a3e565b90506000806000610984848a89610b37565b815192955090935091501580806109985750815b6109e45760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e00000000000060448201526064016102fc565b600081610a005760405180602001604052806000815250610a2c565b610a2c86610a0f600188611d54565b81518110610a1f57610a1f611d67565b6020026020010151610f57565b919b919a509098505050505050505050565b60606000610a4b83610f7e565b90506000815167ffffffffffffffff811115610a6957610a69611b86565b604051908082528060200260200182016040528015610aae57816020015b6040805180820190915260608082526020820152815260200190600190039081610a875790505b50905060005b8251811015610b2f576000610ae1848381518110610ad457610ad4611d67565b6020026020010151610fb1565b90506040518060400160405280610af783610f7e565b815260200182815250838381518110610b1257610b12611d67565b60200260200101819052505080610b2890611d7d565b9050610ab4565b509392505050565b600060606000806000610b4987611041565b90506000869050600080610b70604051806040016040528060608152602001606081525090565b60005b8c51811015610f2f578c8181518110610b8e57610b8e611d67565b602002602001015191508284610ba49190611d96565b9350610bb1600188611d96565b965083600003610c0e578482602001518051906020012014610c095760405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b60448201526064016102fc565b610cd0565b602082602001515110610c75578482602001518051906020012014610c095760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c2068617368000000000060448201526064016102fc565b84610c83836020015161117a565b14610cd05760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f6465206861736800000000000060448201526064016102fc565b610cdc60106001611da9565b60ff1682600001515103610d4a5785518414610f2f576000868581518110610d0657610d06611d67565b01602001518351805160f89290921c925060009183908110610d2a57610d2a611d67565b60200260200101519050610d3d816111a2565b9650600194505050610f1f565b81515160011901610ed7576000610d60836111d8565b9050600081600081518110610d7757610d77611d67565b016020015160f81c90506000610d8e600283611dc2565b610d99906002611df2565b90506000610daa848360ff166111fc565b90506000610db88b8a6111fc565b90506000610dc68383611232565b905060ff851660021480610ddd575060ff85166003145b15610e1757808351148015610df25750808251145b15610e0457610e01818b611d96565b99505b50600160ff1b9950610f2f945050505050565b60ff85161580610e2a575060ff85166001145b15610e805782518114610e4a5750600160ff1b9950610f2f945050505050565b610e718860000151600181518110610e6457610e64611d67565b60200260200101516111a2565b9a509750610f1f945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e206044820152650e0e4caccd2f60d31b60648201526084016102fc565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e00000060448201526064016102fc565b610f2881611d7d565b9050610b73565b50600160ff1b841486610f4287866111fc565b909e909d50909b509950505050505050505050565b805180516060916103e791610f6e90600190611d54565b81518110610ad457610ad4611d67565b6040805180820182526000808252602091820152815180830190925282518252808301908201526060906103e7906112ac565b60606000806000610fc185611498565b919450925090506000816001811115610fdc57610fdc611e0b565b146110295760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e000000000000000060448201526064016102fc565b611038856020015184846117e2565b95945050505050565b60606000825160026110539190611e21565b67ffffffffffffffff81111561106b5761106b611b86565b6040519080825280601f01601f191660200182016040528015611095576020820181803683370190505b50905060005b83518110156111735760048482815181106110b8576110b8611d67565b01602001516001600160f81b031916901c826110d5836002611e21565b815181106110e5576110e5611d67565b60200101906001600160f81b031916908160001a905350601084828151811061111057611110611d67565b0160200151611122919060f81c611dc2565b60f81b82611131836002611e21565b61113c906001611d96565b8151811061114c5761114c611d67565b60200101906001600160f81b031916908160001a90535061116c81611d7d565b905061109b565b5092915050565b600060208251101561118e57506020015190565b818060200190518101906103e79190611cbd565b600060606020836000015110156111c3576111bc8361188b565b90506111cf565b6111cc83610fb1565b90505b6105b28161117a565b60606103e76111f78360000151600081518110610ad457610ad4611d67565b611041565b60608251821061121b57506040805160208101909152600081526103e7565b6105b2838384865161122d9190611d54565b611896565b6000805b8084511180156112465750808351115b8015611297575082818151811061125f5761125f611d67565b602001015160f81c60f81b6001600160f81b03191684828151811061128657611286611d67565b01602001516001600160f81b031916145b156105b2576112a581611d7d565b9050611236565b60606000806112ba84611498565b919350909150600190508160018111156112d6576112d6611e0b565b146113235760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e00000000000000000060448201526064016102fc565b6040805160208082526104208201909252600091816020015b604080518082019091526000808252602082015281526020019060019003908161133c5790505090506000835b865181101561148d57602082106113d55760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201526939ba103632b733ba341760b11b60648201526084016102fc565b6000806114126040518060400160405280858c600001516113f69190611d54565b8152602001858c6020015161140b9190611d96565b9052611498565b50915091506040518060400160405280838361142e9190611d96565b8152602001848b602001516114439190611d96565b81525085858151811061145857611458611d67565b602090810291909101015261146e600185611d96565b935061147a8183611d96565b6114849084611d96565b92505050611369565b508152949350505050565b6000806000808460000151116114f05760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e000000000000000060448201526064016102fc565b6020840151805160001a607f81116115155760006001600094509450945050506117db565b60b7811161159157600061152a608083611d54565b90508087600001511161157f5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e0000000000000060448201526064016102fc565b600195509350600092506117db915050565b60bf81116116805760006115a660b783611d54565b9050808760000151116115fb5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e0060448201526064016102fc565b600183015160208290036101000a90046116158183611d96565b8851116116645760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e000000000000000060448201526064016102fc565b61166f826001611d96565b96509450600093506117db92505050565b60f781116116fb57600061169560c083611d54565b9050808760000151116116ea5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e00000000000000000060448201526064016102fc565b6001955093508492506117db915050565b600061170860f783611d54565b90508087600001511161175d5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e00000060448201526064016102fc565b600183015160208290036101000a90046117778183611d96565b8851116117bf5760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b210292628103637b733903634b9ba1760511b60448201526064016102fc565b6117ca826001611d96565b96509450600193506117db92505050565b9193909250565b606060008267ffffffffffffffff8111156117ff576117ff611b86565b6040519080825280601f01601f191660200182016040528015611829576020820181803683370190505b509050805160000361183c5790506105b2565b8484016020820160005b8581101561185e578281015182820152602001611846565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60606103e7826119ed565b6060816118a481601f611d96565b10156118e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102fc565b826118ee8382611d96565b101561192d5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102fc565b6119378284611d96565b8451101561197b5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016102fc565b60608215801561199a57604051915060008252602082016040526119e4565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156119d35780518352602092830192016119bb565b5050858452601f01601f1916604052505b50949350505050565b60606103e78260200151600084600001516117e2565b6001600160a01b038116811461065057600080fd5b600060208284031215611a2a57600080fd5b81356105b281611a03565b60008060408385031215611a4857600080fd5b8235611a5381611a03565b946020939093013593505050565b600080600080600060808688031215611a7957600080fd5b853594506020860135611a8b81611a03565b935060408601359250606086013567ffffffffffffffff80821115611aaf57600080fd5b818801915088601f830112611ac357600080fd5b813581811115611ad257600080fd5b896020828501011115611ae457600080fd5b9699959850939650602001949392505050565b600060208284031215611b0957600080fd5b5035919050565b80358015158114611b2057600080fd5b919050565b600080600060608486031215611b3a57600080fd5b8335925060208401359150611b5160408501611b10565b90509250925092565b60008060408385031215611b6d57600080fd5b82359150611b7d60208401611b10565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611bbf57611bbf611b86565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611bee57611bee611b86565b604052919050565b60006020808385031215611c0957600080fd5b823567ffffffffffffffff80821115611c2157600080fd5b9084019060408287031215611c3557600080fd5b611c3d611b9c565b823581528383013582811115611c5257600080fd5b80840193505086601f840112611c6757600080fd5b823582811115611c7957611c79611b86565b611c8b601f8201601f19168601611bc5565b92508083528785828601011115611ca157600080fd5b8085850186850137600090830185015292830152509392505050565b600060208284031215611ccf57600080fd5b5051919050565b600060208284031215611ce857600080fd5b81516105b281611a03565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156103e7576103e7611d3e565b634e487b7160e01b600052603260045260246000fd5b600060018201611d8f57611d8f611d3e565b5060010190565b808201808211156103e7576103e7611d3e565b60ff81811683821601908111156103e7576103e7611d3e565b600060ff831680611de357634e487b7160e01b600052601260045260246000fd5b8060ff84160691505092915050565b60ff82811682821603908111156103e7576103e7611d3e565b634e487b7160e01b600052602160045260246000fd5b80820281158282048414176103e7576103e7611d3e56fea2646970667358221220914fd418156d9d9a0e4aa8f2d563552ff29aa367381c04f0e5db5dcc63b0ce7264736f6c63430008120033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000007": { + "contractName": "SignalServiceProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000007" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106c2565b610118565b61005b6100933660046106dd565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106c2565b6101ed565b3480156100f557600080fd5b506100ad61020d565b610106610269565b6101166101116102fe565b610308565b565b61012061032c565b6001600160a01b0316330361014d5761014a8160405180602001604052806000815250600061035f565b50565b61014a6100fe565b61015d61032c565b6001600160a01b031633036101b4576101af8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506001925061035f915050565b505050565b6101af6100fe565b60006101c661032c565b6001600160a01b031633036101e2576101dd6102fe565b905090565b6101ea6100fe565b90565b6101f561032c565b6001600160a01b0316330361014d5761014a8161038a565b600061021761032c565b6001600160a01b031633036101e2576101dd61032c565b606061025383836040518060600160405280602781526020016107d4602791396103de565b9392505050565b6001600160a01b03163b151590565b61027161032c565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd610456565b3660008037600080366000845af43d6000803e808015610327573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b6103688361047e565b6000825111806103755750805b156101af57610384838361022e565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103b361032c565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a816104be565b6060600080856001600160a01b0316856040516103fb9190610784565b600060405180830381855af49150503d8060008114610436576040519150601f19603f3d011682016040523d82523d6000602084013e61043b565b606091505b509150915061044c86838387610567565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610350565b610487816105e8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6001600160a01b0381166105235760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102f5565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b606083156105d65782516000036105cf576001600160a01b0385163b6105cf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102f5565b50816105e0565b6105e0838361067c565b949350505050565b6001600160a01b0381163b6106555760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102f5565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610546565b81511561068c5781518083602001fd5b8060405162461bcd60e51b81526004016102f591906107a0565b80356001600160a01b03811681146106bd57600080fd5b919050565b6000602082840312156106d457600080fd5b610253826106a6565b6000806000604084860312156106f257600080fd5b6106fb846106a6565b9250602084013567ffffffffffffffff8082111561071857600080fd5b818601915086601f83011261072c57600080fd5b81358181111561073b57600080fd5b87602082850101111561074d57600080fd5b6020830194508093505050509250925092565b60005b8381101561077b578181015183820152602001610763565b50506000910152565b60008251610796818460208701610760565b9190910192915050565b60208152600082518060208401526107bf816040850160208701610760565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f44b4bd0f73d4a6c872717d3b99f5935a2080af0980894ed447890241a743cdb64736f6c63430008120033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000005": { + "contractName": "RegularERC20", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x526567756c617245524332300000000000000000000000000000000000000018", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x52474c0000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000000000000000003e8000", + "0xc4fd933fc30203af5f8bd19ad30e064c96642a369b9fc4288ea95569541f4034": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x967c153683def525608ec6efe0cac3319a9c97a6d4164fb43765c79311abffdc": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x55385a0c2ad17c21b4fe396be9b1f10f500e7eebad11fcd1afe36c68ee5fa4cd": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x478db7f3c43c550c1670aa0517a6d515b9e15f22ea28e4f99e8c5f8bcf58e406": "0x00000000000000000000000000000000000000000000000000000000000fa000" + }, + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069c565b60405180910390f35b6100df6100da366004610706565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610730565b61024c565b604051601281526020016100c3565b6100df610131366004610706565b610270565b6100f361014436600461076c565b6001600160a01b031660009081526020819052604090205490565b6100b6610292565b6100df610175366004610706565b6102a1565b6100df610188366004610706565b610321565b6100f361019b36600461078e565b61032f565b6060600380546101af906107c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c1565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b60003361024081858561035a565b60019150505b92915050565b60003361025a85828561047e565b6102658585856104f8565b506001949350505050565b600033610240818585610283838361032f565b61028d91906107fb565b61035a565b6060600480546101af906107c1565b600033816102af828661032f565b9050838110156103145760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610265828686840361035a565b6000336102408185856104f8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103bc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161030b565b6001600160a01b03821661041d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161030b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061048a848461032f565b905060001981146104f257818110156104e55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161030b565b6104f2848484840361035a565b50505050565b6001600160a01b03831661055c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161030b565b6001600160a01b0382166105be5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161030b565b6001600160a01b038316600090815260208190526040902054818110156106365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161030b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f2565b600060208083528351808285015260005b818110156106c9578581018301518582016040015282016106ad565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461070157600080fd5b919050565b6000806040838503121561071957600080fd5b610722836106ea565b946020939093013593505050565b60008060006060848603121561074557600080fd5b61074e846106ea565b925061075c602085016106ea565b9150604084013590509250925092565b60006020828403121561077e57600080fd5b610787826106ea565b9392505050565b600080604083850312156107a157600080fd5b6107aa836106ea565b91506107b8602084016106ea565b90509250929050565b600181811c908216806107d557607f821691505b6020821081036107f557634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561024657634e487b7160e01b600052601160045260246000fdfea26469706673582212209d989a5d58a4967fd0a1f669587c6ef0bd08d65b4de1b60d2f761d4c7661886164736f6c63430008120033", + "balance": "0x0" + } +} diff --git a/crates/chainspec/res/genesis/taiko/hekla.json b/crates/chainspec/res/genesis/taiko/hekla.json new file mode 100644 index 000000000000..2956e1438c29 --- /dev/null +++ b/crates/chainspec/res/genesis/taiko/hekla.json @@ -0,0 +1,217 @@ +{ + "0xd26010814C620F80A70cbD58cE353A10fa05491a": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0xd2b932FaCeb6FB733394e8445050daE6c025F9Be": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x0167009000000000000000000000000000000006": { + "contractName": "SharedAddressManagerImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x6080604052600436106100fa575f3560e01c80635c975abb116100925780638da5cb5b116100625780638da5cb5b14610299578063a86f9d9e146102b6578063d8f4648f146102d5578063e30c3978146102f4578063f2fde38b14610311575f80fd5b80635c975abb1461022d578063715018a61461025d57806379ba5097146102715780638456cb5914610285575f80fd5b80633eb6b8cf116100cd5780633eb6b8cf146101c55780633f4ba83a146101e45780634f1ef286146101f857806352d1902d1461020b575f80fd5b806319ab453c146100fe57806328f713cc1461011f5780633659cfe6146101875780633ab76e9f146101a6575b5f80fd5b348015610109575f80fd5b5061011d610118366004610f59565b610330565b005b34801561012a575f80fd5b5061016a610139366004610f90565b67ffffffffffffffff919091165f90815260fb6020908152604080832093835292905220546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610192575f80fd5b5061011d6101a1366004610f59565b610442565b3480156101b1575f80fd5b5060975461016a906001600160a01b031681565b3480156101d0575f80fd5b5061016a6101df366004610fc7565b61051f565b3480156101ef575f80fd5b5061011d610535565b61011d610206366004611014565b6105b4565b348015610216575f80fd5b5061021f61067f565b60405190815260200161017e565b348015610238575f80fd5b5061024d60c954610100900460ff1660021490565b604051901515815260200161017e565b348015610268575f80fd5b5061011d610730565b34801561027c575f80fd5b5061011d610741565b348015610290575f80fd5b5061011d6107b8565b3480156102a4575f80fd5b506033546001600160a01b031661016a565b3480156102c1575f80fd5b5061016a6102d03660046110d2565b610837565b3480156102e0575f80fd5b5061011d6102ef3660046110fc565b610843565b3480156102ff575f80fd5b506065546001600160a01b031661016a565b34801561031c575f80fd5b5061011d61032b366004610f59565b610921565b5f54610100900460ff161580801561034e57505f54600160ff909116105b806103675750303b15801561036757505f5460ff166001145b6103cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156103f0575f805461ff0019166101001790555b6103f982610992565b801561043e575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b037f000000000000000000000000016700900000000000000000000000000000000616300361048a5760405162461bcd60e51b81526004016103c690611139565b7f00000000000000000000000001670090000000000000000000000000000000066001600160a01b03166104d25f80516020611273833981519152546001600160a01b031690565b6001600160a01b0316146104f85760405162461bcd60e51b81526004016103c690611185565b610501816109c2565b604080515f8082526020820190925261051c918391906109ca565b50565b5f61052b848484610b39565b90505b9392505050565b61054960c954610100900460ff1660021490565b6105665760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a16105b2335f610c27565b565b6001600160a01b037f00000000000000000000000001670090000000000000000000000000000000061630036105fc5760405162461bcd60e51b81526004016103c690611139565b7f00000000000000000000000001670090000000000000000000000000000000066001600160a01b03166106445f80516020611273833981519152546001600160a01b031690565b6001600160a01b03161461066a5760405162461bcd60e51b81526004016103c690611185565b610673826109c2565b61043e828260016109ca565b5f306001600160a01b037f0000000000000000000000000167009000000000000000000000000000000006161461071e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103c6565b505f8051602061127383398151915290565b610738610c3f565b6105b25f610c99565b60655433906001600160a01b031681146107af5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016103c6565b61051c81610c99565b6107cc60c954610100900460ff1660021490565b156107ea5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200160405180910390a16105b2336001610c27565b5f61052e468484610b39565b61084b610c3f565b67ffffffffffffffff83165f90815260fb602090815260408083208584529091529020546001600160a01b0390811690821681900361089d576040516327b026fb60e21b815260040160405180910390fd5b67ffffffffffffffff84165f81815260fb6020908152604080832087845282529182902080546001600160a01b0319166001600160a01b038781169182179092558351908152908516918101919091528592917f500dcd607a98daece9bccc2511bf6032471252929de73caf507aae0e082f8453910160405180910390a350505050565b610929610c3f565b606580546001600160a01b0383166001600160a01b0319909116811790915561095a6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6109b06001600160a01b038216156109aa5781610c99565b33610c99565b5060c9805461ff001916610100179055565b61051c610c3f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610a02576109fd83610cb2565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610a5c575060408051601f3d908101601f19168201909252610a59918101906111d1565b60015b610abf5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016103c6565b5f805160206112738339815191528114610b2d5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016103c6565b506109fd838383610d4d565b6097545f906001600160a01b0316610b6457604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015610bbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdf91906111e8565b905081158015610bf657506001600160a01b038116155b1561052e57604051632b0d65db60e01b815267ffffffffffffffff85166004820152602481018490526044016103c6565b60405162580a9560e71b815260040160405180910390fd5b6033546001600160a01b031633146105b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c6565b606580546001600160a01b031916905561051c81610d77565b6001600160a01b0381163b610d1f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016103c6565b5f8051602061127383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610d5683610dc8565b5f82511180610d625750805b156109fd57610d718383610e07565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b610dd181610cb2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061052e83836040518060600160405280602781526020016112936027913960605f80856001600160a01b031685604051610e439190611225565b5f60405180830381855af49150503d805f8114610e7b576040519150601f19603f3d011682016040523d82523d5f602084013e610e80565b606091505b5091509150610e9186838387610e9b565b9695505050505050565b60608315610f095782515f03610f02576001600160a01b0385163b610f025760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103c6565b5081610f13565b610f138383610f1b565b949350505050565b815115610f2b5781518083602001fd5b8060405162461bcd60e51b81526004016103c69190611240565b6001600160a01b038116811461051c575f80fd5b5f60208284031215610f69575f80fd5b813561052e81610f45565b803567ffffffffffffffff81168114610f8b575f80fd5b919050565b5f8060408385031215610fa1575f80fd5b610faa83610f74565b946020939093013593505050565b80358015158114610f8b575f80fd5b5f805f60608486031215610fd9575f80fd5b610fe284610f74565b925060208401359150610ff760408501610fb8565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611025575f80fd5b823561103081610f45565b9150602083013567ffffffffffffffff8082111561104c575f80fd5b818501915085601f83011261105f575f80fd5b81358181111561107157611071611000565b604051601f8201601f19908116603f0116810190838211818310171561109957611099611000565b816040528281528860208487010111156110b1575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f80604083850312156110e3575f80fd5b823591506110f360208401610fb8565b90509250929050565b5f805f6060848603121561110e575f80fd5b61111784610f74565b925060208401359150604084013561112e81610f45565b809150509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f602082840312156111e1575f80fd5b5051919050565b5f602082840312156111f8575f80fd5b815161052e81610f45565b5f5b8381101561121d578181015183820152602001611205565b50505f910152565b5f8251611236818460208701611203565b9190910192915050565b602081525f825180602084015261125e816040850160208701611203565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203cf7c7909aa3a171d69bba3422ad3ee05166e507361c8bce5bed32f66ed9173764736f6c63430008180033", + "balance": "0x0" + }, + "0x1670090000000000000000000000000000000006": { + "contractName": "SharedAddressManager", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x06e004775639cdb0e38f2c8a0f80bf9e3f0bafc0587c4deccd476e1b0b083676": "0x0000000000000000000000001670090000000000000000000000000000000001", + "0xb8c522e28ba83112fa09f2f92b3b5b52a7c1f13cbb8f63d8646f6622fef3f813": "0x0000000000000000000000001670090000000000000000000000000000000002", + "0x82ae8f3253e7287d155c8294e95cd3dd52ed217ba1d329ff95e6d8ffa381f4e0": "0x0000000000000000000000001670090000000000000000000000000000000003", + "0xe4ea7533cbb05f4e190c159cb9fb81e8521df30826303aeb47c41cb35d1bba33": "0x0000000000000000000000001670090000000000000000000000000000000004", + "0x57e7be70ddd7eb8855d6252773a58a2cd3685df17defaa305b7a91e54f33be8c": "0x0000000000000000000000001670090000000000000000000000000000000005", + "0xf03fbf03cd2fb98817c4c19098b6c47f4474a83b719463ed4e6a6e8f3fddabad": "0x0000000000000000000000000167009000000000000000000000000000010096", + "0x5b1fda64ce34e2802383bf43f53729861587224c0d0f408a5711efaa5b3332e7": "0x0000000000000000000000000167009000000000000000000000000000010097", + "0x8b468f5c678e4e20924a892aeff9bd555f11fdf7569ebdbbf1f51f10ac196137": "0x0000000000000000000000000167009000000000000000000000000000010098", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167009000000000000000000000000000000006" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220ee2b34631d0aeafcbca8c09b3d006837becb1e761da7ef1dfde69d83e98a206164736f6c63430008180033", + "balance": "0x0" + }, + "0x0167009000000000000000000000000000000001": { + "contractName": "BridgeImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x6080604052600436106101e9575f3560e01c8063715018a611610108578063b916a0be1161009d578063d8beb5c31161006d578063d8beb5c314610611578063e30c397814610640578063eefbf17e1461065d578063f09a401614610694578063f2fde38b146106b3575f80fd5b8063b916a0be1461056b578063d0496d6a1461058a578063d1aaa5df146105d2578063d6ba38b2146105f2575f80fd5b80638da5cb5b116100d85780638da5cb5b146104d25780638e3881a9146104ef5780639939a2dc1461052d578063a86f9d9e1461054c575f80fd5b8063715018a61461046d5780637844845b1461048157806379ba5097146104aa5780638456cb59146104be575f80fd5b806348548f251161017e5780635c975abb1161014e5780635c975abb1461039f5780636be4eb55146103bf5780636c334e2e146103de5780636edbad04146103ff575f80fd5b806348548f251461033a5780634f1ef2861461035957806352d1902d1461036c57806357209f4814610380575f80fd5b80633ab76e9f116101b95780633ab76e9f146102955780633c6cf473146102cc5780633eb6b8cf146103075780633f4ba83a14610326575f80fd5b806316b205c1146101f4578063302ac39914610215578063324c058e146102475780633659cfe614610276575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b5061021361020e366004612d7d565b6106d2565b005b348015610220575f80fd5b5061023461022f366004613039565b610c3a565b6040519081526020015b60405180910390f35b348015610252575f80fd5b50610266610261366004612d7d565b610c69565b604051901515815260200161023e565b348015610281575f80fd5b5061021361029036600461306a565b610cde565b3480156102a0575f80fd5b506097546102b4906001600160a01b031681565b6040516001600160a01b03909116815260200161023e565b3480156102d7575f80fd5b506102fa6102e6366004613085565b60fc6020525f908152604090205460ff1681565b60405161023e91906130b0565b348015610312575f80fd5b506102b46103213660046130e3565b610dc4565b348015610331575f80fd5b50610213610dd0565b348015610345575f80fd5b50610213610354366004613120565b610e4f565b610213610367366004613193565b6110a7565b348015610377575f80fd5b50610234611176565b34801561038b575f80fd5b5061021361039a3660046131df565b611228565b3480156103aa575f80fd5b5061026660c954610100900460ff1660021490565b3480156103ca575f80fd5b506102666103d9366004612d7d565b611347565b6103f16103ec366004613216565b6113a8565b60405161023e9291906133b8565b34801561040a575f80fd5b50610446610419366004613085565b6101006020525f90815260409020546001600160401b03811690600160401b90046001600160a01b031682565b604080516001600160401b0390931683526001600160a01b0390911660208301520161023e565b348015610478575f80fd5b506102136116b3565b34801561048c575f80fd5b506104956116c4565b6040805192835260208301919091520161023e565b3480156104b5575f80fd5b50610213611702565b3480156104c9575f80fd5b50610213611779565b3480156104dd575f80fd5b506033546001600160a01b03166102b4565b3480156104fa575f80fd5b5061050e6105093660046133d0565b6117f8565b6040805192151583526001600160a01b0390911660208301520161023e565b348015610538575f80fd5b50610266610547366004613216565b611824565b348015610557575f80fd5b506102b46105663660046133e9565b6118f2565b348015610576575f80fd5b5061021361058536600461340c565b6118fe565b348015610595575f80fd5b5061059e611aaf565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b03169082015260600161023e565b3480156105dd575f80fd5b506102346105ec366004613085565b60031890565b3480156105fd575f80fd5b5061021361060c366004612d7d565b611b56565b34801561061c575f80fd5b5061026661062b36600461306a565b60ff60208190525f9182526040909120541681565b34801561064b575f80fd5b506065546001600160a01b03166102b4565b348015610668575f80fd5b5060fb5461067c906001600160801b031681565b6040516001600160801b03909116815260200161023e565b34801561069f575f80fd5b506102136106ae36600461344f565b611f7a565b3480156106be575f80fd5b506102136106cd36600461306a565b612088565b60026106e060c95460ff1690565b60ff16036107015760405163dfc60d8560e01b815260040160405180910390fd5b61070b60026120f9565b61071f60c954610100900460ff1660021490565b1561073d5760405163bae6e2a960e01b815260040160405180910390fd5b61074d60808401606085016133d0565b46816001600160401b03161461077657604051631c6c777560e31b815260040160405180910390fd5b5f61078361022f8661347b565b90505f8082815260fc602052604090205460ff1660048111156107a8576107a861309c565b146107c657604051630cfafbf960e01b815260040160405180910390fd5b5f6107e26d7369676e616c5f7365727669636560901b5f6118f2565b5f83815261010060205260409020549091506001600160401b031667fffffffffffffffe198101610826576040516329e5274f60e21b815260040160405180910390fd5b5f806108306116c4565b915091505f836001600160401b03165f0361091657610861858761085a60608e0160408f016133d0565b8c8c61210f565b61087e57604051635ea5ecc760e01b815260040160405180910390fd5b5042925060018215610916576040518060400160405280856001600160401b031681526020018b61014001355f146108b657336108c6565b6108c660c08d0160a08e0161306a565b6001600160a01b039081169091525f88815261010060209081526040909120835181549490920151909216600160401b026001600160e01b03199093166001600160401b03909116179190911790555b821580159061094357505f8681526101006020526040902054600160401b90046001600160a01b03163314155b1561094d57918101915b6109606001600160401b0385168461349a565b4210610bc6576101408a013515801561099a575061098460c08b0160a08c0161306a565b6001600160a01b0316336001600160a01b031614155b156109b8576040516372b6e1c360e11b815260040160405180910390fd5b5f8681526101006020526040812080546001600160e01b0319169055806109e560e08d0160c08e0161306a565b6001600160a01b03161480610a11575030610a0660e08d0160c08e0161306a565b6001600160a01b0316145b80610a3c57506001600160a01b038616610a3160e08d0160c08e0161306a565b6001600160a01b0316145b80610a72575060ff5f610a5560e08e0160c08f0161306a565b6001600160a01b0316815260208101919091526040015f205460ff165b15610a8e57506101008a0135610a89876002612197565b610af3565b5f610a9f60c08d0160a08e0161306a565b6001600160a01b0316336001600160a01b031614610ac2578b6101400135610ac4565b5a5b9050610ad18c89836122db565b15610ae657610ae1886002612197565b610af1565b610af1886001612197565b505b5f80610b066101008e0160e08f0161306a565b6001600160a01b031614610b2a57610b256101008d0160e08e0161306a565b610b3a565b610b3a60c08d0160a08e0161306a565b90506001600160a01b0381163303610b7357610b6e610b5e836101208f013561349a565b6001600160a01b0383169061243b565b610b95565b610b82336101208e013561243b565b610b956001600160a01b0382168361243b565b60405188907fe7d1e1f435233f7a187624ac11afaf32ee0da368cef8a5625be394412f619254905f90a25050610c24565b8015610c0b57857f3a7420670ebb84feae884388421d5f63bb1f9e073c54c8103e9e2ca7a98346e58b5f604051610bfe929190613664565b60405180910390a2610c24565b60405163714f083160e11b815260040160405180910390fd5b50505050505050610c3560016120f9565b505050565b5f81604051602001610c4c9190613687565b604051602081830303815290604052805190602001209050919050565b5f46610c7b60608601604087016133d0565b6001600160401b031614610c9057505f610cd7565b610cd4610cae6d7369676e616c5f7365727669636560901b5f6118f2565b610cbd6105ec61022f8861347b565b610ccd60808801606089016133d0565b868661210f565b90505b9392505050565b6001600160a01b037f0000000000000000000000000167009000000000000000000000000000000001163003610d2f5760405162461bcd60e51b8152600401610d26906136bd565b60405180910390fd5b7f00000000000000000000000001670090000000000000000000000000000000016001600160a01b0316610d775f80516020613943833981519152546001600160a01b031690565b6001600160a01b031614610d9d5760405162461bcd60e51b8152600401610d2690613709565b610da681612446565b604080515f80825260208201909252610dc19183919061244e565b50565b5f610cd48484846125b8565b610de460c954610100900460ff1660021490565b610e015760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a1610e4d335f6126a4565b565b6e6272696467655f7761746368646f6760881b610e746033546001600160a01b031690565b6001600160a01b0316336001600160a01b031614158015610eb15750610e9b8160016118f2565b6001600160a01b0316336001600160a01b031614155b15610ecf57604051630d85cccf60e11b815260040160405180910390fd5b5f5b838110156110a0575f858583818110610eec57610eec613755565b9050602002013590508315610ff1575f81815261010060205260408120546001600160401b03169003610f325760405163880b250b60e01b815260040160405180910390fd5b5f81815261010060205260409020546001600160401b031667fffffffffffffffe1901610f72576040516329e5274f60e21b815260040160405180910390fd5b5f8181526101006020526040808220805467ffffffffffffffff19166001600160401b03179055517fa3bf322f86f6b7b2fcb75744c1a9e22891ae257bbeb6b2a265627371e2651bcb91610fe491849160019192835290151560208301526001600160401b0316604082015260600190565b60405180910390a1611097565b5f81815261010060205260409020546001600160401b03908116146110295760405163640f938b60e11b815260040160405180910390fd5b5f81815261010060209081526040808320805467ffffffffffffffff1916426001600160401b03169081179091558151858152928301939093528101919091527fa3bf322f86f6b7b2fcb75744c1a9e22891ae257bbeb6b2a265627371e2651bcb9060600160405180910390a15b50600101610ed1565b5050505050565b6001600160a01b037f00000000000000000000000001670090000000000000000000000000000000011630036110ef5760405162461bcd60e51b8152600401610d26906136bd565b7f00000000000000000000000001670090000000000000000000000000000000016001600160a01b03166111375f80516020613943833981519152546001600160a01b031690565b6001600160a01b03161461115d5760405162461bcd60e51b8152600401610d2690613709565b61116682612446565b6111728282600161244e565b5050565b5f306001600160a01b037f000000000000000000000000016700900000000000000000000000000000000116146112155760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610d26565b505f805160206139438339815191525b90565b6e6272696467655f7761746368646f6760881b61124d6033546001600160a01b031690565b6001600160a01b0316336001600160a01b03161415801561128a57506112748160016118f2565b6001600160a01b0316336001600160a01b031614155b156112a857604051630d85cccf60e11b815260040160405180910390fd5b6001600160a01b0383165f90815260ff602081905260409091205483151591161515036112e8576040516319d893ad60e21b815260040160405180910390fd5b6001600160a01b0383165f81815260ff6020908152604091829020805460ff191686151590811790915591519182527f7113ce15c395851033544a97557341cdc71886964b54ff108a685d359ed4cdf8910160405180910390a2505050565b5f4661135960808601606087016133d0565b6001600160401b03161461136e57505f610cd7565b610cd461138c6d7369676e616c5f7365727669636560901b5f6118f2565b61139861022f8761347b565b610ccd60608801604089016133d0565b604080516101a0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820183905261014082018390526101608201819052610180820152600261141c60c95460ff1690565b60ff160361143d5760405163dfc60d8560e01b815260040160405180910390fd5b61144760026120f9565b61145b60c954610100900460ff1660021490565b156114795760405163bae6e2a960e01b815260040160405180910390fd5b5f61148a60a085016080860161306a565b6001600160a01b031614806114b657505f6114ab60c0850160a0860161306a565b6001600160a01b0316145b156114d457604051633c4f94dd60e11b815260040160405180910390fd5b5f6114e861050960808601606087016133d0565b5090508061150957604051631c6c777560e31b815260040160405180910390fd5b4661151a60808601606087016133d0565b6001600160401b03160361154157604051631c6c777560e31b815260040160405180910390fd5b5f61155661012086013561010087013561349a565b905034811461157857604051634ac2abdf60e11b815260040160405180910390fd5b6115818561347b565b60fb80549194506001600160801b03909116905f61159e83613769565b82546101009290920a6001600160801b03818102199093169183160217909155168352336020840152466001600160401b031660408401526115df83610c3a565b93506115fc6d7369676e616c5f7365727669636560901b5f6118f2565b6001600160a01b03166366ca2bc0856040518263ffffffff1660e01b815260040161162991815260200190565b6020604051808303815f875af1158015611645573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611669919061378e565b50837f9a4c6dce9e49d66f9d79b5f213b08c30c2bcef51424e23934a80f4865e1f70398460405161169a91906137a5565b60405180910390a250506116ae60016120f9565b915091565b6116bb61274f565b610e4d5f6127a9565b5f806116cf466127c2565b156116e05750610e10916101809150565b6116e9466127d6565b156116fa575061012c916101809150565b505f91829150565b60655433906001600160a01b031681146117705760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610d26565b610dc1816127a9565b61178d60c954610100900460ff1660021490565b156117ab5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200160405180910390a1610e4d3360016126a4565b5f8061180f836562726964676560d01b6001610dc4565b6001600160a01b038116151594909350915050565b5f4661183660608401604085016133d0565b6001600160401b03161461184b57505f919050565b6118666d7369676e616c5f7365727669636560901b5f6118f2565b6001600160a01b03166332676bc63061188161022f8661347b565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156118c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ec91906137b7565b92915050565b5f610cd74684846125b8565b600261190c60c95460ff1690565b60ff160361192d5760405163dfc60d8560e01b815260040160405180910390fd5b61193760026120f9565b61194b60c954610100900460ff1660021490565b156119695760405163bae6e2a960e01b815260040160405180910390fd5b61197960808301606084016133d0565b46816001600160401b0316146119a257604051631c6c777560e31b815260040160405180910390fd5b61014083013515806119b15750815b156119f7576119c660c0840160a0850161306a565b6001600160a01b0316336001600160a01b0316146119f7576040516372b6e1c360e11b815260040160405180910390fd5b5f611a0461022f8561347b565b905060015f82815260fc602052604090205460ff166004811115611a2a57611a2a61309c565b14611a4857604051636e10a9f360e01b815260040160405180910390fd5b611a5384825a6122db565b15611a6857611a63816002612197565b611a79565b8215611a7957611a79816003612197565b60405181907f72d1525c4df70aedf1877ec89702311c795a01c082917308a30fb40059da2cc7905f90a2505061117260016120f9565b604080516060810182525f8082526020820181905291810191909152611b26604080516060810182525f8082526020820181905291810191909152506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b80519091501580611b38575080515f19145b1561122557604051635ceed17360e01b815260040160405180910390fd5b6002611b6460c95460ff1690565b60ff1603611b855760405163dfc60d8560e01b815260040160405180910390fd5b611b8f60026120f9565b611ba360c954610100900460ff1660021490565b15611bc15760405163bae6e2a960e01b815260040160405180910390fd5b611bd160608401604085016133d0565b46816001600160401b031614611bfa57604051631c6c777560e31b815260040160405180910390fd5b5f611c0761022f8661347b565b90505f8082815260fc602052604090205460ff166004811115611c2c57611c2c61309c565b14611c4a57604051630cfafbf960e01b815260040160405180910390fd5b5f81815261010060205260409020546001600160401b031667fffffffffffffffe198101611c8b576040516329e5274f60e21b815260040160405180910390fd5b5f611c946116c4565b5090505f826001600160401b03165f03611dc0575f611cc46d7369676e616c5f7365727669636560901b5f6118f2565b604051631933b5e360e11b8152306004820152602481018790529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611d10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3491906137b7565b611d515760405163ab035ad560e01b815260040160405180910390fd5b60038518611d6a828261085a60808e0160608f016133d0565b611d875760405163f149234f60e01b815260040160405180910390fd5b429450600192508315611dbd575f86815261010060205260409020805467ffffffffffffffff19166001600160401b0387161790555b50505b611dd36001600160401b0384168361349a565b4210611f29575f8481526101006020908152604080832080546001600160e01b031916905560fc825291829020805460ff19166004179055611e3591631e37aef160e11b91611e26918c01908c0161306a565b6001600160a01b0316906127ed565b15611ed257611e548430611e4f60608c0160408d016133d0565b61287a565b611e646040890160208a0161306a565b6001600160a01b0316633c6f5de28961010001358a876040518463ffffffff1660e01b8152600401611e979291906137d2565b5f604051808303818588803b158015611eae575f80fd5b505af1158015611ec0573d5f803e3d5ffd5b5050505050611ecd6128cf565b611efa565b611efa610100890135611eeb60a08b0160808c0161306a565b6001600160a01b03169061243b565b60405184907fc6fbc1fa0145a394c9c414b2ae7bd634eb50dd888938bcd75692ae427b680fa2905f90a2611f6b565b8015610c0b57837f3a7420670ebb84feae884388421d5f63bb1f9e073c54c8103e9e2ca7a98346e5896001604051611f62929190613664565b60405180910390a25b5050505050610c3560016120f9565b5f54610100900460ff1615808015611f9857505f54600160ff909116105b80611fb15750303b158015611fb157505f5460ff166001145b6120145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d26565b5f805460ff191660011790558015612035575f805461ff0019166101001790555b61203f83836128f4565b8015610c35575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61209061274f565b606580546001600160a01b0383166001600160a01b031990911681179091556120c16033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9805460ff191660ff92909216919091179055565b5f856001600160a01b031663910af6ed85612134876562726964676560d01b5f610dc4565b8887876040518663ffffffff1660e01b81526004016121579594939291906137f3565b5f604051808303815f87803b15801561216e575f80fd5b505af192505050801561217f575060015b61218a57505f61218e565b5060015b95945050505050565b8060048111156121a9576121a961309c565b5f83815260fc602052604090205460ff1660048111156121cb576121cb61309c565b036121d4575050565b5f82815260fc60205260409020805482919060ff191660018360048111156121fe576121fe61309c565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b25756348260405161223391906130b0565b60405180910390a2600381600481111561224f5761224f61309c565b036111725761226f6d7369676e616c5f7365727669636560901b5f6118f2565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156122b7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c35919061378e565b5f815f036122fc576040516308c2ad5360e01b815260040160405180910390fd5b3061230d604086016020870161306a565b6001600160a01b03160361232357612323613829565b61234783612337604087016020880161306a565b611e4f60608801604089016133d0565b600461235761016086018661383d565b90501015801561238e5750637f07c94760e01b61237861016086018661383d565b6123819161387f565b6001600160e01b03191614155b80156123b757506123b76123a860e0860160c0870161306a565b6001600160a01b03163b151590565b156123c357505f612433565b612430610100850135836123db61016088018861383d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061241f9250505060e0890160c08a0161306a565b6001600160a01b0316929190612953565b90505b610cd76128cf565b61117282825a612990565b610dc161274f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561248157610c35836129d3565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156124db575060408051601f3d908101601f191682019092526124d89181019061378e565b60015b61253e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610d26565b5f8051602061394383398151915281146125ac5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610d26565b50610c35838383612a6e565b6097545f906001600160a01b03166125e357604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015612639573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061265d91906138af565b90508115801561267457506001600160a01b038116155b15610cd757604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610d26565b6033546001600160a01b03838116911614806126ea57506126d56b31b430b4b72fb830bab9b2b960a11b60016118f2565b6001600160a01b0316826001600160a01b0316145b156126f3575050565b80801561272d57506127186e6272696467655f7761746368646f6760881b60016118f2565b6001600160a01b0316826001600160a01b0316145b15612736575050565b604051630d85cccf60e11b815260040160405180910390fd5b6033546001600160a01b03163314610e4d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d26565b606580546001600160a01b0319169055610dc181612a98565b5f60018214806118ec57506118ec82612ae9565b5f617e2c82101580156118ec575050617e90101590565b5f6001600160a01b0383163b61280457505f6118ec565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa92505050801561286e575060408051601f3d908101601f1916820190925261286b918101906137b7565b60015b156118ec579392505050565b604080516060810182528481526001600160a01b03909316602084018190526001600160401b03909216920182905260fd9290925560fe8054600160a01b9092026001600160e01b0319909216909217179055565b6128d846612b2a565b156128e857610e4d5f808061287a565b610e4d5f19808061287a565b5f54610100900460ff1661291a5760405162461bcd60e51b8152600401610d26906138ca565b61292382612b49565b6001600160a01b03811661294a576040516375cabfef60e11b815260040160405180910390fd5b61117281612b79565b5f6001600160a01b03851661297b57604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b815f0361299c57505050565b6129b683838360405180602001604052805f815250612953565b610c3557604051634c67134d60e11b815260040160405180910390fd5b6001600160a01b0381163b612a405760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610d26565b5f8051602061394383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612a7783612be9565b5f82511180612a835750805b15610c3557612a928383612c28565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6002821480612af95750600482145b80612b045750600582145b80612b0f5750602a82145b80612b1b575061426882145b806118ec57505062aa36a71490565b5f6001821480612b1b57506142688214806118ec57505062aa36a71490565b612b676001600160a01b03821615612b6157816127a9565b336127a9565b5060c9805461ff001916610100179055565b5f54610100900460ff16612b9f5760405162461bcd60e51b8152600401610d26906138ca565b6001600160401b03461115612bc75760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b612bf2816129d3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610cd783836040518060600160405280602781526020016139636027913960605f80856001600160a01b031685604051612c649190613915565b5f60405180830381855af49150503d805f8114612c9c576040519150601f19603f3d011682016040523d82523d5f602084013e612ca1565b606091505b5091509150612cb286838387612cbc565b9695505050505050565b60608315612d2a5782515f03612d23576001600160a01b0385163b612d235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610d26565b5081612d34565b612d348383612d3c565b949350505050565b815115612d4c5781518083602001fd5b8060405162461bcd60e51b8152600401610d269190613930565b5f6101a08284031215612d77575f80fd5b50919050565b5f805f60408486031215612d8f575f80fd5b83356001600160401b0380821115612da5575f80fd5b612db187838801612d66565b94506020860135915080821115612dc6575f80fd5b818601915086601f830112612dd9575f80fd5b813581811115612de7575f80fd5b876020828501011115612df8575f80fd5b6020830194508093505050509250925092565b634e487b7160e01b5f52604160045260245ffd5b6040516101a081016001600160401b0381118282101715612e4257612e42612e0b565b60405290565b80356001600160801b0381168114612e5e575f80fd5b919050565b6001600160a01b0381168114610dc1575f80fd5b8035612e5e81612e63565b80356001600160401b0381168114612e5e575f80fd5b5f82601f830112612ea7575f80fd5b81356001600160401b0380821115612ec157612ec1612e0b565b604051601f8301601f19908116603f01168101908282118183101715612ee957612ee9612e0b565b81604052838152866020858801011115612f01575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f6101a08284031215612f31575f80fd5b612f39612e1f565b9050612f4482612e48565b8152612f5260208301612e77565b6020820152612f6360408301612e82565b6040820152612f7460608301612e82565b6060820152612f8560808301612e77565b6080820152612f9660a08301612e77565b60a0820152612fa760c08301612e77565b60c0820152612fb860e08301612e77565b60e0820152610100828101359082015261012080830135908201526101408083013590820152610160808301356001600160401b0380821115612ff9575f80fd5b61300586838701612e98565b83850152610180925082850135915080821115613020575f80fd5b5061302d85828601612e98565b82840152505092915050565b5f60208284031215613049575f80fd5b81356001600160401b0381111561305e575f80fd5b612d3484828501612f20565b5f6020828403121561307a575f80fd5b8135610cd781612e63565b5f60208284031215613095575f80fd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b60208101600583106130d057634e487b7160e01b5f52602160045260245ffd5b91905290565b8015158114610dc1575f80fd5b5f805f606084860312156130f5575f80fd5b6130fe84612e82565b9250602084013591506040840135613115816130d6565b809150509250925092565b5f805f60408486031215613132575f80fd5b83356001600160401b0380821115613148575f80fd5b818601915086601f83011261315b575f80fd5b813581811115613169575f80fd5b8760208260051b850101111561317d575f80fd5b60209283019550935050840135613115816130d6565b5f80604083850312156131a4575f80fd5b82356131af81612e63565b915060208301356001600160401b038111156131c9575f80fd5b6131d585828601612e98565b9150509250929050565b5f80604083850312156131f0575f80fd5b82356131fb81612e63565b9150602083013561320b816130d6565b809150509250929050565b5f60208284031215613226575f80fd5b81356001600160401b0381111561323b575f80fd5b612d3484828501612d66565b5f5b83811015613261578181015183820152602001613249565b50505f910152565b5f8151808452613280816020860160208601613247565b601f01601f19169290920160200192915050565b80516001600160801b031682525f6101a060208301516132bf60208601826001600160a01b03169052565b5060408301516132da60408601826001600160401b03169052565b5060608301516132f560608601826001600160401b03169052565b50608083015161331060808601826001600160a01b03169052565b5060a083015161332b60a08601826001600160a01b03169052565b5060c083015161334660c08601826001600160a01b03169052565b5060e083015161336160e08601826001600160a01b03169052565b506101008381015190850152610120808401519085015261014080840151908501526101608084015181860183905261339c83870182613269565b925050506101808084015185830382870152612cb28382613269565b828152604060208201525f610cd46040830184613294565b5f602082840312156133e0575f80fd5b610cd782612e82565b5f80604083850312156133fa575f80fd5b82359150602083013561320b816130d6565b5f806040838503121561341d575f80fd5b82356001600160401b03811115613432575f80fd5b61343e85828601612d66565b925050602083013561320b816130d6565b5f8060408385031215613460575f80fd5b823561346b81612e63565b9150602083013561320b81612e63565b5f6118ec3683612f20565b634e487b7160e01b5f52601160045260245ffd5b808201808211156118ec576118ec613486565b5f808335601e198436030181126134c2575f80fd5b83016020810192503590506001600160401b038111156134e0575f80fd5b8036038213156134ee575f80fd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f6101a061353b8461352e85612e48565b6001600160801b03169052565b61354760208401612e77565b6001600160a01b0316602085015261356160408401612e82565b6001600160401b0316604085015261357b60608401612e82565b6001600160401b0316606085015261359560808401612e77565b6001600160a01b031660808501526135af60a08401612e77565b6001600160a01b031660a08501526135c960c08401612e77565b6001600160a01b031660c08501526135e360e08401612e77565b6001600160a01b031660e0850152610100838101359085015261012080840135908501526101408084013590850152610160613621818501856134ad565b838388015261363384880182846134f5565b9350505050610180613647818501856134ad565b868403838801526136598482846134f5565b979650505050505050565b604081525f613676604083018561351d565b905082151560208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f610cd76080830184613294565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b5f6001600160801b0380831681810361378457613784613486565b6001019392505050565b5f6020828403121561379e575f80fd5b5051919050565b602081525f610cd76020830184613294565b5f602082840312156137c7575f80fd5b8151610cd7816130d6565b604081525f6137e4604083018561351d565b90508260208301529392505050565b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f6136596080830184866134f5565b634e487b7160e01b5f52600160045260245ffd5b5f808335601e19843603018112613852575f80fd5b8301803591506001600160401b0382111561386b575f80fd5b6020019150368190038213156134ee575f80fd5b6001600160e01b031981358181169160048510156138a75780818660040360031b1b83161692505b505092915050565b5f602082840312156138bf575f80fd5b8151610cd781612e63565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613926818460208701613247565b9190910192915050565b602081525f610cd7602083018461326956fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220fd8171596afd791a7977d46b3ef76e3b99d868dfc289ca5278123d358ae79dfd64736f6c63430008180033", + "balance": "0x0" + }, + "0x1670090000000000000000000000000000000001": { + "contractName": "Bridge", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670090000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167009000000000000000000000000000000001" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220ee2b34631d0aeafcbca8c09b3d006837becb1e761da7ef1dfde69d83e98a206164736f6c63430008180033", + "balance": "0x033b2dcd9a1ae301c8000000" + }, + "0x0167009000000000000000000000000000000002": { + "contractName": "ERC20VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x60806040526004361062000163575f3560e01c8063715018a611620000c2578063a86f9d9e1162000076578063a86f9d9e14620003f8578063caec3e4e146200041c578063e30c3978146200044f578063f09a4016146200046e578063f2fde38b1462000492578063fa233d0c14620004b6575f80fd5b8063715018a6146200034657806379ba5097146200035d5780637f07c94714620003745780638456cb59146200038b5780638da5cb5b14620003a25780639aa8605c14620003c1575f80fd5b80633eb6b8cf116200011a5780633eb6b8cf14620002775780633f4ba83a146200029b5780634f1ef28614620002b257806352d1902d14620002c95780635c975abb14620002e057806367090ccf1462000302575f80fd5b806301ffc9a7146200016757806306fdde0314620001b05780630ecd8be914620001dc5780633659cfe614620002195780633ab76e9f146200023f5780633c6f5de21462000260575b5f80fd5b34801562000173575f80fd5b506200019b6200018536600462002f2f565b6001600160e01b031916631e37aef160e11b1490565b60405190151581526020015b60405180910390f35b348015620001bc575f80fd5b506a195c98cc8c17dd985d5b1d60aa1b5b604051908152602001620001a7565b348015620001e8575f80fd5b5062000200620001fa36600462002f6d565b620004dc565b6040516001600160a01b039091168152602001620001a7565b34801562000225575f80fd5b506200023d6200023736600462002fc4565b62000bb6565b005b3480156200024b575f80fd5b5060975462000200906001600160a01b031681565b6200023d6200027136600462002fe2565b62000ca8565b34801562000283575f80fd5b5062000200620002953660046200304e565b62000e53565b348015620002a7575f80fd5b506200023d62000e6b565b6200023d620002c3366004620031ab565b62000eee565b348015620002d5575f80fd5b50620001cd62000fc5565b348015620002ec575f80fd5b506200019b60c954610100900460ff1660021490565b3480156200030e575f80fd5b506200020062000320366004620031fd565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b34801562000352575f80fd5b506200023d6200107a565b34801562000369575f80fd5b506200023d6200108f565b6200023d6200038536600462003223565b6200110a565b34801562000397575f80fd5b506200023d620012a0565b348015620003ae575f80fd5b506033546001600160a01b031662000200565b348015620003cd575f80fd5b50620003e5620003df36600462002fc4565b62001323565b604051620001a7959493929190620032e4565b34801562000404575f80fd5b50620002006200041636600462003341565b62001488565b34801562000428575f80fd5b506200019b6200043a36600462002fc4565b61012f6020525f908152604090205460ff1681565b3480156200045b575f80fd5b506065546001600160a01b031662000200565b3480156200047a575f80fd5b506200023d6200048c36600462003367565b62001496565b3480156200049e575f80fd5b506200023d620004b036600462002fc4565b620015ae565b620004cd620004c736600462003386565b62001622565b604051620001a79190620033c0565b5f6002620004ec60c95460ff1690565b60ff16036200050e5760405163dfc60d8560e01b815260040160405180910390fd5b6200051a600262001aaf565b6200052f60c954610100900460ff1660021490565b156200054e5760405163bae6e2a960e01b815260040160405180910390fd5b6200055862001ac5565b6001600160a01b03821615806200058f57506001600160a01b038281165f90815261012d6020526040902054600160401b90041615155b15620005ae5760405163dc63f98760e01b815260040160405180910390fd5b6001600160a01b0382165f90815261012f602052604090205460ff1615620005e9576040516375c42fc160e01b815260040160405180910390fd5b6033546001600160a01b03166001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200063b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006619190620034f3565b6001600160a01b031614620006895760405163c0507c1760e01b815260040160405180910390fd5b61012e5f6200069c602086018662003511565b6001600160401b031681526020019081526020015f205f846020016020810190620006c8919062002fc4565b6001600160a01b03908116825260208201929092526040015f2054169050801562000a53576001600160a01b038181165f90815261012d60209081526040808320815160a08101835281546001600160401b0381168252600160401b810490961693810193909352600160e01b90940460ff1690820152600183018054929391926060840191906200075a906200352f565b80601f016020809104026020016040519081016040528092919081815260200182805462000788906200352f565b8015620007d75780601f10620007ad57610100808354040283529160200191620007d7565b820191905f5260205f20905b815481529060010190602001808311620007b957829003601f168201915b50505050508152602001600282018054620007f2906200352f565b80601f016020809104026020016040519081016040528092919081815260200182805462000820906200352f565b80156200086f5780601f1062000845576101008083540402835291602001916200086f565b820191905f5260205f20905b8154815290600101906020018083116200085157829003601f168201915b50505050508152505090508360400160208101906200088f919062003585565b60ff16816040015160ff16141580620008d95750620008b26060850185620035a3565b604051620008c2929190620035ef565b604051809103902081606001518051906020012014155b80620009165750620008ef6080850185620035a3565b604051620008ff929190620035ef565b604051809103902081608001518051906020012014155b156200093557604051632f9d1d7b60e11b815260040160405180910390fd5b6001600160a01b0382165f90815261012d6020526040812080546001600160e81b0319168155906200096b600183018262002ecf565b6200097a600283015f62002ecf565b50506001600160a01b038281165f81815261012f6020526040808220805460ff191660011790555163b8f2e0c560e01b8152928616600484015260248301529063b8f2e0c5906044015f604051808303815f87803b158015620009db575f80fd5b505af1158015620009ee573d5f803e3d5ffd5b505060405163b8f2e0c560e01b81526001600160a01b038581166004830152600160248301528616925063b8f2e0c591506044015f604051808303815f87803b15801562000a3a575f80fd5b505af115801562000a4d573d5f803e3d5ffd5b50505050505b6001600160a01b0382165f90815261012d60205260409020839062000a79828262003713565b5082905061012e5f62000a90602087018762003511565b6001600160401b031681526020019081526020015f205f85602001602081019062000abc919062002fc4565b6001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082602001602081019062000b13919062002fc4565b6001600160a01b031662000b2b602085018562003511565b6001600160401b03167f031d68e1805917560c34a5f55a7dd91bef98f911190ed02cdbb53caedae6c39d838562000b666060890189620035a3565b62000b7560808b018b620035a3565b62000b8760608d0160408e0162003585565b60405162000b9c979695949392919062003810565b60405180910390a362000bb0600162001aaf565b92915050565b6001600160a01b037f000000000000000000000000016700900000000000000000000000000000000216300362000c0a5760405162461bcd60e51b815260040162000c01906200386b565b60405180910390fd5b7f00000000000000000000000001670090000000000000000000000000000000026001600160a01b031662000c545f80516020620045de833981519152546001600160a01b031690565b6001600160a01b03161462000c7d5760405162461bcd60e51b815260040162000c0190620038b7565b62000c888162001b21565b604080515f8082526020820190925262000ca59183919062001b2b565b50565b600262000cb760c95460ff1690565b60ff160362000cd95760405163dfc60d8560e01b815260040160405180910390fd5b62000ce5600262001aaf565b62000cfa60c954610100900460ff1660021490565b1562000d195760405163bae6e2a960e01b815260040160405180910390fd5b62000d2362001ca2565b505f62000d35610160840184620035a3565b62000d4591600490829062003903565b81019062000d5491906200392c565b90505f808280602001905181019062000d6e9190620039c4565b9350505091505f62000d968387608001602081019062000d8f919062002fc4565b8462001d99565b905062000dc461010087013562000db460a0890160808a0162002fc4565b6001600160a01b03169062001e45565b62000dd660a087016080880162002fc4565b6001600160a01b0316857f3dea0f5955b148debf6212261e03bd80eaf8534bee43780452d16637dcc22dd58560200151848660405162000e37939291906001600160a01b039384168152919092166020820152604081019190915260600190565b60405180910390a35050505062000e4f600162001aaf565b5050565b5f62000e6184848462001e52565b90505b9392505050565b62000e8060c954610100900460ff1660021490565b62000e9e5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a162000eec335f62001f45565b565b6001600160a01b037f000000000000000000000000016700900000000000000000000000000000000216300362000f395760405162461bcd60e51b815260040162000c01906200386b565b7f00000000000000000000000001670090000000000000000000000000000000026001600160a01b031662000f835f80516020620045de833981519152546001600160a01b031690565b6001600160a01b03161462000fac5760405162461bcd60e51b815260040162000c0190620038b7565b62000fb78262001b21565b62000e4f8282600162001b2b565b5f306001600160a01b037f00000000000000000000000001670090000000000000000000000000000000021614620010665760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000c01565b505f80516020620045de8339815191525b90565b6200108462001ac5565b62000eec5f62001f4f565b60655433906001600160a01b03168114620010ff5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840162000c01565b62000ca58162001f4f565b60026200111960c95460ff1690565b60ff16036200113b5760405163dfc60d8560e01b815260040160405180910390fd5b62001147600262001aaf565b6200115c60c954610100900460ff1660021490565b156200117b5760405163bae6e2a960e01b815260040160405180910390fd5b5f8080806200118d8587018762003ad0565b93509350935093505f620011a062001f6a565b90506001600160a01b0383161580620011c157506001600160a01b03831630145b15620011e05760405163def9481360e01b815260040160405180910390fd5b5f620011ee86858562001d99565b9050620012056001600160a01b0385163462001e45565b836001600160a01b0316856001600160a01b0316835f01517f75a051823424fc80e92556c41cb0ad977ae1dcb09c68a9c38acab86b11a69f8985604001518a6020015186896040516200128694939291906001600160401b039490941684526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a450505050505062000e4f600162001aaf565b620012b560c954610100900460ff1660021490565b15620012d45760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200160405180910390a162000eec33600162001f45565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b84046001600160a01b031693600160e01b900460ff169290916200136d906200352f565b80601f01602080910402602001604051908101604052809291908181526020018280546200139b906200352f565b8015620013ea5780601f10620013c057610100808354040283529160200191620013ea565b820191905f5260205f20905b815481529060010190602001808311620013cc57829003601f168201915b50505050509080600201805462001401906200352f565b80601f01602080910402602001604051908101604052809291908181526020018280546200142f906200352f565b80156200147e5780601f1062001454576101008083540402835291602001916200147e565b820191905f5260205f20905b8154815290600101906020018083116200146057829003601f168201915b5050505050905085565b5f62000e6446848462001e52565b5f54610100900460ff1615808015620014b557505f54600160ff909116105b80620014d05750303b158015620014d057505f5460ff166001145b620015355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000c01565b5f805460ff19166001179055801562001557575f805461ff0019166101001790555b6200156383836200208f565b8015620015a9575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b620015b862001ac5565b606580546001600160a01b0383166001600160a01b03199091168117909155620015ea6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b604080516101a0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820192909252610160810182905261018081019190915260026200169b60c95460ff1690565b60ff1603620016bd5760405163dfc60d8560e01b815260040160405180910390fd5b620016c9600262001aaf565b620016de60c954610100900460ff1660021490565b15620016fd5760405163bae6e2a960e01b815260040160405180910390fd5b81608001355f036200172257604051634299323b60e11b815260040160405180910390fd5b5f62001735608084016060850162002fc4565b6001600160a01b0316036200175d576040516303f8a7d360e01b815260040160405180910390fd5b61012f5f62001773608085016060860162002fc4565b6001600160a01b0316815260208101919091526040015f205460ff1615620017ae576040516375c42fc160e01b815260040160405180910390fd5b5f8080620017e533620017c8608088016060890162002fc4565b620017da6060890160408a0162002fc4565b8860800135620020f6565b604080516101a0810182525f808252602080830182905292820181905294975092955090935060608201906200181e9089018962003511565b6001600160401b03168152602001336001600160a01b031681526020015f6001600160a01b03168860200160208101906200185a919062002fc4565b6001600160a01b03160362001870573362001882565b620018826040890160208a0162002fc4565b6001600160a01b03168152602090810190620018bd90620018a6908a018a62003511565b6a195c98cc8c17dd985d5b1d60aa1b5b5f62000e53565b6001600160a01b03168152602001620018de610100890160e08a0162002fc4565b6001600160a01b03168152602001620018fc60c08901353462003bcf565b815260c0880135602082015260a08801356040820152606081018690526080016200192c610100890189620035a3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920182905250939094525092935091506200197c90506562726964676560d01b8262001488565b6001600160a01b0316636c334e2e34846040518363ffffffff1660e01b8152600401620019aa9190620033c0565b5f6040518083038185885af1158015620019c6573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f19168201604052620019f0919081019062003c06565b9650905062001a06606088016040890162002fc4565b60808701516001600160a01b039182169116827feb8a69f21b7a981e25f90d9f1e2ab7fa5bdbfddbc0ac160344145fc5caa6ddd262001a4960208c018c62003511565b602089015162001a6060808e0160608f0162002fc4565b604080516001600160401b0390941684526001600160a01b0392831660208501529116908201526060810188905260800160405180910390a4505050505062001aaa600162001aaf565b919050565b60c9805460ff191660ff92909216919091179055565b6033546001600160a01b0316331462000eec5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000c01565b62000ca562001ac5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001b6157620015a9836200262d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001bbe575060408051601f3d908101601f1916820190925262001bbb9181019062003d65565b60015b62001c235760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000c01565b5f80516020620045de833981519152811462001c945760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000c01565b50620015a9838383620026cb565b604080516060810182525f808252602082018190529181019190915262001cd36562726964676560d01b5f62001488565b6001600160a01b0316336001600160a01b03161462001d0557604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001d42573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001d68919062003d7d565b60208101519091506001600160a01b031633146200107757604051632583296b60e01b815260040160405180910390fd5b5f46845f01516001600160401b03160362001dd05750602083015162001dca6001600160a01b0382168484620026fb565b62000e64565b62001ddb8462002760565b6040516340c10f1960e01b81526001600160a01b03858116600483015260248201859052919250908216906340c10f19906044015f604051808303815f87803b15801562001e27575f80fd5b505af115801562001e3a573d5f803e3d5ffd5b505050509392505050565b62000e4f82825a620027a5565b6097545f906001600160a01b031662001e7e57604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa15801562001ed5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001efb9190620034f3565b90508115801562001f1357506001600160a01b038116155b1562000e6457604051632b0d65db60e01b81526001600160401b03851660048201526024810184905260440162000c01565b62000e4f62001ac5565b606580546001600160a01b031916905562000ca581620027ec565b604080516060810182525f808252602082018190529181019190915262001f9b6562726964676560d01b5f62001488565b6001600160a01b0316336001600160a01b03161462001fcd57604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156200200a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002030919062003d7d565b90505f620020528260400151620018b66a195c98cc8c17dd985d5b1d60aa1b90565b9050806001600160a01b031682602001516001600160a01b0316146200208b57604051632583296b60e01b815260040160405180910390fd5b5090565b5f54610100900460ff16620020b85760405162461bcd60e51b815260040162000c019062003deb565b620020c3826200283d565b6001600160a01b038116620020eb576040516375cabfef60e11b815260040160405180910390fd5b62000e4f8162002871565b6040805160a0810182525f80825260208083018290528284018290526060808401819052608084018190526001600160a01b03888116845261012d90925293822054600160401b900416156200233e576001600160a01b038681165f90815261012d6020908152604091829020825160a08101845281546001600160401b0381168252600160401b810490951692810192909252600160e01b90930460ff1691810191909152600182018054919291606084019190620021b6906200352f565b80601f0160208091040260200160405190810160405280929190818152602001828054620021e4906200352f565b8015620022335780601f10620022095761010080835404028352916020019162002233565b820191905f5260205f20905b8154815290600101906020018083116200221557829003601f168201915b505050505081526020016002820180546200224e906200352f565b80601f01602080910402602001604051908101604052809291908181526020018280546200227c906200352f565b8015620022cb5780601f10620022a157610100808354040283529160200191620022cb565b820191905f5260205f20905b815481529060010190602001808311620022ad57829003601f168201915b505050919092525050604051632770a7eb60e21b815233600482015260248101879052919350506001600160a01b03871690639dc29fac906044015f604051808303815f87803b1580156200231e575f80fd5b505af115801562002331573d5f803e3d5ffd5b50505050839050620025ad565b5f8690506040518060a00160405280466001600160401b03168152602001886001600160a01b03168152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620023a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620023ce919062003e36565b60ff168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa15801562002412573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200243b919081019062003e54565b8152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200247c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620024a5919081019062003e54565b90526040516370a0823160e01b815230600482015290935087905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015620024f1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002517919062003d65565b9050620025306001600160a01b03831633308a620028e5565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa15801562002575573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200259b919062003d65565b620025a7919062003bcf565b93505050505b306001600160a01b0316637f07c94783898885604051602001620025d5949392919062003e89565b60408051601f1981840301815290829052620025f49160240162003f2e565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505092509450945094915050565b6001600160a01b0381163b6200269c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000c01565b5f80516020620045de83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b620026d6836200291f565b5f82511180620026e35750805b15620015a957620026f5838362002960565b50505050565b6040516001600160a01b038316602482015260448101829052620015a990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262002988565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b039081168552925290912054168062001aaa5762000bb08262002a62565b815f03620027b257505050565b620027ce83838360405180602001604052805f81525062002c74565b620015a957604051634c67134d60e11b815260040160405180910390fd5b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6200285f6001600160a01b0382161562002858578162001f4f565b3362001f4f565b5060c9805461ff001916610100179055565b5f54610100900460ff166200289a5760405162461bcd60e51b815260040162000c019062003deb565b6001600160401b03461115620028c35760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b6040516001600160a01b0380851660248301528316604482015260648101829052620026f59085906323b872dd60e01b9060840162002728565b6200292a816200262d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000e648383604051806060016040528060278152602001620045fe6027913962002cb2565b5f620029de826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031662002d2c9092919063ffffffff16565b905080515f148062002a0157508080602001905181019062002a01919062003f42565b620015a95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000c01565b5f8062002a776033546001600160a01b031690565b60975460208501518551604080880151606089015160808a0151925162002aaf97966001600160a01b03169594939060240162003f60565b60408051601f198184030181529190526020810180516001600160e01b031663bb86ef9360e01b179052905062002af76c0627269646765645f657263323609c1b5f62001488565b8160405162002b069062002f0b565b62002b1392919062003fcf565b604051809103905ff08015801562002b2d573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d602090815260409182902087518154928901519389015160ff16600160e01b0260ff60e01b1994909516600160401b026001600160e01b03199093166001600160401b0390911617919091179190911691909117815560608501519193508491600182019062002bb1908262003ff4565b506080820151600282019062002bc8908262003ff4565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b0319168885169081179091559151885160608a015160808b0151848c01519451959850929095169516937fb6b427556e8cb0ebf9175da4bc48c64c4f56e44cfaf8c3ab5ebf8e2ea13090799362002c669391929190620040c0565b60405180910390a450919050565b5f6001600160a01b03851662002c9d57604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b60605f80856001600160a01b03168560405162002cd09190620040fc565b5f60405180830381855af49150503d805f811462002d0a576040519150601f19603f3d011682016040523d82523d5f602084013e62002d0f565b606091505b509150915062002d228683838762002d3c565b9695505050505050565b606062000e6184845f8562002dc3565b6060831562002daf5782515f0362002da7576001600160a01b0385163b62002da75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000c01565b508162002dbb565b62002dbb838362002ea2565b949350505050565b60608247101562002e265760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000c01565b5f80866001600160a01b0316858760405162002e439190620040fc565b5f6040518083038185875af1925050503d805f811462002e7f576040519150601f19603f3d011682016040523d82523d5f602084013e62002e84565b606091505b509150915062002e978783838762002d3c565b979650505050505050565b81511562002eb35781518083602001fd5b8060405162461bcd60e51b815260040162000c01919062003f2e565b50805462002edd906200352f565b5f825580601f1062002eed575050565b601f0160209004905f5260205f209081019062000ca5919062002f19565b6104c4806200411a83390190565b5b808211156200208b575f815560010162002f1a565b5f6020828403121562002f40575f80fd5b81356001600160e01b03198116811462000e64575f80fd5b6001600160a01b038116811462000ca5575f80fd5b5f806040838503121562002f7f575f80fd5b82356001600160401b0381111562002f95575f80fd5b830160a0818603121562002fa7575f80fd5b9150602083013562002fb98162002f58565b809150509250929050565b5f6020828403121562002fd5575f80fd5b813562000e648162002f58565b5f806040838503121562002ff4575f80fd5b82356001600160401b038111156200300a575f80fd5b83016101a081860312156200301d575f80fd5b946020939093013593505050565b6001600160401b038116811462000ca5575f80fd5b801515811462000ca5575f80fd5b5f805f6060848603121562003061575f80fd5b83356200306e816200302b565b9250602084013591506040840135620030878162003040565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b0381118282101715620030cb57620030cb62003092565b60405290565b6040516101a081016001600160401b0381118282101715620030cb57620030cb62003092565b604051601f8201601f191681016001600160401b038111828210171562003122576200312262003092565b604052919050565b5f6001600160401b0382111562003145576200314562003092565b50601f01601f191660200190565b5f82601f83011262003163575f80fd5b81356200317a62003174826200312a565b620030f7565b8181528460208386010111156200318f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215620031bd575f80fd5b8235620031ca8162002f58565b915060208301356001600160401b03811115620031e5575f80fd5b620031f38582860162003153565b9150509250929050565b5f80604083850312156200320f575f80fd5b82359150602083013562002fb98162002f58565b5f806020838503121562003235575f80fd5b82356001600160401b03808211156200324c575f80fd5b818501915085601f83011262003260575f80fd5b8135818111156200326f575f80fd5b86602082850101111562003281575f80fd5b60209290920196919550909350505050565b5f5b83811015620032af57818101518382015260200162003295565b50505f910152565b5f8151808452620032d081602086016020860162003293565b601f01601f19169290920160200192915050565b6001600160401b03861681526001600160a01b038516602082015260ff8416604082015260a0606082018190525f906200332190830185620032b7565b8281036080840152620033358185620032b7565b98975050505050505050565b5f806040838503121562003353575f80fd5b82359150602083013562002fb98162003040565b5f806040838503121562003379575f80fd5b823562002fa78162002f58565b5f6020828403121562003397575f80fd5b81356001600160401b03811115620033ad575f80fd5b8201610120818503121562000e64575f80fd5b60208152620033db6020820183516001600160801b03169052565b5f6020830151620033f760408401826001600160a01b03169052565b5060408301516001600160401b03811660608401525060608301516001600160401b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e08301516101006200347e818501836001600160a01b03169052565b8401516101208481019190915284015161014080850191909152840151610160808501919091528401516101a061018080860182905291925090620034c86101c0860184620032b7565b90860151858203601f19018387015290925062002d228382620032b7565b805162001aaa8162002f58565b5f6020828403121562003504575f80fd5b815162000e648162002f58565b5f6020828403121562003522575f80fd5b813562000e64816200302b565b600181811c908216806200354457607f821691505b6020821081036200356357634e487b7160e01b5f52602260045260245ffd5b50919050565b60ff8116811462000ca5575f80fd5b803562001aaa8162003569565b5f6020828403121562003596575f80fd5b813562000e648162003569565b5f808335601e19843603018112620035b9575f80fd5b8301803591506001600160401b03821115620035d3575f80fd5b602001915036819003821315620035e8575f80fd5b9250929050565b818382375f9101908152919050565b601f821115620015a957805f5260205f20601f840160051c81016020851015620036255750805b601f840160051c820191505b8181101562003646575f815560010162003631565b5050505050565b6001600160401b0383111562003667576200366762003092565b6200367f836200367883546200352f565b83620035fe565b5f601f841160018114620036b3575f85156200369b5750838201355b5f19600387901b1c1916600186901b17835562003646565b5f83815260208120601f198716915b82811015620036e45786850135825560209485019460019092019101620036c2565b508682101562003701575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b813562003720816200302b565b6001600160401b03811690508154816001600160401b0319821617835560208401356200374d8162002f58565b68010000000000000000600160e01b03604091821b166001600160e01b0319831684178117855590850135620037838162003569565b60ff60e01b8160e01b1660ff60e01b19851662ffffff60e81b851617831717855550505050620037b76060830183620035a3565b620037c78183600186016200364d565b5050620037d86080830183620035a3565b620026f58183600286016200364d565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b0388811682528716602082015260a0604082018190525f906200383e9083018789620037e8565b828103606084015262003853818688620037e8565b91505060ff8316608083015298975050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f808585111562003912575f80fd5b838611156200391f575f80fd5b5050820193919092039150565b5f602082840312156200393d575f80fd5b81356001600160401b0381111562003953575f80fd5b62002dbb8482850162003153565b805162001aaa816200302b565b805162001aaa8162003569565b5f82601f8301126200398b575f80fd5b81516200399c62003174826200312a565b818152846020838601011115620039b1575f80fd5b62002dbb82602083016020870162003293565b5f805f8060808587031215620039d8575f80fd5b84516001600160401b0380821115620039ef575f80fd5b9086019060a0828903121562003a03575f80fd5b62003a0d620030a6565b825162003a1a816200302b565b8152602083015162003a2c8162002f58565b602082015262003a3f604084016200396e565b604082015260608301518281111562003a56575f80fd5b62003a648a8286016200397b565b60608301525060808301518281111562003a7c575f80fd5b62003a8a8a8286016200397b565b608083015250955062003aa391505060208601620034e6565b925062003ab360408601620034e6565b6060959095015193969295505050565b803562001aaa8162002f58565b5f805f806080858703121562003ae4575f80fd5b84356001600160401b038082111562003afb575f80fd5b9086019060a0828903121562003b0f575f80fd5b62003b19620030a6565b823562003b26816200302b565b8152602083013562003b388162002f58565b602082015262003b4b6040840162003578565b604082015260608301358281111562003b62575f80fd5b62003b708a82860162003153565b60608301525060808301358281111562003b88575f80fd5b62003b968a82860162003153565b608083015250955062003baf9150506020860162003ac3565b925062003bbf6040860162003ac3565b9396929550929360600135925050565b8181038181111562000bb057634e487b7160e01b5f52601160045260245ffd5b80516001600160801b038116811462001aaa575f80fd5b5f806040838503121562003c18575f80fd5b8251915060208301516001600160401b038082111562003c36575f80fd5b908401906101a0828703121562003c4b575f80fd5b62003c55620030d1565b62003c608362003bef565b815262003c7060208401620034e6565b602082015262003c836040840162003961565b604082015262003c966060840162003961565b606082015262003ca960808401620034e6565b608082015262003cbc60a08401620034e6565b60a082015262003ccf60c08401620034e6565b60c082015262003ce260e08401620034e6565b60e0820152610100838101519082015261012080840151908201526101408084015190820152610160808401518381111562003d1c575f80fd5b62003d2a898287016200397b565b828401525050610180808401518381111562003d44575f80fd5b62003d52898287016200397b565b8284015250508093505050509250929050565b5f6020828403121562003d76575f80fd5b5051919050565b5f6060828403121562003d8e575f80fd5b604051606081018181106001600160401b038211171562003db35762003db362003092565b60405282518152602083015162003dca8162002f58565b6020820152604083015162003ddf816200302b565b60408201529392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f6020828403121562003e47575f80fd5b815162000e648162003569565b5f6020828403121562003e65575f80fd5b81516001600160401b0381111562003e7b575f80fd5b62002dbb848285016200397b565b608081526001600160401b03855116608082015260018060a01b0360208601511660a082015260ff60408601511660c08201525f606086015160a060e084015262003ed9610120840182620032b7565b90506080870151607f198483030161010085015262003ef98282620032b7565b9250505062003f1360208301866001600160a01b03169052565b6001600160a01b039390931660408201526060015292915050565b602081525f62000e646020830184620032b7565b5f6020828403121562003f53575f80fd5b815162000e648162003040565b6001600160a01b0388811682528781166020830152861660408201526001600160401b038516606082015260ff8416608082015260e060a082018190525f9062003fad90830185620032b7565b82810360c084015262003fc18185620032b7565b9a9950505050505050505050565b6001600160a01b03831681526040602082018190525f9062000e6190830184620032b7565b81516001600160401b0381111562004010576200401062003092565b62004028816200402184546200352f565b84620035fe565b602080601f8311600181146200405e575f8415620040465750858301515b5f19600386901b1c1916600185901b178555620040b8565b5f85815260208120601f198616915b828110156200408e578886015182559484019460019091019084016200406d565b5085821015620040ac57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b606081525f620040d46060830186620032b7565b8281036020840152620040e88186620032b7565b91505060ff83166040830152949350505050565b5f82516200410f81846020870162003293565b919091019291505056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220ee2b34631d0aeafcbca8c09b3d006837becb1e761da7ef1dfde69d83e98a206164736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122022da3beb0be1c40b804b65c991383ee9453da8ac34cdebe2148f706343621e4e64736f6c63430008180033", + "balance": "0x0" + }, + "0x1670090000000000000000000000000000000002": { + "contractName": "ERC20Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670090000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167009000000000000000000000000000000002" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220ee2b34631d0aeafcbca8c09b3d006837becb1e761da7ef1dfde69d83e98a206164736f6c63430008180033", + "balance": "0x0" + }, + "0x0167009000000000000000000000000000000003": { + "contractName": "ERC721VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x6080604052600436106200019b575f3560e01c80635c975abb11620000de5780638456cb591162000092578063a86f9d9e116200006a578063a86f9d9e14620004c9578063e30c397814620004ed578063f09a4016146200050c578063f2fde38b1462000530575f80fd5b80638456cb59146200045d5780638da5cb5b14620004745780639aa8605c1462000493575f80fd5b80635c975abb146200039c578063634da63a14620003be57806367090ccf14620003d4578063715018a6146200041857806379ba5097146200042f5780637f07c9471462000446575f80fd5b80633ab76e9f11620001525780633f4ba83a116200012a5780633f4ba83a146200033b5780634f1ef286146200035257806352d1902d146200036957806359f4a9071462000380575f80fd5b80633ab76e9f14620002c65780633c6f5de214620003005780633eb6b8cf1462000317575f80fd5b806301ffc9a7146200019f57806306fdde0314620001e85780631507cc471462000215578063150b7a02146200023b5780632ca069a514620002845780633659cfe614620002a0575b5f80fd5b348015620001ab575f80fd5b50620001d3620001bd366004620026b4565b6001600160e01b031916631e37aef160e11b1490565b60405190151581526020015b60405180910390f35b348015620001f4575f80fd5b506b195c98cdcc8c57dd985d5b1d60a21b5b604051908152602001620001df565b6200022c62000226366004620028f3565b62000554565b604051620001df919062002a78565b34801562000247575f80fd5b506200026a6200025936600462002be5565b630a85bd0160e11b95945050505050565b6040516001600160e01b03199091168152602001620001df565b34801562000290575f80fd5b506200026a636cdb3d1360e11b81565b348015620002ac575f80fd5b50620002c4620002be36600462002c5a565b62000961565b005b348015620002d2575f80fd5b50609754620002e7906001600160a01b031681565b6040516001600160a01b039091168152602001620001df565b620002c46200031136600462002c78565b62000a53565b34801562000323575f80fd5b50620002e76200033536600462002ccf565b62000c28565b34801562000347575f80fd5b50620002c462000c40565b620002c46200036336600462002d13565b62000cc3565b34801562000375575f80fd5b506200020662000d9a565b3480156200038c575f80fd5b506200026a6380ac58cd60e01b81565b348015620003a8575f80fd5b50620001d360c954610100900460ff1660021490565b348015620003ca575f80fd5b5062000206600a81565b348015620003e0575f80fd5b50620002e7620003f236600462002d65565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b34801562000424575f80fd5b50620002c462000e4f565b3480156200043b575f80fd5b50620002c462000e64565b620002c46200045736600462002d96565b62000edf565b34801562000469575f80fd5b50620002c462001093565b34801562000480575f80fd5b506033546001600160a01b0316620002e7565b3480156200049f575f80fd5b50620004b7620004b136600462002c5a565b62001116565b604051620001df949392919062002dd8565b348015620004d5575f80fd5b50620002e7620004e736600462002e2b565b62001271565b348015620004f9575f80fd5b506065546001600160a01b0316620002e7565b34801562000518575f80fd5b50620002c46200052a36600462002e51565b62001288565b3480156200053c575f80fd5b50620002c46200054e36600462002c5a565b620013a0565b604080516101a0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820183905261014082019290925261016081018290526101808101919091526002620005cd60c95460ff1690565b60ff1603620005ef5760405163dfc60d8560e01b815260040160405180910390fd5b620005fb600262001414565b6200061060c954610100900460ff1660021490565b156200062f5760405163bae6e2a960e01b815260040160405180910390fd5b818060a0015151816080015151146200065b5760405163196e8a4160e31b815260040160405180910390fd5b600a8160800151511115620006835760405163e4a4c1c760e01b815260040160405180910390fd5b60608101516001600160a01b0316620006af576040516303f8a7d360e01b815260040160405180910390fd5b5f5b83608001515181101562000709578360a001518181518110620006d857620006d862002e82565b60200260200101515f146200070057604051634299323b60e11b815260040160405180910390fd5b600101620006b1565b5060608301516200072b906001600160a01b03166380ac58cd60e01b6200142a565b6200074957604051633ee915f560e11b815260040160405180910390fd5b5f80620007573386620014bd565b604080516101a0810182525f808252602080830182905292820181905289516001600160401b03166060830152336080830152918901519395509193509160a08201906001600160a01b0316620007af5733620007b5565b87602001515b6001600160a01b03168152602001620007e9885f0151620007e26b195c98cdcc8c57dd985d5b1d60a21b90565b5f62000c28565b6001600160a01b031681526020018761010001516001600160a01b031681526020018760e00151346200081d919062002e96565b81526020018760e0015181526020018760c00151815260200184815260200187610120015181525090505f6200085d6562726964676560d01b5f62001271565b6001600160a01b0316636c334e2e34846040518363ffffffff1660e01b81526004016200088b919062002a78565b5f6040518083038185885af1158015620008a7573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f19168201604052620008d1919081019062002f30565b809750819250505086604001516001600160a01b031686608001516001600160a01b0316827fabbf62a1459339f9ac59136d313a5ccd83d2706cc6d4c04d90642520169144dc896060015187602001518c606001518d608001518e60a0015160405162000943959493929190620030cb565b60405180910390a450505050506200095c600162001414565b919050565b6001600160a01b037f0000000000000000000000000167009000000000000000000000000000000003163003620009b55760405162461bcd60e51b8152600401620009ac9062003127565b60405180910390fd5b7f00000000000000000000000001670090000000000000000000000000000000036001600160a01b0316620009ff5f8051602062003de5833981519152546001600160a01b031690565b6001600160a01b03161462000a285760405162461bcd60e51b8152600401620009ac9062003173565b62000a338162001988565b604080515f8082526020820190925262000a509183919062001992565b50565b600262000a6260c95460ff1690565b60ff160362000a845760405163dfc60d8560e01b815260040160405180910390fd5b62000a90600262001414565b62000aa560c954610100900460ff1660021490565b1562000ac45760405163bae6e2a960e01b815260040160405180910390fd5b62000ace62001b09565b505f62000ae0610160840184620031bf565b62000af091600490829062003204565b81019062000aff91906200322d565b90505f808280602001905181019062000b199190620032c5565b9350505091505f62000b418387608001602081019062000b3a919062002c5a565b8462001c00565b905062000b6f61010087013562000b5f60a0890160808a0162002c5a565b6001600160a01b03169062001d8a565b62000b8160a087016080880162002c5a565b6001600160a01b0316857fe48bef18455e47bca14864ab6e82dffa29df148b051c09de95aec44ecf13598c8560200151848687516001600160401b0381111562000bcf5762000bcf620026dd565b60405190808252806020026020018201604052801562000bf9578160200160208202803683370190505b5060405162000c0c9493929190620033cf565b60405180910390a35050505062000c24600162001414565b5050565b5f62000c3684848462001d97565b90505b9392505050565b62000c5560c954610100900460ff1660021490565b62000c735760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a162000cc1335f62001e8a565b565b6001600160a01b037f000000000000000000000000016700900000000000000000000000000000000316300362000d0e5760405162461bcd60e51b8152600401620009ac9062003127565b7f00000000000000000000000001670090000000000000000000000000000000036001600160a01b031662000d585f8051602062003de5833981519152546001600160a01b031690565b6001600160a01b03161462000d815760405162461bcd60e51b8152600401620009ac9062003173565b62000d8c8262001988565b62000c248282600162001992565b5f306001600160a01b037f0000000000000000000000000167009000000000000000000000000000000003161462000e3b5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401620009ac565b505f8051602062003de58339815191525b90565b62000e5962001e8f565b62000cc15f62001eeb565b60655433906001600160a01b0316811462000ed45760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401620009ac565b62000a508162001eeb565b600262000eee60c95460ff1690565b60ff160362000f105760405163dfc60d8560e01b815260040160405180910390fd5b62000f1c600262001414565b62000f3160c954610100900460ff1660021490565b1562000f505760405163bae6e2a960e01b815260040160405180910390fd5b5f80808062000f628587018762003410565b93509350935093505f62000f7562001f06565b90506001600160a01b038316158062000f9657506001600160a01b03831630145b1562000fb55760405163def9481360e01b815260040160405180910390fd5b5f62000fc386858562001c00565b905062000fda6001600160a01b0385163462001d8a565b836001600160a01b0316856001600160a01b0316835f01517f895f73e418d1bbbad2a311d085fad00e5d98a960e9f2afa4b942071d39bec43a85604001518a6020015186898a516001600160401b038111156200103b576200103b620026dd565b60405190808252806020026020018201604052801562001065578160200160208202803683370190505b5060405162001079959493929190620030cb565b60405180910390a450505050505062000c24600162001414565b620010a860c954610100900460ff1660021490565b15620010c75760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200160405180910390a162000cc133600162001e8a565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b9093046001600160a01b031692919062001156906200350e565b80601f016020809104026020016040519081016040528092919081815260200182805462001184906200350e565b8015620011d35780601f10620011a957610100808354040283529160200191620011d3565b820191905f5260205f20905b815481529060010190602001808311620011b557829003601f168201915b505050505090806002018054620011ea906200350e565b80601f016020809104026020016040519081016040528092919081815260200182805462001218906200350e565b8015620012675780601f106200123d5761010080835404028352916020019162001267565b820191905f5260205f20905b8154815290600101906020018083116200124957829003601f168201915b5050505050905084565b5f6200127f46848462001d97565b90505b92915050565b5f54610100900460ff1615808015620012a757505f54600160ff909116105b80620012c25750303b158015620012c257505f5460ff166001145b620013275760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620009ac565b5f805460ff19166001179055801562001349575f805461ff0019166101001790555b6200135583836200202c565b80156200139b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b620013aa62001e8f565b606580546001600160a01b0383166001600160a01b03199091168117909155620013dc6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9805460ff191660ff92909216919091179055565b5f6001600160a01b0383163b6200144357505f62001282565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015620014b0575060408051601f3d908101601f19168201909252620014ad9181019062003548565b60015b1562001282579392505050565b604080516080810182525f8082526020820152606091810182905280820182905260608301516001600160a01b039081165f90815261012d6020526040902054600160401b90041615620017435760608301516001600160a01b039081165f90815261012d6020908152604091829020825160808101845281546001600160401b0381168252600160401b90049094169184019190915260018101805491928401916200156a906200350e565b80601f016020809104026020016040519081016040528092919081815260200182805462001598906200350e565b8015620015e75780601f10620015bd57610100808354040283529160200191620015e7565b820191905f5260205f20905b815481529060010190602001808311620015c957829003601f168201915b5050505050815260200160028201805462001602906200350e565b80601f016020809104026020016040519081016040528092919081815260200182805462001630906200350e565b80156200167f5780601f1062001655576101008083540402835291602001916200167f565b820191905f5260205f20905b8154815290600101906020018083116200166157829003601f168201915b50505050508152505090505f5b8360800151518110156200173c5783606001516001600160a01b0316639dc29fac8686608001518481518110620016c757620016c762002e82565b60200260200101516040518363ffffffff1660e01b8152600401620017019291906001600160a01b03929092168252602082015260400190565b5f604051808303815f87803b15801562001719575f80fd5b505af11580156200172c573d5f803e3d5ffd5b505050508060010190506200168c565b5062001903565b5f836060015190506040518060800160405280466001600160401b0316815260200185606001516001600160a01b03168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015620017b4573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620017dd919081019062003566565b8152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200181e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001847919081019062003566565b905291505f5b8460800151518110156200190057816001600160a01b03166342842e0e87308860800151858151811062001885576200188562002e82565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064015f604051808303815f87803b158015620018dd575f80fd5b505af1158015620018f0573d5f803e3d5ffd5b505050508060010190506200184d565b50505b306001600160a01b0316637f07c9478286866040015187608001516040516020016200193394939291906200359b565b60408051601f198184030181529082905262001952916024016200362a565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505091509250929050565b62000a5062001e8f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615620019c8576200139b8362002093565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001a25575060408051601f3d908101601f1916820190925262001a22918101906200363e565b60015b62001a8a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401620009ac565b5f8051602062003de5833981519152811462001afb5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401620009ac565b506200139b83838362002131565b604080516060810182525f808252602082018190529181019190915262001b3a6562726964676560d01b5f62001271565b6001600160a01b0316336001600160a01b03161462001b6c57604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001ba9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001bcf919062003656565b60208101519091506001600160a01b0316331462000e4c57604051632583296b60e01b815260040160405180910390fd5b5f46845f01516001600160401b03160362001ccf575060208301515f5b825181101562001cc857816001600160a01b03166342842e0e308686858151811062001c4d5762001c4d62002e82565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064015f604051808303815f87803b15801562001ca5575f80fd5b505af115801562001cb8573d5f803e3d5ffd5b5050505080600101905062001c1d565b5062000c39565b62001cda8462002161565b90505f5b825181101562001d8257816001600160a01b03166340c10f198585848151811062001d0d5762001d0d62002e82565b60200260200101516040518363ffffffff1660e01b815260040162001d479291906001600160a01b03929092168252602082015260400190565b5f604051808303815f87803b15801562001d5f575f80fd5b505af115801562001d72573d5f803e3d5ffd5b5050505080600101905062001cde565b509392505050565b62000c2482825a620021a6565b6097545f906001600160a01b031662001dc357604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa15801562001e1a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001e409190620036c4565b90508115801562001e5857506001600160a01b038116155b1562000c3957604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401620009ac565b62000c245b6033546001600160a01b0316331462000cc15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620009ac565b606580546001600160a01b031916905562000a5081620021ed565b604080516060810182525f808252602082018190529181019190915262001f376562726964676560d01b5f62001271565b6001600160a01b0316336001600160a01b03161462001f6957604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001fa6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001fcc919062003656565b90505f62001fef8260400151620007e26b195c98cdcc8c57dd985d5b1d60a21b90565b9050806001600160a01b031682602001516001600160a01b0316146200202857604051632583296b60e01b815260040160405180910390fd5b5090565b5f54610100900460ff16620020555760405162461bcd60e51b8152600401620009ac90620036e2565b62002060826200223e565b6001600160a01b03811662002088576040516375cabfef60e11b815260040160405180910390fd5b62000c248162002272565b6001600160a01b0381163b620021025760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620009ac565b5f8051602062003de583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6200213c83620022e6565b5f82511180620021495750805b156200139b576200215b838362002327565b50505050565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b03908116855292529091205416806200095c5762001282826200234f565b815f03620021b357505050565b620021cf83838360405180602001604052805f8152506200253a565b6200139b57604051634c67134d60e11b815260040160405180910390fd5b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b620022606001600160a01b0382161562002259578162001eeb565b3362001eeb565b5060c9805461ff001916610100179055565b5f54610100900460ff166200229b5760405162461bcd60e51b8152600401620009ac90620036e2565b6001600160401b03461115620022c45760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b620022f18162002093565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606200127f838360405180606001604052806027815260200162003e056027913962002578565b5f80620023646033546001600160a01b031690565b60975460208501518551604080880151606089015191516200239796956001600160a01b0316949392906024016200372d565b60408051601f198184030181529190526020810180516001600160e01b03166377c6257360e11b1790529050620023e06d627269646765645f65726337323160901b5f62001271565b81604051620023ef90620026a6565b620023fc92919062003792565b604051809103905ff08015801562002416573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d60209081526040918290208751815492890151909416600160401b026001600160e01b03199092166001600160401b0390941693909317178255850151919350849160018201906200247c908262003806565b506060820151600282019062002493908262003806565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b03191688851690811790915591518851828a015160608b01519351949750919094169493909316927f44977f2d30fe1e3aee2c1476f2f95aaacaf34e44b9359c403da01fcc93fd751b926200252c9290620038d2565b60405180910390a450919050565b5f6001600160a01b0385166200256357604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b60605f80856001600160a01b03168560405162002596919062003903565b5f60405180830381855af49150503d805f8114620025d0576040519150601f19603f3d011682016040523d82523d5f602084013e620025d5565b606091505b5091509150620025e886838387620025f2565b9695505050505050565b60608315620026655782515f036200265d576001600160a01b0385163b6200265d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620009ac565b508162002671565b62002671838362002679565b949350505050565b8151156200268a5781518083602001fd5b8060405162461bcd60e51b8152600401620009ac91906200362a565b6104c4806200392183390190565b5f60208284031215620026c5575f80fd5b81356001600160e01b0319811681146200127f575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405161014081016001600160401b0381118282101715620027175762002717620026dd565b60405290565b6040516101a081016001600160401b0381118282101715620027175762002717620026dd565b604051608081016001600160401b0381118282101715620027175762002717620026dd565b604051601f8201601f191681016001600160401b0381118282101715620027935762002793620026dd565b604052919050565b6001600160401b038116811462000a50575f80fd5b80356200095c816200279b565b6001600160a01b038116811462000a50575f80fd5b80356200095c81620027bd565b5f6001600160401b03821115620027fa57620027fa620026dd565b5060051b60200190565b5f82601f83011262002814575f80fd5b813560206200282d6200282783620027df565b62002768565b8083825260208201915060208460051b8701019350868411156200284f575f80fd5b602086015b848110156200286d578035835291830191830162002854565b509695505050505050565b5f6001600160401b03821115620028935762002893620026dd565b50601f01601f191660200190565b5f82601f830112620028b1575f80fd5b8135620028c2620028278262002878565b818152846020838601011115620028d7575f80fd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121562002904575f80fd5b81356001600160401b03808211156200291b575f80fd5b90830190610140828603121562002930575f80fd5b6200293a620026f1565b6200294583620027b0565b81526200295560208401620027d2565b60208201526200296860408401620027d2565b60408201526200297b60608401620027d2565b606082015260808301358281111562002992575f80fd5b620029a08782860162002804565b60808301525060a083013582811115620029b8575f80fd5b620029c68782860162002804565b60a08301525060c083013560c082015260e083013560e0820152610100620029f0818501620027d2565b90820152610120838101358381111562002a08575f80fd5b62002a1688828701620028a1565b918301919091525095945050505050565b5f5b8381101562002a4357818101518382015260200162002a29565b50505f910152565b5f815180845262002a6481602086016020860162002a27565b601f01601f19169290920160200192915050565b6020815262002a936020820183516001600160801b03169052565b5f602083015162002aaf60408401826001600160a01b03169052565b5060408301516001600160401b03811660608401525060608301516001600160401b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e083015161010062002b36818501836001600160a01b03169052565b8401516101208481019190915284015161014080850191909152840151610160808501919091528401516101a06101808086018290529192509062002b806101c086018462002a4b565b90860151858203601f190183870152909250620025e8838262002a4b565b5f8083601f84011262002baf575f80fd5b5081356001600160401b0381111562002bc6575f80fd5b60208301915083602082850101111562002bde575f80fd5b9250929050565b5f805f805f6080868803121562002bfa575f80fd5b853562002c0781620027bd565b9450602086013562002c1981620027bd565b93506040860135925060608601356001600160401b0381111562002c3b575f80fd5b62002c498882890162002b9e565b969995985093965092949392505050565b5f6020828403121562002c6b575f80fd5b81356200127f81620027bd565b5f806040838503121562002c8a575f80fd5b82356001600160401b0381111562002ca0575f80fd5b83016101a0818603121562002cb3575f80fd5b946020939093013593505050565b801515811462000a50575f80fd5b5f805f6060848603121562002ce2575f80fd5b833562002cef816200279b565b925060208401359150604084013562002d088162002cc1565b809150509250925092565b5f806040838503121562002d25575f80fd5b823562002d3281620027bd565b915060208301356001600160401b0381111562002d4d575f80fd5b62002d5b85828601620028a1565b9150509250929050565b5f806040838503121562002d77575f80fd5b82359150602083013562002d8b81620027bd565b809150509250929050565b5f806020838503121562002da8575f80fd5b82356001600160401b0381111562002dbe575f80fd5b62002dcc8582860162002b9e565b90969095509350505050565b6001600160401b03851681526001600160a01b03841660208201526080604082018190525f9062002e0c9083018562002a4b565b828103606084015262002e20818562002a4b565b979650505050505050565b5f806040838503121562002e3d575f80fd5b82359150602083013562002d8b8162002cc1565b5f806040838503121562002e63575f80fd5b823562002e7081620027bd565b9150602083013562002d8b81620027bd565b634e487b7160e01b5f52603260045260245ffd5b818103818111156200128257634e487b7160e01b5f52601160045260245ffd5b80516001600160801b03811681146200095c575f80fd5b80516200095c81620027bd565b80516200095c816200279b565b5f82601f83011262002ef7575f80fd5b815162002f08620028278262002878565b81815284602083860101111562002f1d575f80fd5b6200267182602083016020870162002a27565b5f806040838503121562002f42575f80fd5b8251915060208301516001600160401b038082111562002f60575f80fd5b908401906101a0828703121562002f75575f80fd5b62002f7f6200271d565b62002f8a8362002eb6565b815262002f9a6020840162002ecd565b602082015262002fad6040840162002eda565b604082015262002fc06060840162002eda565b606082015262002fd36080840162002ecd565b608082015262002fe660a0840162002ecd565b60a082015262002ff960c0840162002ecd565b60c08201526200300c60e0840162002ecd565b60e0820152610100838101519082015261012080840151908201526101408084015190820152610160808401518381111562003046575f80fd5b620030548982870162002ee7565b82840152505061018080840151838111156200306e575f80fd5b6200307c8982870162002ee7565b8284015250508093505050509250929050565b5f815180845260208085019450602084015f5b83811015620030c057815187529582019590820190600101620030a2565b509495945050505050565b6001600160401b03861681526001600160a01b0385811660208301528416604082015260a0606082018190525f9062003107908301856200308f565b82810360808401526200311b81856200308f565b98975050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f808335601e19843603018112620031d5575f80fd5b8301803591506001600160401b03821115620031ef575f80fd5b60200191503681900382131562002bde575f80fd5b5f808585111562003213575f80fd5b8386111562003220575f80fd5b5050820193919092039150565b5f602082840312156200323e575f80fd5b81356001600160401b0381111562003254575f80fd5b6200267184828501620028a1565b5f82601f83011262003272575f80fd5b81516020620032856200282783620027df565b8083825260208201915060208460051b870101935086841115620032a7575f80fd5b602086015b848110156200286d5780518352918301918301620032ac565b5f805f8060808587031215620032d9575f80fd5b84516001600160401b0380821115620032f0575f80fd5b908601906080828903121562003304575f80fd5b6200330e62002743565b82516200331b816200279b565b815260208301516200332d81620027bd565b602082015260408301518281111562003344575f80fd5b620033528a82860162002ee7565b6040830152506060830151828111156200336a575f80fd5b620033788a82860162002ee7565b60608301525095506200338e6020880162002ecd565b94506200339e6040880162002ecd565b93506060870151915080821115620033b4575f80fd5b50620033c38782880162003262565b91505092959194509250565b6001600160a01b038581168252841660208201526080604082018190525f90620033fc908301856200308f565b828103606084015262002e2081856200308f565b5f805f806080858703121562003424575f80fd5b84356001600160401b03808211156200343b575f80fd5b90860190608082890312156200344f575f80fd5b6200345962002743565b823562003466816200279b565b815260208301356200347881620027bd565b60208201526040830135828111156200348f575f80fd5b6200349d8a828601620028a1565b604083015250606083013582811115620034b5575f80fd5b620034c38a828601620028a1565b6060830152509550620034d960208801620027d2565b9450620034e960408801620027d2565b93506060870135915080821115620034ff575f80fd5b50620033c38782880162002804565b600181811c908216806200352357607f821691505b6020821081036200354257634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562003559575f80fd5b81516200127f8162002cc1565b5f6020828403121562003577575f80fd5b81516001600160401b038111156200358d575f80fd5b620026718482850162002ee7565b608080825285516001600160401b03168282015260208601516001600160a01b0390811660a0840152604087015160c08401929092525f9190620035e461010085018362002a4b565b91506060880151607f198584030160e086015262003603838262002a4b565b88831660208701529187166040860152508381036060850152905062002e2081856200308f565b602081525f6200127f602083018462002a4b565b5f602082840312156200364f575f80fd5b5051919050565b5f6060828403121562003667575f80fd5b604051606081018181106001600160401b03821117156200368c576200368c620026dd565b604052825181526020830151620036a381620027bd565b60208201526040830151620036b8816200279b565b60408201529392505050565b5f60208284031215620036d5575f80fd5b81516200127f81620027bd565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0387811682528681166020830152851660408201526001600160401b038416606082015260c0608082018190525f90620037719083018562002a4b565b82810360a084015262003785818562002a4b565b9998505050505050505050565b6001600160a01b03831681526040602082018190525f9062000c369083018462002a4b565b601f8211156200139b57805f5260205f20601f840160051c81016020851015620037de5750805b601f840160051c820191505b81811015620037ff575f8155600101620037ea565b5050505050565b81516001600160401b03811115620038225762003822620026dd565b6200383a816200383384546200350e565b84620037b7565b602080601f83116001811462003870575f8415620038585750858301515b5f19600386901b1c1916600185901b178555620038ca565b5f85815260208120601f198616915b82811015620038a0578886015182559484019460019091019084016200387f565b5085821015620038be57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b604081525f620038e6604083018562002a4b565b8281036020840152620038fa818562002a4b565b95945050505050565b5f82516200391681846020870162002a27565b919091019291505056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220ee2b34631d0aeafcbca8c09b3d006837becb1e761da7ef1dfde69d83e98a206164736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122078d47b9ef19554ced9fdffe22a811a18cbe200ac438a1d972be4de0a658b715564736f6c63430008180033", + "balance": "0x0" + }, + "0x1670090000000000000000000000000000000003": { + "contractName": "ERC721Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670090000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167009000000000000000000000000000000003" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220ee2b34631d0aeafcbca8c09b3d006837becb1e761da7ef1dfde69d83e98a206164736f6c63430008180033", + "balance": "0x0" + }, + "0x0167009000000000000000000000000000000004": { + "contractName": "ERC1155VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x608060405260043610620001b7575f3560e01c8063634da63a11620000fa5780639aa8605c1162000092578063e30c3978116200006a578063e30c397814620004fd578063f09a4016146200051c578063f23a6e611462000540578063f2fde38b1462000570575f80fd5b80639aa8605c1462000471578063a86f9d9e14620004a7578063bc197c8114620004cb575f80fd5b806379ba509711620000d257806379ba5097146200040d5780637f07c94714620004245780638456cb59146200043b5780638da5cb5b1462000452575f80fd5b8063634da63a146200039c57806367090ccf14620003b2578063715018a614620003f6575f80fd5b80633c6f5de2116200016e5780634f1ef28611620001465780634f1ef286146200033057806352d1902d146200034757806359f4a907146200035e5780635c975abb146200037a575f80fd5b80633c6f5de214620002de5780633eb6b8cf14620002f55780633f4ba83a1462000319575f80fd5b806301ffc9a714620001bb57806306fdde0314620001f45780631507cc4714620002225780632ca069a514620002485780633659cfe6146200027e5780633ab76e9f14620002a4575b5f80fd5b348015620001c7575f80fd5b50620001df620001d93660046200268e565b62000594565b60405190151581526020015b60405180910390f35b34801562000200575f80fd5b506c195c98cc4c4d4d57dd985d5b1d609a1b5b604051908152602001620001eb565b6200023962000233366004620028cd565b620005cb565b604051620001eb919062002a52565b34801562000254575f80fd5b5062000264636cdb3d1360e11b81565b6040516001600160e01b03199091168152602001620001eb565b3480156200028a575f80fd5b50620002a26200029c36600462002b78565b620009d9565b005b348015620002b0575f80fd5b50609754620002c5906001600160a01b031681565b6040516001600160a01b039091168152602001620001eb565b620002a2620002ef36600462002b96565b62000acb565b34801562000301575f80fd5b50620002c56200031336600462002bed565b62000c5f565b34801562000325575f80fd5b50620002a262000c77565b620002a26200034136600462002c31565b62000cfa565b34801562000353575f80fd5b506200021362000dd1565b3480156200036a575f80fd5b50620002646380ac58cd60e01b81565b34801562000386575f80fd5b50620001df60c954610100900460ff1660021490565b348015620003a8575f80fd5b5062000213600a81565b348015620003be575f80fd5b50620002c5620003d036600462002c83565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b34801562000402575f80fd5b50620002a262000e86565b34801562000419575f80fd5b50620002a262000e9b565b620002a26200043536600462002cfb565b62000f16565b34801562000447575f80fd5b50620002a262001089565b3480156200045e575f80fd5b506033546001600160a01b0316620002c5565b3480156200047d575f80fd5b50620004956200048f36600462002b78565b6200110c565b604051620001eb949392919062002d3d565b348015620004b3575f80fd5b50620002c5620004c536600462002d90565b62001267565b348015620004d7575f80fd5b5062000264620004e936600462002df9565b63bc197c8160e01b98975050505050505050565b34801562000509575f80fd5b506065546001600160a01b0316620002c5565b34801562000528575f80fd5b50620002a26200053a36600462002ebd565b62001275565b3480156200054c575f80fd5b50620002646200055e36600462002eee565b63f23a6e6160e01b9695505050505050565b3480156200057c575f80fd5b50620002a26200058e36600462002b78565b6200138d565b5f6001600160e01b031982166301ffc9a760e01b1480620005c55750631e37aef160e11b6001600160e01b03198316145b92915050565b604080516101a0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820192909252610160810182905261018081019190915260026200064460c95460ff1690565b60ff1603620006665760405163dfc60d8560e01b815260040160405180910390fd5b62000672600262001401565b6200068760c954610100900460ff1660021490565b15620006a65760405163bae6e2a960e01b815260040160405180910390fd5b818060a001515181608001515114620006d25760405163196e8a4160e31b815260040160405180910390fd5b600a8160800151511115620006fa5760405163e4a4c1c760e01b815260040160405180910390fd5b60608101516001600160a01b031662000726576040516303f8a7d360e01b815260040160405180910390fd5b5f5b8360a001515181101562000780578360a0015181815181106200074f576200074f62002f6c565b60200260200101515f036200077757604051634299323b60e11b815260040160405180910390fd5b60010162000728565b506060830151620007a2906001600160a01b0316636cdb3d1360e11b62001417565b620007c057604051633ee915f560e11b815260040160405180910390fd5b5f80620007ce3386620014aa565b604080516101a0810182525f808252602080830182905292820181905289516001600160401b03166060830152336080830152918901519395509193509160a08201906001600160a01b03166200082657336200082c565b87602001515b6001600160a01b0316815260200162000861885f01516200085a6c195c98cc4c4d4d57dd985d5b1d609a1b90565b5f62000c5f565b6001600160a01b031681526020018761010001516001600160a01b031681526020018760e001513462000895919062002f80565b81526020018760e0015181526020018760c00151815260200184815260200187610120015181525090505f620008d56562726964676560d01b5f62001267565b6001600160a01b0316636c334e2e34846040518363ffffffff1660e01b815260040162000903919062002a52565b5f6040518083038185885af11580156200091f573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f191682016040526200094991908101906200301a565b809750819250505086604001516001600160a01b031686608001516001600160a01b0316827fabbf62a1459339f9ac59136d313a5ccd83d2706cc6d4c04d90642520169144dc896060015187602001518c606001518d608001518e60a00151604051620009bb959493929190620031b5565b60405180910390a45050505050620009d4600162001401565b919050565b6001600160a01b037f000000000000000000000000016700900000000000000000000000000000000416300362000a2d5760405162461bcd60e51b815260040162000a249062003211565b60405180910390fd5b7f00000000000000000000000001670090000000000000000000000000000000046001600160a01b031662000a775f8051602062003fd8833981519152546001600160a01b031690565b6001600160a01b03161462000aa05760405162461bcd60e51b815260040162000a24906200325d565b62000aab81620019fc565b604080515f8082526020820190925262000ac89183919062001a06565b50565b600262000ada60c95460ff1690565b60ff160362000afc5760405163dfc60d8560e01b815260040160405180910390fd5b62000b08600262001401565b62000b1d60c954610100900460ff1660021490565b1562000b3c5760405163bae6e2a960e01b815260040160405180910390fd5b62000b4662001b7d565b505f62000b58610160840184620032a9565b62000b68916004908290620032ee565b81019062000b77919062003317565b90505f805f8380602001905181019062000b929190620033af565b94509450505092505f62000bbd8488608001602081019062000bb5919062002b78565b858562001c74565b905062000beb61010088013562000bdb60a08a0160808b0162002b78565b6001600160a01b03169062001d70565b62000bfd60a088016080890162002b78565b6001600160a01b0316867fe48bef18455e47bca14864ab6e82dffa29df148b051c09de95aec44ecf13598c866020015184878760405162000c429493929190620034df565b60405180910390a3505050505062000c5b600162001401565b5050565b5f62000c6d84848462001d7d565b90505b9392505050565b62000c8c60c954610100900460ff1660021490565b62000caa5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a162000cf8335f62001e70565b565b6001600160a01b037f000000000000000000000000016700900000000000000000000000000000000416300362000d455760405162461bcd60e51b815260040162000a249062003211565b7f00000000000000000000000001670090000000000000000000000000000000046001600160a01b031662000d8f5f8051602062003fd8833981519152546001600160a01b031690565b6001600160a01b03161462000db85760405162461bcd60e51b815260040162000a24906200325d565b62000dc382620019fc565b62000c5b8282600162001a06565b5f306001600160a01b037f0000000000000000000000000167009000000000000000000000000000000004161462000e725760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000a24565b505f8051602062003fd88339815191525b90565b62000e9062001e75565b62000cf85f62001ed1565b60655433906001600160a01b0316811462000f0b5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840162000a24565b62000ac88162001ed1565b600262000f2560c95460ff1690565b60ff160362000f475760405163dfc60d8560e01b815260040160405180910390fd5b62000f53600262001401565b62000f6860c954610100900460ff1660021490565b1562000f875760405163bae6e2a960e01b815260040160405180910390fd5b5f8080808062000f9a8688018862003520565b945094509450945094505f62000faf62001eec565b90506001600160a01b038416158062000fd057506001600160a01b03841630145b1562000fef5760405163def9481360e01b815260040160405180910390fd5b5f62000ffe8786868662001c74565b9050620010156001600160a01b0386163462001d70565b846001600160a01b0316866001600160a01b0316835f01517f895f73e418d1bbbad2a311d085fad00e5d98a960e9f2afa4b942071d39bec43a85604001518b60200151868a8a6040516200106e959493929190620031b5565b60405180910390a45050505050505062000c5b600162001401565b6200109e60c954610100900460ff1660021490565b15620010bd5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200160405180910390a162000cf833600162001e70565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b9093046001600160a01b03169291906200114c9062003643565b80601f01602080910402602001604051908101604052809291908181526020018280546200117a9062003643565b8015620011c95780601f106200119f57610100808354040283529160200191620011c9565b820191905f5260205f20905b815481529060010190602001808311620011ab57829003601f168201915b505050505090806002018054620011e09062003643565b80601f01602080910402602001604051908101604052809291908181526020018280546200120e9062003643565b80156200125d5780601f1062001233576101008083540402835291602001916200125d565b820191905f5260205f20905b8154815290600101906020018083116200123f57829003601f168201915b5050505050905084565b5f62000c7046848462001d7d565b5f54610100900460ff16158080156200129457505f54600160ff909116105b80620012af5750303b158015620012af57505f5460ff166001145b620013145760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000a24565b5f805460ff19166001179055801562001336575f805461ff0019166101001790555b62001342838362002013565b801562001388575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6200139762001e75565b606580546001600160a01b0383166001600160a01b03199091168117909155620013c96033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60c9805460ff191660ff92909216919091179055565b5f6001600160a01b0383163b6200143057505f620005c5565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa9250505080156200149d575060408051601f3d908101601f191682019092526200149a918101906200367d565b60015b15620005c5579392505050565b604080516080810182525f8082526020820152606091810182905280820182905260608301516001600160a01b039081165f90815261012d6020526040902054600160401b90041615620017565760608301516001600160a01b039081165f90815261012d6020908152604091829020825160808101845281546001600160401b0381168252600160401b9004909416918401919091526001810180549192840191620015579062003643565b80601f0160208091040260200160405190810160405280929190818152602001828054620015859062003643565b8015620015d45780601f10620015aa57610100808354040283529160200191620015d4565b820191905f5260205f20905b815481529060010190602001808311620015b657829003601f168201915b50505050508152602001600282018054620015ef9062003643565b80601f01602080910402602001604051908101604052809291908181526020018280546200161d9062003643565b80156200166c5780601f1062001642576101008083540402835291602001916200166c565b820191905f5260205f20905b8154815290600101906020018083116200164e57829003601f168201915b50505050508152505090505f5b8360800151518110156200174f5783606001516001600160a01b031663f5298aca8686608001518481518110620016b457620016b462002f6c565b60200260200101518760a001518581518110620016d557620016d562002f6c565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915260448201526064015f604051808303815f87803b1580156200172c575f80fd5b505af11580156200173f573d5f803e3d5ffd5b5050505080600101905062001679565b506200197a565b6040518060800160405280466001600160401b0316815260200184606001516001600160a01b0316815260200160405180602001604052805f815250815260200160405180602001604052805f81525081525090505f83606001519050806001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa9250505080156200181357506040513d5f823e601f3d908101601f191682016040526200181091908101906200369b565b60015b156200181f5760608301525b806001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa9250505080156200187f57506040513d5f823e601f3d908101601f191682016040526200187c91908101906200369b565b60015b156200188b5760408301525b5f5b846080015151811015620019775784606001516001600160a01b031663f242432a333088608001518581518110620018c957620018c962002f6c565b60200260200101518960a001518681518110620018ea57620018ea62002f6c565b60209081029190910101516040516001600160e01b031960e087901b1681526001600160a01b0394851660048201529390921660248401526044830152606482015260a060848201525f60a482015260c4015f604051808303815f87803b15801562001954575f80fd5b505af115801562001967573d5f803e3d5ffd5b505050508060010190506200188d565b50505b604080840151608085015160a086015192513093637f07c94793620019a79387938b9390602001620036d0565b60408051601f1981840301815290829052620019c69160240162003787565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505091509250929050565b62000ac862001e75565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001a3c5762001388836200207a565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001a99575060408051601f3d908101601f1916820190925262001a96918101906200379b565b60015b62001afe5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000a24565b5f8051602062003fd8833981519152811462001b6f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000a24565b506200138883838362002118565b604080516060810182525f808252602082018190529181019190915262001bae6562726964676560d01b5f62001267565b6001600160a01b0316336001600160a01b03161462001be057604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001c1d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001c439190620037b3565b60208101519091506001600160a01b0316331462000e8357604051632583296b60e01b815260040160405180910390fd5b5f46855f01516001600160401b03160362001cf857506020840151604051631759616b60e11b81526001600160a01b03821690632eb2c2d69062001cc390309088908890889060040162003821565b5f604051808303815f87803b15801562001cdb575f80fd5b505af115801562001cee573d5f803e3d5ffd5b5050505062001d68565b62001d038562002148565b60405163d81d0a1560e01b81529091506001600160a01b0382169063d81d0a159062001d38908790879087906004016200387e565b5f604051808303815f87803b15801562001d50575f80fd5b505af115801562001d63573d5f803e3d5ffd5b505050505b949350505050565b62000c5b82825a6200218d565b6097545f906001600160a01b031662001da957604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa15801562001e00573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001e269190620038b7565b90508115801562001e3e57506001600160a01b038116155b1562000c7057604051632b0d65db60e01b81526001600160401b03851660048201526024810184905260440162000a24565b62000c5b5b6033546001600160a01b0316331462000cf85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000a24565b606580546001600160a01b031916905562000ac881620021d4565b604080516060810182525f808252602082018190529181019190915262001f1d6562726964676560d01b5f62001267565b6001600160a01b0316336001600160a01b03161462001f4f57604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001f8c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001fb29190620037b3565b90505f62001fd682604001516200085a6c195c98cc4c4d4d57dd985d5b1d609a1b90565b9050806001600160a01b031682602001516001600160a01b0316146200200f57604051632583296b60e01b815260040160405180910390fd5b5090565b5f54610100900460ff166200203c5760405162461bcd60e51b815260040162000a2490620038d5565b620020478262002225565b6001600160a01b0381166200206f576040516375cabfef60e11b815260040160405180910390fd5b62000c5b8162002259565b6001600160a01b0381163b620020e95760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000a24565b5f8051602062003fd883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6200212383620022cd565b5f82511180620021305750805b1562001388576200214283836200230e565b50505050565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b0390811685529252909120541680620009d457620005c58262002336565b815f036200219a57505050565b620021b683838360405180602001604052805f81525062002522565b6200138857604051634c67134d60e11b815260040160405180910390fd5b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b620022476001600160a01b0382161562002240578162001ed1565b3362001ed1565b5060c9805461ff001916610100179055565b5f54610100900460ff16620022825760405162461bcd60e51b815260040162000a2490620038d5565b6001600160401b03461115620022ab5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b620022d8816200207a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000c70838360405180606001604052806027815260200162003ff86027913962002560565b5f806200234b6033546001600160a01b031690565b60975460208501518551604080880151606089015191516200237e96956001600160a01b03169493929060240162003920565b60408051601f198184030181529190526020810180516001600160e01b03166377c6257360e11b1790529050620023c86e627269646765645f6572633131353560881b5f62001267565b81604051620023d79062002680565b620023e492919062003985565b604051809103905ff080158015620023fe573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d60209081526040918290208751815492890151909416600160401b026001600160e01b03199092166001600160401b039094169390931717825585015191935084916001820190620024649082620039f9565b50606082015160028201906200247b9082620039f9565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b03191688851690811790915591518851828a015160608b01519351949750919094169493909316927f44977f2d30fe1e3aee2c1476f2f95aaacaf34e44b9359c403da01fcc93fd751b9262002514929062003ac5565b60405180910390a450919050565b5f6001600160a01b0385166200254b57604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b60605f80856001600160a01b0316856040516200257e919062003af6565b5f60405180830381855af49150503d805f8114620025b8576040519150601f19603f3d011682016040523d82523d5f602084013e620025bd565b606091505b5091509150620025d086838387620025da565b9695505050505050565b606083156200264d5782515f0362002645576001600160a01b0385163b620026455760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000a24565b508162001d68565b62001d688383815115620026645781518083602001fd5b8060405162461bcd60e51b815260040162000a24919062003787565b6104c48062003b1483390190565b5f602082840312156200269f575f80fd5b81356001600160e01b03198116811462000c70575f80fd5b634e487b7160e01b5f52604160045260245ffd5b60405161014081016001600160401b0381118282101715620026f157620026f1620026b7565b60405290565b6040516101a081016001600160401b0381118282101715620026f157620026f1620026b7565b604051608081016001600160401b0381118282101715620026f157620026f1620026b7565b604051601f8201601f191681016001600160401b03811182821017156200276d576200276d620026b7565b604052919050565b6001600160401b038116811462000ac8575f80fd5b8035620009d48162002775565b6001600160a01b038116811462000ac8575f80fd5b8035620009d48162002797565b5f6001600160401b03821115620027d457620027d4620026b7565b5060051b60200190565b5f82601f830112620027ee575f80fd5b81356020620028076200280183620027b9565b62002742565b8083825260208201915060208460051b87010193508684111562002829575f80fd5b602086015b848110156200284757803583529183019183016200282e565b509695505050505050565b5f6001600160401b038211156200286d576200286d620026b7565b50601f01601f191660200190565b5f82601f8301126200288b575f80fd5b81356200289c620028018262002852565b818152846020838601011115620028b1575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215620028de575f80fd5b81356001600160401b0380821115620028f5575f80fd5b9083019061014082860312156200290a575f80fd5b62002914620026cb565b6200291f836200278a565b81526200292f60208401620027ac565b60208201526200294260408401620027ac565b60408201526200295560608401620027ac565b60608201526080830135828111156200296c575f80fd5b6200297a87828601620027de565b60808301525060a08301358281111562002992575f80fd5b620029a087828601620027de565b60a08301525060c083013560c082015260e083013560e0820152610100620029ca818501620027ac565b908201526101208381013583811115620029e2575f80fd5b620029f0888287016200287b565b918301919091525095945050505050565b5f5b8381101562002a1d57818101518382015260200162002a03565b50505f910152565b5f815180845262002a3e81602086016020860162002a01565b601f01601f19169290920160200192915050565b6020815262002a6d6020820183516001600160801b03169052565b5f602083015162002a8960408401826001600160a01b03169052565b5060408301516001600160401b03811660608401525060608301516001600160401b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e083015161010062002b10818501836001600160a01b03169052565b8401516101208481019190915284015161014080850191909152840151610160808501919091528401516101a06101808086018290529192509062002b5a6101c086018462002a25565b90860151858203601f190183870152909250620025d0838262002a25565b5f6020828403121562002b89575f80fd5b813562000c708162002797565b5f806040838503121562002ba8575f80fd5b82356001600160401b0381111562002bbe575f80fd5b83016101a0818603121562002bd1575f80fd5b946020939093013593505050565b801515811462000ac8575f80fd5b5f805f6060848603121562002c00575f80fd5b833562002c0d8162002775565b925060208401359150604084013562002c268162002bdf565b809150509250925092565b5f806040838503121562002c43575f80fd5b823562002c508162002797565b915060208301356001600160401b0381111562002c6b575f80fd5b62002c79858286016200287b565b9150509250929050565b5f806040838503121562002c95575f80fd5b82359150602083013562002ca98162002797565b809150509250929050565b5f8083601f84011262002cc5575f80fd5b5081356001600160401b0381111562002cdc575f80fd5b60208301915083602082850101111562002cf4575f80fd5b9250929050565b5f806020838503121562002d0d575f80fd5b82356001600160401b0381111562002d23575f80fd5b62002d318582860162002cb4565b90969095509350505050565b6001600160401b03851681526001600160a01b03841660208201526080604082018190525f9062002d719083018562002a25565b828103606084015262002d85818562002a25565b979650505050505050565b5f806040838503121562002da2575f80fd5b82359150602083013562002ca98162002bdf565b5f8083601f84011262002dc7575f80fd5b5081356001600160401b0381111562002dde575f80fd5b6020830191508360208260051b850101111562002cf4575f80fd5b5f805f805f805f8060a0898b03121562002e11575f80fd5b883562002e1e8162002797565b9750602089013562002e308162002797565b965060408901356001600160401b038082111562002e4c575f80fd5b62002e5a8c838d0162002db6565b909850965060608b013591508082111562002e73575f80fd5b62002e818c838d0162002db6565b909650945060808b013591508082111562002e9a575f80fd5b5062002ea98b828c0162002cb4565b999c989b5096995094979396929594505050565b5f806040838503121562002ecf575f80fd5b823562002edc8162002797565b9150602083013562002ca98162002797565b5f805f805f8060a0878903121562002f04575f80fd5b863562002f118162002797565b9550602087013562002f238162002797565b9450604087013593506060870135925060808701356001600160401b0381111562002f4c575f80fd5b62002f5a89828a0162002cb4565b979a9699509497509295939492505050565b634e487b7160e01b5f52603260045260245ffd5b81810381811115620005c557634e487b7160e01b5f52601160045260245ffd5b80516001600160801b0381168114620009d4575f80fd5b8051620009d48162002797565b8051620009d48162002775565b5f82601f83011262002fe1575f80fd5b815162002ff2620028018262002852565b81815284602083860101111562003007575f80fd5b62001d6882602083016020870162002a01565b5f80604083850312156200302c575f80fd5b8251915060208301516001600160401b03808211156200304a575f80fd5b908401906101a082870312156200305f575f80fd5b62003069620026f7565b620030748362002fa0565b8152620030846020840162002fb7565b6020820152620030976040840162002fc4565b6040820152620030aa6060840162002fc4565b6060820152620030bd6080840162002fb7565b6080820152620030d060a0840162002fb7565b60a0820152620030e360c0840162002fb7565b60c0820152620030f660e0840162002fb7565b60e0820152610100838101519082015261012080840151908201526101408084015190820152610160808401518381111562003130575f80fd5b6200313e8982870162002fd1565b828401525050610180808401518381111562003158575f80fd5b620031668982870162002fd1565b8284015250508093505050509250929050565b5f815180845260208085019450602084015f5b83811015620031aa578151875295820195908201906001016200318c565b509495945050505050565b6001600160401b03861681526001600160a01b0385811660208301528416604082015260a0606082018190525f90620031f19083018562003179565b828103608084015262003205818562003179565b98975050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f808335601e19843603018112620032bf575f80fd5b8301803591506001600160401b03821115620032d9575f80fd5b60200191503681900382131562002cf4575f80fd5b5f8085851115620032fd575f80fd5b838611156200330a575f80fd5b5050820193919092039150565b5f6020828403121562003328575f80fd5b81356001600160401b038111156200333e575f80fd5b62001d68848285016200287b565b5f82601f8301126200335c575f80fd5b815160206200336f6200280183620027b9565b8083825260208201915060208460051b87010193508684111562003391575f80fd5b602086015b8481101562002847578051835291830191830162003396565b5f805f805f60a08688031215620033c4575f80fd5b85516001600160401b0380821115620033db575f80fd5b908701906080828a031215620033ef575f80fd5b620033f96200271d565b8251620034068162002775565b81526020830151620034188162002797565b60208201526040830151828111156200342f575f80fd5b6200343d8b82860162002fd1565b60408301525060608301518281111562003455575f80fd5b620034638b82860162002fd1565b6060830152509650620034796020890162002fb7565b9550620034896040890162002fb7565b945060608801519150808211156200349f575f80fd5b620034ad89838a016200334c565b93506080880151915080821115620034c3575f80fd5b50620034d2888289016200334c565b9150509295509295909350565b6001600160a01b038581168252841660208201526080604082018190525f906200350c9083018562003179565b828103606084015262002d85818562003179565b5f805f805f60a0868803121562003535575f80fd5b85356001600160401b03808211156200354c575f80fd5b908701906080828a03121562003560575f80fd5b6200356a6200271d565b8235620035778162002775565b81526020830135620035898162002797565b6020820152604083013582811115620035a0575f80fd5b620035ae8b8286016200287b565b604083015250606083013582811115620035c6575f80fd5b620035d48b8286016200287b565b6060830152509650620035ea60208901620027ac565b9550620035fa60408901620027ac565b9450606088013591508082111562003610575f80fd5b6200361e89838a01620027de565b9350608088013591508082111562003634575f80fd5b50620034d288828901620027de565b600181811c908216806200365857607f821691505b6020821081036200367757634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200368e575f80fd5b815162000c708162002bdf565b5f60208284031215620036ac575f80fd5b81516001600160401b03811115620036c2575f80fd5b62001d688482850162002fd1565b60a080825286516001600160401b03169082015260208601516001600160a01b031660c08201526040860151608060e08301525f906200371561012084018262002a25565b90506060880151609f198483030161010085015262003735828262002a25565b9150506200374e60208401886001600160a01b03169052565b6001600160a01b0386166040840152828103606084015262003771818662003179565b9050828103608084015262003205818562003179565b602081525f62000c70602083018462002a25565b5f60208284031215620037ac575f80fd5b5051919050565b5f60608284031215620037c4575f80fd5b604051606081018181106001600160401b0382111715620037e957620037e9620026b7565b604052825181526020830151620038008162002797565b60208201526040830151620038158162002775565b60408201529392505050565b6001600160a01b0385811682528416602082015260a0604082018190525f906200384e9083018562003179565b828103606084015262003862818562003179565b83810360809094019390935250505f8152602001949350505050565b6001600160a01b03841681526060602082018190525f90620038a39083018562003179565b8281036040840152620025d0818562003179565b5f60208284031215620038c8575f80fd5b815162000c708162002797565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0387811682528681166020830152851660408201526001600160401b038416606082015260c0608082018190525f90620039649083018562002a25565b82810360a084015262003978818562002a25565b9998505050505050505050565b6001600160a01b03831681526040602082018190525f9062000c6d9083018462002a25565b601f8211156200138857805f5260205f20601f840160051c81016020851015620039d15750805b601f840160051c820191505b81811015620039f2575f8155600101620039dd565b5050505050565b81516001600160401b0381111562003a155762003a15620026b7565b62003a2d8162003a26845462003643565b84620039aa565b602080601f83116001811462003a63575f841562003a4b5750858301515b5f19600386901b1c1916600185901b17855562003abd565b5f85815260208120601f198616915b8281101562003a935788860151825594840194600190910190840162003a72565b508582101562003ab157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b604081525f62003ad9604083018562002a25565b828103602084015262003aed818562002a25565b95945050505050565b5f825162003b0981846020870162002a01565b919091019291505056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220ee2b34631d0aeafcbca8c09b3d006837becb1e761da7ef1dfde69d83e98a206164736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122099dfd2e82e6430ef2c3892d351d538d37e465b5b3e67e6272faa4f53b60e26a964736f6c63430008180033", + "balance": "0x0" + }, + "0x1670090000000000000000000000000000000004": { + "contractName": "ERC1155Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670090000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167009000000000000000000000000000000004" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220ee2b34631d0aeafcbca8c09b3d006837becb1e761da7ef1dfde69d83e98a206164736f6c63430008180033", + "balance": "0x0" + }, + "0x0167009000000000000000000000000000010096": { + "contractName": "BridgedERC20", + "storage": {}, + "code": "0x60806040526004361061030d575f3560e01c806370a08231116101a3578063981b24d0116100f2578063bb86ef9311610092578063dd62ed3e1161006d578063dd62ed3e14610940578063e30c39781461095f578063f1127ed81461097c578063f2fde38b146109c5575f80fd5b8063bb86ef93146108e3578063c3cda52014610902578063d505accf14610921575f80fd5b8063a457c2d7116100cd578063a457c2d714610867578063a86f9d9e14610886578063a9059cbb146108a5578063b8f2e0c5146108c4575f80fd5b8063981b24d01461080a5780639ab24eb0146108295780639dc29fac14610848575f80fd5b80638456cb591161015d5780638e539e8c116101385780638e539e8c1461079857806391ddadf4146107b757806395d89b41146107e25780639711715a146107f6575f80fd5b80638456cb591461074957806384b0196e1461075d5780638da5cb5b14610784575f80fd5b806370a082311461068e578063715018a6146106c357806379ba5097146106d75780637cf8ed0d146106eb5780637e4746341461070b5780637ecebe001461072a575f80fd5b80633ab76e9f1161025f5780634ee2cd7e11610219578063587cde1e116101f4578063587cde1e146105e35780635c19a95c1461061b5780635c975abb1461063a5780636fcfff451461065a575f80fd5b80634ee2cd7e1461059d5780634f1ef286146105bc57806352d1902d146105cf575f80fd5b80633ab76e9f146105025780633eb6b8cf146105215780633f4ba83a1461054057806340c10f191461055457806349d12605146105735780634bf5d7e914610589575f80fd5b80632e74eb2d116102ca5780633659cfe6116102a55780633659cfe61461046d57806337fbe1121461048c57806339509351146104c45780633a46b1a8146104e3575f80fd5b80632e74eb2d1461040c578063313ce5671461042d5780633644e51514610459575f80fd5b806306fdde0314610311578063095ea7b31461033b5780630ae745481461036a57806318160ddd1461038a57806323b872dd146103a957806326afaadd146103c8575b5f80fd5b34801561031c575f80fd5b506103256109e4565b6040516103329190613c7f565b60405180910390f35b348015610346575f80fd5b5061035a610355366004613ca5565b6109ff565b6040519015158152602001610332565b348015610375575f80fd5b5060fb5461035a90600160a01b900460ff1681565b348015610395575f80fd5b5061012f545b604051908152602001610332565b3480156103b4575f80fd5b5061035a6103c3366004613ccf565b610a18565b3480156103d3575f80fd5b506103ed61022a5461022b546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610332565b348015610417575f80fd5b5061042b610426366004613d0d565b610a3d565b005b348015610438575f80fd5b5061022a54600160a01b900460ff1660405160ff9091168152602001610332565b348015610464575f80fd5b5061039b610a68565b348015610478575f80fd5b5061042b610487366004613d0d565b610a71565b348015610497575f80fd5b5061022c546104ac906001600160a01b031681565b6040516001600160a01b039091168152602001610332565b3480156104cf575f80fd5b5061035a6104de366004613ca5565b610b57565b3480156104ee575f80fd5b5061039b6104fd366004613ca5565b610b78565b34801561050d575f80fd5b506097546104ac906001600160a01b031681565b34801561052c575f80fd5b506104ac61053b366004613d37565b610bf5565b34801561054b575f80fd5b5061042b610c09565b34801561055f575f80fd5b5061042b61056e366004613ca5565b610c88565b34801561057e575f80fd5b5061039b61022b5481565b348015610594575f80fd5b50610325610dd6565b3480156105a8575f80fd5b5061039b6105b7366004613ca5565b610e6e565b61042b6105ca366004613e05565b610ec7565b3480156105da575f80fd5b5061039b610f92565b3480156105ee575f80fd5b506104ac6105fd366004613d0d565b6001600160a01b039081165f9081526101f860205260409020541690565b348015610626575f80fd5b5061042b610635366004613d0d565b611043565b348015610645575f80fd5b5061035a60c954610100900460ff1660021490565b348015610665575f80fd5b50610679610674366004613d0d565b61104d565b60405163ffffffff9091168152602001610332565b348015610699575f80fd5b5061039b6106a8366004613d0d565b6001600160a01b03165f90815261012d602052604090205490565b3480156106ce575f80fd5b5061042b61106f565b3480156106e2575f80fd5b5061042b611080565b3480156106f6575f80fd5b5061022a546104ac906001600160a01b031681565b348015610716575f80fd5b5060fb546104ac906001600160a01b031681565b348015610735575f80fd5b5061039b610744366004613d0d565b6110f7565b348015610754575f80fd5b5061042b611115565b348015610768575f80fd5b50610771611194565b6040516103329796959493929190613e65565b34801561078f575f80fd5b506104ac61122f565b3480156107a3575f80fd5b5061039b6107b2366004613efc565b611242565b3480156107c2575f80fd5b506107cb6112a9565b60405165ffffffffffff9091168152602001610332565b3480156107ed575f80fd5b506103256112b3565b348015610801575f80fd5b5061039b6112c5565b348015610815575f80fd5b5061039b610824366004613efc565b611321565b348015610834575f80fd5b5061039b610843366004613d0d565b611342565b348015610853575f80fd5b5061042b610862366004613ca5565b6113c1565b348015610872575f80fd5b5061035a610881366004613ca5565b611560565b348015610891575f80fd5b506104ac6108a0366004613f13565b6115e5565b3480156108b0575f80fd5b5061035a6108bf366004613ca5565b6115f1565b3480156108cf575f80fd5b5061042b6108de366004613f3d565b6115fe565b3480156108ee575f80fd5b5061042b6108fd366004613f95565b61179b565b34801561090d575f80fd5b5061042b61091c366004614044565b61190d565b34801561092c575f80fd5b5061042b61093b36600461409a565b611a42565b34801561094b575f80fd5b5061039b61095a366004614103565b611ba3565b34801561096a575f80fd5b506065546001600160a01b03166104ac565b348015610987575f80fd5b5061099b61099636600461413a565b611bce565b60408051825163ffffffff1681526020928301516001600160e01b03169281019290925201610332565b3480156109d0575f80fd5b5061042b6109df366004613d0d565b611c50565b60606109fa6109f1611cb6565b61022b54611d47565b905090565b5f33610a0c818585611d96565b60019150505b92915050565b5f33610a25858285611eba565b610a30858585611f32565b60019150505b9392505050565b610a456120ee565b61022c80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6109fa61214d565b6001600160a01b037f0000000000000000000000000167009000000000000000000000000000010096163003610ac25760405162461bcd60e51b8152600401610ab99061416e565b60405180910390fd5b7f00000000000000000000000001670090000000000000000000000000000100966001600160a01b0316610b0a5f805160206144f6833981519152546001600160a01b031690565b6001600160a01b031614610b305760405162461bcd60e51b8152600401610ab9906141ba565b610b3981612156565b604080515f80825260208201909252610b549183919061215e565b50565b5f33610a0c818585610b698383611ba3565b610b73919061421a565b611d96565b5f610b816112a9565b65ffffffffffff168210610bd35760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610ab9565b6001600160a01b0383165f9081526101f960205260409020610a3690836122cd565b5f610c018484846123ae565b949350505050565b610c1d60c954610100900460ff1660021490565b610c3a5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a1610c86335f61249c565b565b6002610c9660c95460ff1690565b60ff1603610cb75760405163dfc60d8560e01b815260040160405180910390fd5b610cc160026124a4565b610cd560c954610100900460ff1660021490565b15610cf35760405163bae6e2a960e01b815260040160405180910390fd5b610cfb6124ba565b15610d195760405163b19aa30f60e01b815260040160405180910390fd5b60fb546001600160a01b03163303610d745760fb546040518281526001600160a01b038481169216907f638edf84937fb2534b47cac985ea84d6ea4f4076315b56ea1c784d26b87e2bcb9060200160405180910390a3610dbe565b610d8d6a195c98cc8c17dd985d5b1d60aa1b60016115e5565b6001600160a01b0316336001600160a01b031614610dbe576040516361fad54f60e11b815260040160405180910390fd5b610dc882826124e3565b610dd260016124a4565b5050565b606043610de16112a9565b65ffffffffffff1614610e365760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f64650000006044820152606401610ab9565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6001600160a01b0382165f90815261015f6020526040812081908190610e959085906124ed565b9150915081610ebc576001600160a01b0385165f90815261012d6020526040902054610ebe565b805b95945050505050565b6001600160a01b037f0000000000000000000000000167009000000000000000000000000000010096163003610f0f5760405162461bcd60e51b8152600401610ab99061416e565b7f00000000000000000000000001670090000000000000000000000000000100966001600160a01b0316610f575f805160206144f6833981519152546001600160a01b031690565b6001600160a01b031614610f7d5760405162461bcd60e51b8152600401610ab9906141ba565b610f8682612156565b610dd28282600161215e565b5f306001600160a01b037f000000000000000000000000016700900000000000000000000000000001009616146110315760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610ab9565b505f805160206144f683398151915290565b610b5433826125dd565b6001600160a01b0381165f9081526101f96020526040812054610a1290612658565b6110776120ee565b610c865f6126c0565b60655433906001600160a01b031681146110ee5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610ab9565b610b54816126c0565b6001600160a01b0381165f9081526101c56020526040812054610a12565b61112960c954610100900460ff1660021490565b156111475760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200160405180910390a1610c8633600161249c565b5f6060805f805f6060610191545f801b1480156111b2575061019254155b6111f65760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610ab9565b6111fe6126d9565b6112066126e9565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f6109fa6033546001600160a01b031690565b5f61124b6112a9565b65ffffffffffff16821061129d5760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b6044820152606401610ab9565b610a126101fa836122cd565b5f6109fa436126f9565b60606109fa6112c061275f565b61276f565b5f6112ce61122f565b6001600160a01b0316336001600160a01b0316141580156112fb575061022c546001600160a01b03163314155b1561131957604051630b1d89d360e41b815260040160405180910390fd5b6109fa6127b8565b5f805f611330846101606124ed565b9150915081610a365761012f54610c01565b6001600160a01b0381165f9081526101f9602052604081205480156113af576001600160a01b0383165f9081526101f96020526040902080545f19830190811061138e5761138e61422d565b5f9182526020909120015464010000000090046001600160e01b03166113b1565b5f5b6001600160e01b03169392505050565b60026113cf60c95460ff1690565b60ff16036113f05760405163dfc60d8560e01b815260040160405180910390fd5b6113fa60026124a4565b61140e60c954610100900460ff1660021490565b1561142c5760405163bae6e2a960e01b815260040160405180910390fd5b6114346124ba565b1561150c57336001600160a01b03831614611462576040516361fad54f60e11b815260040160405180910390fd5b60fb546040518281526001600160a01b038481169216907f638edf84937fb2534b47cac985ea84d6ea4f4076315b56ea1c784d26b87e2bcb9060200160405180910390a360fb546040516340c10f1960e01b81526001600160a01b03848116600483015260248201849052909116906340c10f19906044015f604051808303815f87803b1580156114f1575f80fd5b505af1158015611503573d5f803e3d5ffd5b50505050611556565b6115256a195c98cc8c17dd985d5b1d60aa1b60016115e5565b6001600160a01b0316336001600160a01b03161461155657604051630d85cccf60e11b815260040160405180910390fd5b610dc88282612811565b5f338161156d8286611ba3565b9050838110156115cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ab9565b6115da8286868403611d96565b506001949350505050565b5f610a364684846123ae565b5f33610a0c818585611f32565b600261160c60c95460ff1690565b60ff160361162d5760405163dfc60d8560e01b815260040160405180910390fd5b61163760026124a4565b61164b60c954610100900460ff1660021490565b156116695760405163bae6e2a960e01b815260040160405180910390fd5b6a195c98cc8c17dd985d5b1d60aa1b61168061122f565b6001600160a01b0316336001600160a01b0316141580156116bd57506116a78160016115e5565b6001600160a01b0316336001600160a01b031614155b156116db57604051630d85cccf60e11b815260040160405180910390fd5b60fb546001600160a01b03848116911614801561170a575060fb60149054906101000a900460ff161515821515145b156117285760405163b253fdfd60e01b815260040160405180910390fd5b60fb80546001600160a01b0385166001600160a81b03199091168117600160a01b851515908102919091179092556040805191825260208201929092527fa6b6f959792843a48d9d03d13595f2de7c86ae0ce12ef0fa759dd911b205e565910160405180910390a150610dd260016124a4565b5f54610100900460ff16158080156117b957505f54600160ff909116105b806117d25750303b1580156117d257505f5460ff166001145b6118355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab9565b5f805460ff191660011790558015611856575f805461ff0019166101001790555b6118628686858561281b565b61186c8888612850565b61187682846128af565b61187e6128df565b6118866128df565b61188f82612905565b61022a805461022b87905560ff8616600160a01b026001600160a81b03199091166001600160a01b038916171790558015611903575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b8342111561195d5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606401610ab9565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f906119d6906119ce9060a0016040516020818303038152906040528051906020012061294e565b85858561297a565b90506119e1816129a0565b8614611a2f5760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606401610ab9565b611a3981886125dd565b50505050505050565b83421115611a925760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610ab9565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888611ac08c6129a0565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f611b1a8261294e565b90505f611b298287878761297a565b9050896001600160a01b0316816001600160a01b031614611b8c5760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610ab9565b611b978a8a8a611d96565b50505050505050505050565b6001600160a01b039182165f90815261012e6020908152604080832093909416825291909152205490565b604080518082019091525f80825260208201526001600160a01b0383165f9081526101f960205260409020805463ffffffff8416908110611c1157611c1161422d565b5f9182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b611c586120ee565b606580546001600160a01b0319166001600160a01b038316908117909155611c7e61122f565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60606101308054611cc690614241565b80601f0160208091040260200160405190810160405280929190818152602001828054611cf290614241565b8015611d3d5780601f10611d1457610100808354040283529160200191611d3d565b820191905f5260205f20905b815481529060010190602001808311611d2057829003601f168201915b5050505050905090565b606082515f03611d65575060408051602081019091525f8152610a12565b82611d6f836129c8565b604051602001611d80929190614273565b6040516020818303038152906040529050610a12565b6001600160a01b038316611df85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ab9565b6001600160a01b038216611e595760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ab9565b6001600160a01b038381165f81815261012e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f611ec58484611ba3565b90505f198114611f2c5781811015611f1f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610ab9565b611f2c8484848403611d96565b50505050565b6001600160a01b038316611f965760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ab9565b6001600160a01b038216611ff85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ab9565b612003838383612a58565b6001600160a01b0383165f90815261012d60205260409020548181101561207b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ab9565b6001600160a01b038085165f81815261012d602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906120db9086815260200190565b60405180910390a3611f2c848484612abe565b336120f761122f565b6001600160a01b031614610c865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab9565b5f6109fa612ac9565b610b546120ee565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156121965761219183612b3c565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156121f0575060408051601f3d908101601f191682019092526121ed918101906142d3565b60015b6122535760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610ab9565b5f805160206144f683398151915281146122c15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610ab9565b50612191838383612bd7565b81545f9081816005811115612324575f6122e684612bfb565b6122f090856142ea565b5f88815260209020909150869082015463ffffffff16111561231457809150612322565b61231f81600161421a565b92505b505b8082101561236f575f6123378383612cdf565b5f88815260209020909150869082015463ffffffff16111561235b57809150612369565b61236681600161421a565b92505b50612324565b8015612399575f8681526020902081015f19015464010000000090046001600160e01b031661239b565b5f5b6001600160e01b03169695505050505050565b6097545f906001600160a01b03166123d957604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015612430573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061245491906142fd565b90508115801561246b57506001600160a01b038116155b15610a3657604051632b0d65db60e01b815267ffffffffffffffff8516600482015260248101849052604401610ab9565b610dd26120ee565b60c9805460ff191660ff92909216919091179055565b60fb545f906001600160a01b0316158015906109fa57505060fb54600160a01b900460ff161590565b610dd28282612cf9565b5f805f84116125375760405162461bcd60e51b815260206004820152601660248201527504552433230536e617073686f743a20696420697320360541b6044820152606401610ab9565b61253f612d03565b84111561258e5760405162461bcd60e51b815260206004820152601d60248201527f4552433230536e617073686f743a206e6f6e6578697374656e742069640000006044820152606401610ab9565b5f6125998486612d0e565b845490915081036125b0575f8092509250506125d6565b60018460010182815481106125c7576125c761422d565b905f5260205f20015492509250505b9250929050565b6001600160a01b038281165f8181526101f860208181526040808420805461012d845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611f2c828483612db4565b5f63ffffffff8211156126bc5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610ab9565b5090565b606580546001600160a01b0319169055610b5481612ef0565b60606101938054611cc690614241565b60606101948054611cc690614241565b5f65ffffffffffff8211156126bc5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610ab9565b60606101318054611cc690614241565b606081515f0361278c57505060408051602081019091525f815290565b8160405160200161279d9190614318565b6040516020818303038152906040529050919050565b919050565b5f6127c861016280546001019055565b5f6127d1612d03565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb678160405161280491815260200190565b60405180910390a1919050565b610dd28282612f41565b6128258484612f4b565b8151158061283257508051155b15611f2c5760405163c118d2f360e01b815260040160405180910390fd5b5f54610100900460ff166128765760405162461bcd60e51b8152600401610ab99061433d565b61287f82612f87565b6001600160a01b0381166128a6576040516375cabfef60e11b815260040160405180910390fd5b610dd281612fb7565b5f54610100900460ff166128d55760405162461bcd60e51b8152600401610ab99061433d565b610dd28282613028565b5f54610100900460ff16610c865760405162461bcd60e51b8152600401610ab99061433d565b5f54610100900460ff1661292b5760405162461bcd60e51b8152600401610ab99061433d565b610b5481604051806040016040528060018152602001603160f81b815250613069565b5f610a1261295a61214d565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f612989878787876130ba565b9150915061299681613177565b5095945050505050565b6001600160a01b0381165f9081526101c5602052604090208054600181018255905b50919050565b60605f6129d4836132c0565b60010190505f8167ffffffffffffffff8111156129f3576129f3613d7e565b6040519080825280601f01601f191660200182016040528015612a1d576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612a2757509392505050565b306001600160a01b03831603612a8157604051630183150560e21b815260040160405180910390fd5b612a9560c954610100900460ff1660021490565b15612ab35760405163bae6e2a960e01b815260040160405180910390fd5b612191838383613397565b6121918383836133df565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612af3613411565b612afb61346a565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b0381163b612ba95760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610ab9565b5f805160206144f683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612be08361349b565b5f82511180612bec5750805b1561219157611f2c83836134da565b5f815f03612c0a57505f919050565b5f6001612c16846134ff565b901c6001901b90506001818481612c2f57612c2f614388565b048201901c90506001818481612c4757612c47614388565b048201901c90506001818481612c5f57612c5f614388565b048201901c90506001818481612c7757612c77614388565b048201901c90506001818481612c8f57612c8f614388565b048201901c90506001818481612ca757612ca7614388565b048201901c90506001818481612cbf57612cbf614388565b048201901c9050610a3681828581612cd957612cd9614388565b04613592565b5f612ced600284841861439c565b610a369084841661421a565b610dd282826135a7565b5f6109fa6101625490565b81545f908103612d1f57505f610a12565b82545f905b80821015612d69575f612d378383612cdf565b5f8781526020902090915085908201541115612d5557809150612d63565b612d6081600161421a565b92505b50612d24565b5f82118015612d93575083612d9086612d836001866142ea565b5f91825260209091200190565b54145b15612dac57612da36001836142ea565b92505050610a12565b509050610a12565b816001600160a01b0316836001600160a01b031614158015612dd557505f81115b15612191576001600160a01b03831615612e63576001600160a01b0383165f9081526101f9602052604081208190612e10906136338561363e565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612e58929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615612191576001600160a01b0382165f9081526101f9602052604081208190612e99906137aa8561363e565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612ee1929190918252602082015260400190565b60405180910390a25050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b610dd282826137b5565b6001600160a01b0382161580612f5f575080155b80612f6957504681145b15610dd25760405163c118d2f360e01b815260040160405180910390fd5b612fa56001600160a01b03821615612f9f57816126c0565b336126c0565b5060c9805461ff001916610100179055565b5f54610100900460ff16612fdd5760405162461bcd60e51b8152600401610ab99061433d565b67ffffffffffffffff4611156130065760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f54610100900460ff1661304e5760405162461bcd60e51b8152600401610ab99061433d565b61013061305b8382614406565b506101316121918282614406565b5f54610100900460ff1661308f5760405162461bcd60e51b8152600401610ab99061433d565b61019361309c8382614406565b506101946130aa8282614406565b50505f6101918190556101925550565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156130ef57505f9050600361316e565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613140573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116613168575f6001925092505061316e565b91505f90505b94509492505050565b5f81600481111561318a5761318a6144c6565b036131925750565b60018160048111156131a6576131a66144c6565b036131f35760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab9565b6002816004811115613207576132076144c6565b036132545760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab9565b6003816004811115613268576132686144c6565b03610b545760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab9565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106132fe5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061332a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061334857662386f26fc10000830492506010015b6305f5e1008310613360576305f5e100830492506008015b612710831061337457612710830492506004015b60648310613386576064830492506002015b600a8310610a125760010192915050565b6001600160a01b0383166133b6576133ae826137ce565b612191613802565b6001600160a01b0382166133cd576133ae836137ce565b6133d6836137ce565b612191826137ce565b6001600160a01b038381165f9081526101f8602052604080822054858416835291205461219192918216911683612db4565b5f8061341b6126d9565b805190915015613432578051602090910120919050565b6101915480156134425792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5f806134746126e9565b80519091501561348b578051602090910120919050565b6101925480156134425792915050565b6134a481612b3c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610a36838360405180606001604052806027815260200161451660279139613812565b5f80608083901c1561351357608092831c92015b604083901c1561352557604092831c92015b602083901c1561353757602092831c92015b601083901c1561354957601092831c92015b600883901c1561355b57600892831c92015b600483901c1561356d57600492831c92015b600283901c1561357f57600292831c92015b600183901c15610a125760010192915050565b5f8183106135a05781610a36565b5090919050565b6135b18282613886565b61012f546001600160e01b0310156136245760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608401610ab9565b611f2c6101fa6137aa8361363e565b5f610a3682846142ea565b82545f908190818115613688575f8781526020902082015f190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b0316602082015261369c565b604080518082019091525f80825260208201525b905080602001516001600160e01b031693506136bc84868863ffffffff16565b92505f821180156136e457506136d06112a9565b65ffffffffffff16815f015163ffffffff16145b15613727576136f283613959565b5f8881526020902083015f190180546001600160e01b03929092166401000000000263ffffffff9092169190911790556137a0565b86604051806040016040528061374b61373e6112a9565b65ffffffffffff16612658565b63ffffffff16815260200161375f86613959565b6001600160e01b0390811690915282546001810184555f938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b5f610a36828461421a565b6137bf82826139c1565b611f2c6101fa6136338361363e565b6001600160a01b0381165f90815261015f6020908152604080832061012d90925290912054610b549190613b07565b613b07565b610c866101606137fd61012f5490565b60605f80856001600160a01b03168560405161382e91906144da565b5f60405180830381855af49150503d805f8114613866576040519150601f19603f3d011682016040523d82523d5f602084013e61386b565b606091505b509150915061387c86838387613b4f565b9695505050505050565b6001600160a01b0382166138dc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610ab9565b6138e75f8383612a58565b8061012f5f8282546138f9919061421a565b90915550506001600160a01b0382165f81815261012d60209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610dd25f8383612abe565b5f6001600160e01b038211156126bc5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608401610ab9565b6001600160a01b038216613a215760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610ab9565b613a2c825f83612a58565b6001600160a01b0382165f90815261012d602052604090205481811015613aa05760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610ab9565b6001600160a01b0383165f81815261012d60209081526040808320868603905561012f80548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3612191835f84612abe565b5f613b10612d03565b905080613b1c84613bc7565b1015612191578254600180820185555f858152602080822090930193909355938401805494850181558252902090910155565b60608315613bbd5782515f03613bb6576001600160a01b0385163b613bb65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ab9565b5081610c01565b610c018383613c08565b80545f908103613bd857505f919050565b81548290613be8906001906142ea565b81548110613bf857613bf861422d565b905f5260205f2001549050919050565b815115613c185781518083602001fd5b8060405162461bcd60e51b8152600401610ab99190613c7f565b5f5b83811015613c4c578181015183820152602001613c34565b50505f910152565b5f8151808452613c6b816020860160208601613c32565b601f01601f19169290920160200192915050565b602081525f610a366020830184613c54565b6001600160a01b0381168114610b54575f80fd5b5f8060408385031215613cb6575f80fd5b8235613cc181613c91565b946020939093013593505050565b5f805f60608486031215613ce1575f80fd5b8335613cec81613c91565b92506020840135613cfc81613c91565b929592945050506040919091013590565b5f60208284031215613d1d575f80fd5b8135610a3681613c91565b803580151581146127b3575f80fd5b5f805f60608486031215613d49575f80fd5b833567ffffffffffffffff81168114613d60575f80fd5b925060208401359150613d7560408501613d28565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff80841115613dac57613dac613d7e565b604051601f8501601f19908116603f01168101908282118183101715613dd457613dd4613d7e565b81604052809350858152868686011115613dec575f80fd5b858560208301375f602087830101525050509392505050565b5f8060408385031215613e16575f80fd5b8235613e2181613c91565b9150602083013567ffffffffffffffff811115613e3c575f80fd5b8301601f81018513613e4c575f80fd5b613e5b85823560208401613d92565b9150509250929050565b60ff60f81b881681525f602060e06020840152613e8560e084018a613c54565b8381036040850152613e97818a613c54565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825260208088019350909101905f5b81811015613eea57835183529284019291840191600101613ece565b50909c9b505050505050505050505050565b5f60208284031215613f0c575f80fd5b5035919050565b5f8060408385031215613f24575f80fd5b82359150613f3460208401613d28565b90509250929050565b5f8060408385031215613f4e575f80fd5b8235613f5981613c91565b9150613f3460208401613d28565b803560ff811681146127b3575f80fd5b5f82601f830112613f86575f80fd5b610a3683833560208501613d92565b5f805f805f805f60e0888a031215613fab575f80fd5b8735613fb681613c91565b96506020880135613fc681613c91565b95506040880135613fd681613c91565b945060608801359350613feb60808901613f67565b925060a088013567ffffffffffffffff80821115614007575f80fd5b6140138b838c01613f77565b935060c08a0135915080821115614028575f80fd5b506140358a828b01613f77565b91505092959891949750929550565b5f805f805f8060c08789031215614059575f80fd5b863561406481613c91565b9550602087013594506040870135935061408060608801613f67565b92506080870135915060a087013590509295509295509295565b5f805f805f805f60e0888a0312156140b0575f80fd5b87356140bb81613c91565b965060208801356140cb81613c91565b955060408801359450606088013593506140e760808901613f67565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215614114575f80fd5b823561411f81613c91565b9150602083013561412f81613c91565b809150509250929050565b5f806040838503121561414b575f80fd5b823561415681613c91565b9150602083013563ffffffff8116811461412f575f80fd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610a1257610a12614206565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061425557607f821691505b6020821081036129c257634e487b7160e01b5f52602260045260245ffd5b670213934b233b2b2160c51b81525f8351614295816008850160208801613c32565b634051c55b60df1b60089184019182015283516142b981600d840160208801613c32565b602960f81b600d9290910191820152600e01949350505050565b5f602082840312156142e3575f80fd5b5051919050565b81810381811115610a1257610a12614206565b5f6020828403121561430d575f80fd5b8151610a3681613c91565b5f8251614329818460208701613c32565b610b9d60f21b920191825250600201919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b5f52601260045260245ffd5b5f826143b657634e487b7160e01b5f52601260045260245ffd5b500490565b601f82111561219157805f5260205f20601f840160051c810160208510156143e05750805b601f840160051c820191505b818110156143ff575f81556001016143ec565b5050505050565b815167ffffffffffffffff81111561442057614420613d7e565b6144348161442e8454614241565b846143bb565b602080601f831160018114614467575f84156144505750858301515b5f19600386901b1c1916600185901b1785556144be565b5f85815260208120601f198616915b8281101561449557888601518255948401946001909101908401614476565b50858210156144b257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52602160045260245ffd5b5f82516144eb818460208701613c32565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ec966d93736eefd7f412aea610ad43cc033d1d66fa81be3114e02cf05ae8001664736f6c63430008180033", + "balance": "0x0" + }, + "0x0167009000000000000000000000000000010097": { + "contractName": "BridgedERC721", + "storage": {}, + "code": "0x6080604052600436106101e6575f3560e01c806367e828bf116101085780639dc29fac1161009d578063c87b56dd1161006d578063c87b56dd1461055b578063e30c39781461057a578063e985e9c514610597578063ef8c4ae6146105df578063f2fde38b146105fe575f80fd5b80639dc29fac146104df578063a22cb465146104fe578063a86f9d9e1461051d578063b88d4fde1461053c575f80fd5b80637cf8ed0d116100d85780637cf8ed0d1461047a5780638456cb591461049a5780638da5cb5b146104ae57806395d89b41146104cb575f80fd5b806367e828bf146103ef57806370a0823114610433578063715018a61461045257806379ba509714610466575f80fd5b80633f4ba83a1161017e5780634f1ef2861161014e5780634f1ef2861461038957806352d1902d1461039c5780635c975abb146103b05780636352211e146103d0575f80fd5b80633f4ba83a1461031357806340c10f191461032757806342842e0e1461034657806349d1260514610365575f80fd5b806323b872dd116101b957806323b872dd146102975780633659cfe6146102b65780633ab76e9f146102d55780633eb6b8cf146102f4575f80fd5b806301ffc9a7146101ea57806306fdde031461021e578063081812fc1461023f578063095ea7b314610276575b5f80fd5b3480156101f5575f80fd5b5061020961020436600461245d565b61061d565b60405190151581526020015b60405180910390f35b348015610229575f80fd5b5061023261066e565b60405161021591906124c5565b34801561024a575f80fd5b5061025e6102593660046124d7565b610689565b6040516001600160a01b039091168152602001610215565b348015610281575f80fd5b50610295610290366004612502565b6106af565b005b3480156102a2575f80fd5b506102956102b136600461252c565b6107c8565b3480156102c1575f80fd5b506102956102d036600461256a565b6107f9565b3480156102e0575f80fd5b5060975461025e906001600160a01b031681565b3480156102ff575f80fd5b5061025e61030e366004612594565b6108d6565b34801561031e575f80fd5b506102956108ec565b348015610332575f80fd5b50610295610341366004612502565b61096b565b348015610351575f80fd5b5061029561036036600461252c565b610a3b565b348015610370575f80fd5b5061037b6101605481565b604051908152602001610215565b610295610397366004612678565b610a55565b3480156103a7575f80fd5b5061037b610b20565b3480156103bb575f80fd5b5061020960c954610100900460ff1660021490565b3480156103db575f80fd5b5061025e6103ea3660046124d7565b610bd1565b3480156103fa575f80fd5b5061041461015f54610160546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610215565b34801561043e575f80fd5b5061037b61044d36600461256a565b610c31565b34801561045d575f80fd5b50610295610cb6565b348015610471575f80fd5b50610295610cc7565b348015610485575f80fd5b5061015f5461025e906001600160a01b031681565b3480156104a5575f80fd5b50610295610d3e565b3480156104b9575f80fd5b506033546001600160a01b031661025e565b3480156104d6575f80fd5b50610232610dbd565b3480156104ea575f80fd5b506102956104f9366004612502565b610dcf565b348015610509575f80fd5b506102956105183660046126c5565b610ec9565b348015610528575f80fd5b5061025e6105373660046126f8565b610ed4565b348015610547575f80fd5b50610295610556366004612719565b610ee0565b348015610566575f80fd5b506102326105753660046124d7565b610f18565b348015610585575f80fd5b506065546001600160a01b031661025e565b3480156105a2575f80fd5b506102096105b1366004612781565b6001600160a01b039182165f9081526101326020908152604080832093909416825291909152205460ff1690565b3480156105ea575f80fd5b506102956105f93660046127b8565b610f68565b348015610609575f80fd5b5061029561061836600461256a565b6110b1565b5f6001600160e01b031982166380ac58cd60e01b148061064d57506001600160e01b03198216635b5e139f60e01b145b8061066857506301ffc9a760e01b6001600160e01b03198316145b92915050565b606061068461067b611122565b610160546111b3565b905090565b5f61069382611202565b505f90815261013160205260409020546001600160a01b031690565b5f6106b982610bd1565b9050806001600160a01b0316836001600160a01b03160361072b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610747575061074781336105b1565b6107b95760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610722565b6107c38383611261565b505050565b6107d233826112cf565b6107ee5760405162461bcd60e51b815260040161072290612856565b6107c383838361134d565b6001600160a01b037f00000000000000000000000001670090000000000000000000000000000100971630036108415760405162461bcd60e51b8152600401610722906128a3565b7f00000000000000000000000001670090000000000000000000000000000100976001600160a01b03166108895f80516020612d84833981519152546001600160a01b031690565b6001600160a01b0316146108af5760405162461bcd60e51b8152600401610722906128ef565b6108b8816114bf565b604080515f808252602082019092526108d3918391906114c7565b50565b5f6108e2848484611631565b90505b9392505050565b61090060c954610100900460ff1660021490565b61091d5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a1610969335f61171f565b565b600261097960c95460ff1690565b60ff160361099a5760405163dfc60d8560e01b815260040160405180910390fd5b6109a46002611727565b6109b860c954610100900460ff1660021490565b156109d65760405163bae6e2a960e01b815260040160405180910390fd5b6b195c98cdcc8c57dd985d5b1d60a21b6109f1816001610ed4565b6001600160a01b0316336001600160a01b031614610a2257604051630d85cccf60e11b815260040160405180910390fd5b610a2c838361173d565b50610a376001611727565b5050565b6107c383838360405180602001604052805f815250610ee0565b6001600160a01b037f0000000000000000000000000167009000000000000000000000000000010097163003610a9d5760405162461bcd60e51b8152600401610722906128a3565b7f00000000000000000000000001670090000000000000000000000000000100976001600160a01b0316610ae55f80516020612d84833981519152546001600160a01b031690565b6001600160a01b031614610b0b5760405162461bcd60e51b8152600401610722906128ef565b610b14826114bf565b610a37828260016114c7565b5f306001600160a01b037f00000000000000000000000001670090000000000000000000000000000100971614610bbf5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610722565b505f80516020612d8483398151915290565b5f81815261012f60205260408120546001600160a01b0316806106685760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610722565b5f6001600160a01b038216610c9a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610722565b506001600160a01b03165f908152610130602052604090205490565b610cbe611756565b6109695f6117b0565b60655433906001600160a01b03168114610d355760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610722565b6108d3816117b0565b610d5260c954610100900460ff1660021490565b15610d705760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200160405180910390a161096933600161171f565b6060610684610dca6117c9565b6117d9565b6002610ddd60c95460ff1690565b60ff1603610dfe5760405163dfc60d8560e01b815260040160405180910390fd5b610e086002611727565b610e1c60c954610100900460ff1660021490565b15610e3a5760405163bae6e2a960e01b815260040160405180910390fd5b6b195c98cdcc8c57dd985d5b1d60a21b610e55816001610ed4565b6001600160a01b0316336001600160a01b031614610e8657604051630d85cccf60e11b815260040160405180910390fd5b826001600160a01b0316610e9983610bd1565b6001600160a01b031614610ec05760405163358bf3d960e01b815260040160405180910390fd5b610a2c8261180c565b610a373383836118ae565b5f6108e5468484611631565b610eea33836112cf565b610f065760405162461bcd60e51b815260040161072290612856565b610f128484848461197c565b50505050565b61015f5461016054606091610f38916001600160a01b03909116906119af565b610f41836119f6565b604051602001610f5292919061293b565b6040516020818303038152906040529050919050565b5f54610100900460ff1615808015610f8657505f54600160ff909116105b80610f9f5750303b158015610f9f57505f5460ff166001145b6110025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610722565b5f805460ff191660011790558015611023575f805461ff0019166101001790555b61102d8585611a86565b6110378787611ac2565b6110418284611b21565b61015f80546001600160a01b0319166001600160a01b03871617905561016084905580156110a8575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6110b9611756565b606580546001600160a01b0383166001600160a01b031990911681179091556110ea6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b606061012d805461113290612969565b80601f016020809104026020016040519081016040528092919081815260200182805461115e90612969565b80156111a95780601f10611180576101008083540402835291602001916111a9565b820191905f5260205f20905b81548152906001019060200180831161118c57829003601f168201915b5050505050905090565b606082515f036111d1575060408051602081019091525f8152610668565b826111db836119f6565b6040516020016111ec9291906129a1565b6040516020818303038152906040529050610668565b5f81815261012f60205260409020546001600160a01b03166108d35760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610722565b5f8181526101316020526040902080546001600160a01b0319166001600160a01b038416908117909155819061129682610bd1565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f806112da83610bd1565b9050806001600160a01b0316846001600160a01b0316148061132157506001600160a01b038082165f908152610132602090815260408083209388168352929052205460ff165b806113455750836001600160a01b031661133a84610689565b6001600160a01b0316145b949350505050565b826001600160a01b031661136082610bd1565b6001600160a01b0316146113865760405162461bcd60e51b815260040161072290612a01565b6001600160a01b0382166113e85760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610722565b6113f58383836001611b51565b826001600160a01b031661140882610bd1565b6001600160a01b03161461142e5760405162461bcd60e51b815260040161072290612a01565b5f8181526101316020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652610130855283862080545f190190559087168086528386208054600101905586865261012f90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6108d3611756565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156114fa576107c383611bac565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611554575060408051601f3d908101601f1916820190925261155191810190612a46565b60015b6115b75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610722565b5f80516020612d8483398151915281146116255760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610722565b506107c3838383611c47565b6097545f906001600160a01b031661165c57604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa1580156116b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d79190612a5d565b9050811580156116ee57506001600160a01b038116155b156108e557604051632b0d65db60e01b815267ffffffffffffffff8516600482015260248101849052604401610722565b610a37611756565b60c9805460ff191660ff92909216919091179055565b610a37828260405180602001604052805f815250611c6b565b6033546001600160a01b031633146109695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610722565b606580546001600160a01b03191690556108d381611c9d565b606061012e805461113290612969565b606081515f036117f657505060408051602081019091525f815290565b81604051602001610f529190612a78565b919050565b5f61181682610bd1565b9050611825815f846001611b51565b61182e82610bd1565b5f8381526101316020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552610130845282852080545f1901905587855261012f909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b816001600160a01b0316836001600160a01b03160361190f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610722565b6001600160a01b038381165f8181526101326020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61198784848461134d565b61199384848484611cee565b610f125760405162461bcd60e51b815260040161072290612a9d565b60606119c5836001600160a01b03166014611deb565b6119ce836119f6565b6040516020016119df929190612aef565b604051602081830303815290604052905092915050565b60605f611a0283611f81565b60010190505f8167ffffffffffffffff811115611a2157611a216125db565b6040519080825280601f01601f191660200182016040528015611a4b576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611a5557509392505050565b6001600160a01b0382161580611a9a575080155b80611aa457504681145b15610a375760405163c118d2f360e01b815260040160405180910390fd5b5f54610100900460ff16611ae85760405162461bcd60e51b815260040161072290612b5e565b611af182612058565b6001600160a01b038116611b18576040516375cabfef60e11b815260040160405180910390fd5b610a3781612088565b5f54610100900460ff16611b475760405162461bcd60e51b815260040161072290612b5e565b610a3782826120f9565b306001600160a01b03841603611b7a57604051630183150560e21b815260040160405180910390fd5b611b8e60c954610100900460ff1660021490565b15610f125760405163bae6e2a960e01b815260040160405180910390fd5b6001600160a01b0381163b611c195760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610722565b5f80516020612d8483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611c508361213a565b5f82511180611c5c5750805b156107c357610f128383612179565b611c75838361219e565b611c815f848484611cee565b6107c35760405162461bcd60e51b815260040161072290612a9d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6001600160a01b0384163b15611de057604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611d31903390899088908890600401612ba9565b6020604051808303815f875af1925050508015611d6b575060408051601f3d908101601f19168201909252611d6891810190612bdb565b60015b611dc6573d808015611d98576040519150601f19603f3d011682016040523d82523d5f602084013e611d9d565b606091505b5080515f03611dbe5760405162461bcd60e51b815260040161072290612a9d565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611345565b506001949350505050565b60605f611df9836002612c0a565b611e04906002612c21565b67ffffffffffffffff811115611e1c57611e1c6125db565b6040519080825280601f01601f191660200182016040528015611e46576020820181803683370190505b509050600360fc1b815f81518110611e6057611e60612c34565b60200101906001600160f81b03191690815f1a905350600f60fb1b81600181518110611e8e57611e8e612c34565b60200101906001600160f81b03191690815f1a9053505f611eb0846002612c0a565b611ebb906001612c21565b90505b6001811115611f32576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611eef57611eef612c34565b1a60f81b828281518110611f0557611f05612c34565b60200101906001600160f81b03191690815f1a90535060049490941c93611f2b81612c48565b9050611ebe565b5083156108e55760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610722565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611fbf5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611feb576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061200957662386f26fc10000830492506010015b6305f5e1008310612021576305f5e100830492506008015b612710831061203557612710830492506004015b60648310612047576064830492506002015b600a83106106685760010192915050565b6120766001600160a01b0382161561207057816117b0565b336117b0565b5060c9805461ff001916610100179055565b5f54610100900460ff166120ae5760405162461bcd60e51b815260040161072290612b5e565b67ffffffffffffffff4611156120d75760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f54610100900460ff1661211f5760405162461bcd60e51b815260040161072290612b5e565b61012d61212c8382612ca8565b5061012e6107c38282612ca8565b61214381611bac565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606108e58383604051806060016040528060278152602001612da460279139612337565b6001600160a01b0382166121f45760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610722565b5f81815261012f60205260409020546001600160a01b0316156122595760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610722565b6122665f83836001611b51565b5f81815261012f60205260409020546001600160a01b0316156122cb5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610722565b6001600160a01b0382165f818152610130602090815260408083208054600101905584835261012f90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60605f80856001600160a01b0316856040516123539190612d68565b5f60405180830381855af49150503d805f811461238b576040519150601f19603f3d011682016040523d82523d5f602084013e612390565b606091505b50915091506123a1868383876123ab565b9695505050505050565b606083156124195782515f03612412576001600160a01b0385163b6124125760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610722565b5081611345565b611345838381511561242e5781518083602001fd5b8060405162461bcd60e51b815260040161072291906124c5565b6001600160e01b0319811681146108d3575f80fd5b5f6020828403121561246d575f80fd5b81356108e581612448565b5f5b8381101561249257818101518382015260200161247a565b50505f910152565b5f81518084526124b1816020860160208601612478565b601f01601f19169290920160200192915050565b602081525f6108e5602083018461249a565b5f602082840312156124e7575f80fd5b5035919050565b6001600160a01b03811681146108d3575f80fd5b5f8060408385031215612513575f80fd5b823561251e816124ee565b946020939093013593505050565b5f805f6060848603121561253e575f80fd5b8335612549816124ee565b92506020840135612559816124ee565b929592945050506040919091013590565b5f6020828403121561257a575f80fd5b81356108e5816124ee565b80358015158114611807575f80fd5b5f805f606084860312156125a6575f80fd5b833567ffffffffffffffff811681146125bd575f80fd5b9250602084013591506125d260408501612585565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126125fe575f80fd5b813567ffffffffffffffff80821115612619576126196125db565b604051601f8301601f19908116603f01168101908282118183101715612641576126416125db565b81604052838152866020858801011115612659575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f8060408385031215612689575f80fd5b8235612694816124ee565b9150602083013567ffffffffffffffff8111156126af575f80fd5b6126bb858286016125ef565b9150509250929050565b5f80604083850312156126d6575f80fd5b82356126e1816124ee565b91506126ef60208401612585565b90509250929050565b5f8060408385031215612709575f80fd5b823591506126ef60208401612585565b5f805f806080858703121561272c575f80fd5b8435612737816124ee565b93506020850135612747816124ee565b925060408501359150606085013567ffffffffffffffff811115612769575f80fd5b612775878288016125ef565b91505092959194509250565b5f8060408385031215612792575f80fd5b823561279d816124ee565b915060208301356127ad816124ee565b809150509250929050565b5f805f805f8060c087890312156127cd575f80fd5b86356127d8816124ee565b955060208701356127e8816124ee565b945060408701356127f8816124ee565b935060608701359250608087013567ffffffffffffffff8082111561281b575f80fd5b6128278a838b016125ef565b935060a089013591508082111561283c575f80fd5b5061284989828a016125ef565b9150509295509295509295565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f835161294c818460208801612478565b835190830190612960818360208801612478565b01949350505050565b600181811c9082168061297d57607f821691505b60208210810361299b57634e487b7160e01b5f52602260045260245ffd5b50919050565b670213934b233b2b2160c51b81525f83516129c3816008850160208801612478565b634051c55b60df1b60089184019182015283516129e781600d840160208801612478565b602960f81b600d9290910191820152600e01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b5f60208284031215612a56575f80fd5b5051919050565b5f60208284031215612a6d575f80fd5b81516108e5816124ee565b5f8251612a89818460208701612478565b610b9d60f21b920191825250600201919050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6832ba3432b932bab69d60b91b81525f8351612b12816009850160208801612478565b600160fe1b6009918401918201528351612b3381600a840160208801612478565b712f746f6b656e5552493f75696e743235363d60701b600a9290910191820152601c01949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f906123a19083018461249a565b5f60208284031215612beb575f80fd5b81516108e581612448565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761066857610668612bf6565b8082018082111561066857610668612bf6565b634e487b7160e01b5f52603260045260245ffd5b5f81612c5657612c56612bf6565b505f190190565b601f8211156107c357805f5260205f20601f840160051c81016020851015612c825750805b601f840160051c820191505b81811015612ca1575f8155600101612c8e565b5050505050565b815167ffffffffffffffff811115612cc257612cc26125db565b612cd681612cd08454612969565b84612c5d565b602080601f831160018114612d09575f8415612cf25750858301515b5f19600386901b1c1916600185901b178555612d60565b5f85815260208120601f198616915b82811015612d3757888601518255948401946001909101908401612d18565b5085821015612d5457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f8251612d79818460208701612478565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203f79b375075ab76c20863b31403aa53cc4810d01808c370f49d624c8b1fd8f8164736f6c63430008180033", + "balance": "0x0" + }, + "0x0167009000000000000000000000000000010098": { + "contractName": "BridgedERC1155", + "storage": {}, + "code": "0x6080604052600436106101c4575f3560e01c8063715018a6116100f2578063a86f9d9e11610092578063ef8c4ae611610062578063ef8c4ae61461050a578063f242432a14610529578063f2fde38b14610548578063f5298aca14610567575f80fd5b8063a86f9d9e14610467578063d81d0a1514610486578063e30c3978146104a5578063e985e9c5146104c2575f80fd5b80638456cb59116100cd5780638456cb59146104035780638da5cb5b1461041757806395d89b4114610434578063a22cb46514610448575f80fd5b8063715018a6146103bb57806379ba5097146103cf5780637cf8ed0d146103e3575f80fd5b80633ab76e9f116101685780634e1273f4116101385780634e1273f4146103485780634f1ef2861461037457806352d1902d146103875780635c975abb1461039b575f80fd5b80633ab76e9f146102c85780633eb6b8cf146102ff5780633f4ba83a1461031e57806349d1260514610332575f80fd5b80630e89341c116101a35780630e89341c1461024a578063156e29f6146102695780632eb2c2d61461028a5780633659cfe6146102a9575f80fd5b8062fdd58e146101c857806301ffc9a7146101fa57806306fdde0314610229575b5f80fd5b3480156101d3575f80fd5b506101e76101e236600461276f565b610586565b6040519081526020015b60405180910390f35b348015610205575f80fd5b506102196102143660046127ae565b610620565b60405190151581526020016101f1565b348015610234575f80fd5b5061023d61066f565b6040516101f19190612816565b348015610255575f80fd5b5061023d610264366004612828565b61070c565b348015610274575f80fd5b5061028861028336600461283f565b61079f565b005b348015610295575f80fd5b506102886102a43660046129b5565b610881565b3480156102b4575f80fd5b506102886102c3366004612a5b565b6108cd565b3480156102d3575f80fd5b506097546102e7906001600160a01b031681565b6040516001600160a01b0390911681526020016101f1565b34801561030a575f80fd5b506102e7610319366004612a85565b6109aa565b348015610329575f80fd5b506102886109c0565b34801561033d575f80fd5b506101e76101605481565b348015610353575f80fd5b50610367610362366004612acb565b610a3f565b6040516101f19190612bcb565b610288610382366004612bdd565b610b5e565b348015610392575f80fd5b506101e7610c2d565b3480156103a6575f80fd5b5061021960c954610100900460ff1660021490565b3480156103c6575f80fd5b50610288610cdf565b3480156103da575f80fd5b50610288610cf0565b3480156103ee575f80fd5b5061015f546102e7906001600160a01b031681565b34801561040e575f80fd5b50610288610d67565b348015610422575f80fd5b506033546001600160a01b03166102e7565b34801561043f575f80fd5b5061023d610de6565b348015610453575f80fd5b50610288610462366004612c1f565b610e7a565b348015610472575f80fd5b506102e7610481366004612c52565b610e85565b348015610491575f80fd5b506102886104a0366004612c73565b610e91565b3480156104b0575f80fd5b506065546001600160a01b03166102e7565b3480156104cd575f80fd5b506102196104dc366004612ce3565b6001600160a01b039182165f90815261012e6020908152604080832093909416825291909152205460ff1690565b348015610515575f80fd5b50610288610524366004612d1a565b610f63565b348015610534575f80fd5b50610288610543366004612db7565b6110d0565b348015610553575f80fd5b50610288610562366004612a5b565b611115565b348015610572575f80fd5b5061028861058136600461283f565b611186565b5f6001600160a01b0383166105f55760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b505f81815261012d602090815260408083206001600160a01b03861684529091529020545b92915050565b5f6001600160e01b03198216636cdb3d1360e11b148061065057506001600160e01b031982166303a24d0760e21b145b8061061a57506301ffc9a760e01b6001600160e01b031983161461061a565b6060610707610162805461068290612e1a565b80601f01602080910402602001604051908101604052809291908181526020018280546106ae90612e1a565b80156106f95780601f106106d0576101008083540402835291602001916106f9565b820191905f5260205f20905b8154815290600101906020018083116106dc57829003601f168201915b505050505061016054611249565b905090565b606061012f805461071c90612e1a565b80601f016020809104026020016040519081016040528092919081815260200182805461074890612e1a565b80156107935780601f1061076a57610100808354040283529160200191610793565b820191905f5260205f20905b81548152906001019060200180831161077657829003601f168201915b50505050509050919050565b60026107ad60c95460ff1690565b60ff16036107ce5760405163dfc60d8560e01b815260040160405180910390fd5b6107d86002611298565b6107ec60c954610100900460ff1660021490565b1561080a5760405163bae6e2a960e01b815260040160405180910390fd5b6c195c98cc4c4d4d57dd985d5b1d609a1b610826816001610e85565b6001600160a01b0316336001600160a01b03161461085757604051630d85cccf60e11b815260040160405180910390fd5b61087184848460405180602001604052805f8152506112ae565b5061087c6001611298565b505050565b6001600160a01b03851633148061089d575061089d85336104dc565b6108b95760405162461bcd60e51b81526004016105ec90612e52565b6108c6858585858561138b565b5050505050565b6001600160a01b037f00000000000000000000000001670090000000000000000000000000000100981630036109155760405162461bcd60e51b81526004016105ec90612ea0565b7f00000000000000000000000001670090000000000000000000000000000100986001600160a01b031661095d5f80516020613514833981519152546001600160a01b031690565b6001600160a01b0316146109835760405162461bcd60e51b81526004016105ec90612eec565b61098c8161152e565b604080515f808252602082019092526109a791839190611536565b50565b5f6109b68484846116a0565b90505b9392505050565b6109d460c954610100900460ff1660021490565b6109f15760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a1610a3d335f61178c565b565b60608151835114610aa45760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016105ec565b5f83516001600160401b03811115610abe57610abe612871565b604051908082528060200260200182016040528015610ae7578160200160208202803683370190505b5090505f5b8451811015610b5657610b31858281518110610b0a57610b0a612f38565b6020026020010151858381518110610b2457610b24612f38565b6020026020010151610586565b828281518110610b4357610b43612f38565b6020908102919091010152600101610aec565b509392505050565b6001600160a01b037f0000000000000000000000000167009000000000000000000000000000010098163003610ba65760405162461bcd60e51b81526004016105ec90612ea0565b7f00000000000000000000000001670090000000000000000000000000000100986001600160a01b0316610bee5f80516020613514833981519152546001600160a01b031690565b6001600160a01b031614610c145760405162461bcd60e51b81526004016105ec90612eec565b610c1d8261152e565b610c2982826001611536565b5050565b5f306001600160a01b037f00000000000000000000000001670090000000000000000000000000000100981614610ccc5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016105ec565b505f805160206135148339815191525b90565b610ce7611790565b610a3d5f6117ea565b60655433906001600160a01b03168114610d5e5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105ec565b6109a7816117ea565b610d7b60c954610100900460ff1660021490565b15610d995760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200160405180910390a1610a3d33600161178c565b60606107076101618054610df990612e1a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2590612e1a565b8015610e705780601f10610e4757610100808354040283529160200191610e70565b820191905f5260205f20905b815481529060010190602001808311610e5357829003601f168201915b5050505050611803565b610c2933838361184c565b5f6109b94684846116a0565b6002610e9f60c95460ff1690565b60ff1603610ec05760405163dfc60d8560e01b815260040160405180910390fd5b610eca6002611298565b610ede60c954610100900460ff1660021490565b15610efc5760405163bae6e2a960e01b815260040160405180910390fd5b6c195c98cc4c4d4d57dd985d5b1d609a1b610f18816001610e85565b6001600160a01b0316336001600160a01b031614610f4957604051630d85cccf60e11b815260040160405180910390fd5b61087184848460405180602001604052805f81525061192c565b5f54610100900460ff1615808015610f8157505f54600160ff909116105b80610f9a5750303b158015610f9a57505f5460ff166001145b610ffd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105ec565b5f805460ff19166001179055801561101e575f805461ff0019166101001790555b6110288585611a74565b6110328787611ab0565b61104461103f8686611b0f565b611b56565b61015f80546001600160a01b0319166001600160a01b0387161790556101608490556101616110738482612f90565b506101626110818382612f90565b5080156110c7575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6001600160a01b0385163314806110ec57506110ec85336104dc565b6111085760405162461bcd60e51b81526004016105ec90612e52565b6108c68585858585611b85565b61111d611790565b606580546001600160a01b0383166001600160a01b0319909116811790915561114e6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600261119460c95460ff1690565b60ff16036111b55760405163dfc60d8560e01b815260040160405180910390fd5b6111bf6002611298565b6111d360c954610100900460ff1660021490565b156111f15760405163bae6e2a960e01b815260040160405180910390fd5b6c195c98cc4c4d4d57dd985d5b1d609a1b61120d816001610e85565b6001600160a01b0316336001600160a01b03161461123e57604051630d85cccf60e11b815260040160405180910390fd5b610871848484611cbf565b606082515f03611267575060408051602081019091525f815261061a565b8261127183611e4e565b60405160200161128292919061304b565b604051602081830303815290604052905061061a565b60c9805460ff191660ff92909216919091179055565b6001600160a01b0384166112d45760405162461bcd60e51b81526004016105ec906130ab565b335f6112df85611edd565b90505f6112eb85611edd565b90506112fb835f89858589611f26565b5f86815261012d602090815260408083206001600160a01b038b1684529091528120805487929061132d908490613100565b909155505060408051878152602081018790526001600160a01b03808a16925f92918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46110c7835f89898989611f81565b81518351146113ac5760405162461bcd60e51b81526004016105ec90613113565b6001600160a01b0384166113d25760405162461bcd60e51b81526004016105ec9061315b565b336113e1818787878787611f26565b5f5b84518110156114c0575f8582815181106113ff576113ff612f38565b602002602001015190505f85838151811061141c5761141c612f38565b6020908102919091018101515f84815261012d835260408082206001600160a01b038e16835290935291909120549091508181101561146d5760405162461bcd60e51b81526004016105ec906131a0565b5f83815261012d602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906114ac908490613100565b9091555050600190930192506113e3915050565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516115109291906131ea565b60405180910390a46115268187878787876120db565b505050505050565b6109a7611790565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156115695761087c83612195565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156115c3575060408051601f3d908101601f191682019092526115c091810190613217565b60015b6116265760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016105ec565b5f8051602061351483398151915281146116945760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016105ec565b5061087c838383612230565b6097545f906001600160a01b03166116cb57604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015611721573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611745919061322e565b90508115801561175c57506001600160a01b038116155b156109b957604051632b0d65db60e01b81526001600160401b0385166004820152602481018490526044016105ec565b610c295b6033546001600160a01b03163314610a3d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105ec565b606580546001600160a01b03191690556109a78161225a565b606081515f0361182057505060408051602081019091525f815290565b816040516020016118319190613249565b6040516020818303038152906040529050919050565b919050565b816001600160a01b0316836001600160a01b0316036118bf5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016105ec565b6001600160a01b038381165f81815261012e6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0384166119525760405162461bcd60e51b81526004016105ec906130ab565b81518351146119735760405162461bcd60e51b81526004016105ec90613113565b33611982815f87878787611f26565b5f5b8451811015611a0e5783818151811061199f5761199f612f38565b602002602001015161012d5f8784815181106119bd576119bd612f38565b602002602001015181526020019081526020015f205f886001600160a01b03166001600160a01b031681526020019081526020015f205f828254611a019190613100565b9091555050600101611984565b50846001600160a01b03165f6001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611a5e9291906131ea565b60405180910390a46108c6815f878787876120db565b6001600160a01b0382161580611a88575080155b80611a9257504681145b15610c295760405163c118d2f360e01b815260040160405180910390fd5b5f54610100900460ff16611ad65760405162461bcd60e51b81526004016105ec9061326e565b611adf826122ab565b6001600160a01b038116611b06576040516375cabfef60e11b815260040160405180910390fd5b610c29816122db565b6060611b25836001600160a01b0316601461234b565b611b2e83611e4e565b604051602001611b3f9291906132b9565b604051602081830303815290604052905092915050565b5f54610100900460ff16611b7c5760405162461bcd60e51b81526004016105ec9061326e565b6109a7816124e0565b6001600160a01b038416611bab5760405162461bcd60e51b81526004016105ec9061315b565b335f611bb685611edd565b90505f611bc285611edd565b9050611bd2838989858589611f26565b5f86815261012d602090815260408083206001600160a01b038c16845290915290205485811015611c155760405162461bcd60e51b81526004016105ec906131a0565b5f87815261012d602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290611c54908490613100565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611cb4848a8a8a8a8a611f81565b505050505050505050565b6001600160a01b038316611d215760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016105ec565b335f611d2c84611edd565b90505f611d3884611edd565b9050611d5683875f858560405180602001604052805f815250611f26565b5f85815261012d602090815260408083206001600160a01b038a16845290915290205484811015611dd55760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b60648201526084016105ec565b5f86815261012d602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a460408051602081019091525f90526110c7565b60605f611e5a8361250f565b60010190505f816001600160401b03811115611e7857611e78612871565b6040519080825280601f01601f191660200182016040528015611ea2576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611eac57509392505050565b6040805160018082528183019092526060915f91906020808301908036833701905050905082815f81518110611f1557611f15612f38565b602090810291909101015292915050565b306001600160a01b03851603611f4f57604051630183150560e21b815260040160405180910390fd5b611f6360c954610100900460ff1660021490565b156115265760405163bae6e2a960e01b815260040160405180910390fd5b6001600160a01b0384163b156115265760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611fc59089908990889088908890600401613328565b6020604051808303815f875af1925050508015611fff575060408051601f3d908101601f19168201909252611ffc9181019061336c565b60015b6120ab5761200b613387565b806308c379a003612044575061201f61339f565b8061202a5750612046565b8060405162461bcd60e51b81526004016105ec9190612816565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016105ec565b6001600160e01b0319811663f23a6e6160e01b146110c75760405162461bcd60e51b81526004016105ec90613427565b6001600160a01b0384163b156115265760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061211f908990899088908890889060040161346f565b6020604051808303815f875af1925050508015612159575060408051601f3d908101601f191682019092526121569181019061336c565b60015b6121655761200b613387565b6001600160e01b0319811663bc197c8160e01b146110c75760405162461bcd60e51b81526004016105ec90613427565b6001600160a01b0381163b6122025760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105ec565b5f8051602061351483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612239836125e6565b5f825111806122455750805b1561087c576122548383612625565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6122c96001600160a01b038216156122c357816117ea565b336117ea565b5060c9805461ff001916610100179055565b5f54610100900460ff166123015760405162461bcd60e51b81526004016105ec9061326e565b6001600160401b034611156123295760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b60605f6123598360026134cc565b612364906002613100565b6001600160401b0381111561237b5761237b612871565b6040519080825280601f01601f1916602001820160405280156123a5576020820181803683370190505b509050600360fc1b815f815181106123bf576123bf612f38565b60200101906001600160f81b03191690815f1a905350600f60fb1b816001815181106123ed576123ed612f38565b60200101906001600160f81b03191690815f1a9053505f61240f8460026134cc565b61241a906001613100565b90505b6001811115612491576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061244e5761244e612f38565b1a60f81b82828151811061246457612464612f38565b60200101906001600160f81b03191690815f1a90535060049490941c9361248a816134e3565b905061241d565b5083156109b95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ec565b5f54610100900460ff166125065760405162461bcd60e51b81526004016105ec9061326e565b6109a78161264a565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061254d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612579576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061259757662386f26fc10000830492506010015b6305f5e10083106125af576305f5e100830492506008015b61271083106125c357612710830492506004015b606483106125d5576064830492506002015b600a831061061a5760010192915050565b6125ef81612195565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606109b9838360405180606001604052806027815260200161353460279139612657565b61012f610c298282612f90565b60605f80856001600160a01b03168560405161267391906134f8565b5f60405180830381855af49150503d805f81146126ab576040519150601f19603f3d011682016040523d82523d5f602084013e6126b0565b606091505b50915091506126c1868383876126cb565b9695505050505050565b606083156127395782515f03612732576001600160a01b0385163b6127325760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105ec565b5081612743565b612743838361274b565b949350505050565b81511561202a5781518083602001fd5b6001600160a01b03811681146109a7575f80fd5b5f8060408385031215612780575f80fd5b823561278b8161275b565b946020939093013593505050565b6001600160e01b0319811681146109a7575f80fd5b5f602082840312156127be575f80fd5b81356109b981612799565b5f5b838110156127e35781810151838201526020016127cb565b50505f910152565b5f81518084526128028160208601602086016127c9565b601f01601f19169290920160200192915050565b602081525f6109b960208301846127eb565b5f60208284031215612838575f80fd5b5035919050565b5f805f60608486031215612851575f80fd5b833561285c8161275b565b95602085013595506040909401359392505050565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f191681016001600160401b03811182821017156128aa576128aa612871565b6040525050565b5f6001600160401b038211156128c9576128c9612871565b5060051b60200190565b5f82601f8301126128e2575f80fd5b813560206128ef826128b1565b6040516128fc8282612885565b80915083815260208101915060208460051b87010193508684111561291f575f80fd5b602086015b8481101561293b5780358352918301918301612924565b509695505050505050565b5f82601f830112612955575f80fd5b81356001600160401b0381111561296e5761296e612871565b604051612985601f8301601f191660200182612885565b818152846020838601011115612999575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a086880312156129c9575f80fd5b85356129d48161275b565b945060208601356129e48161275b565b935060408601356001600160401b03808211156129ff575f80fd5b612a0b89838a016128d3565b94506060880135915080821115612a20575f80fd5b612a2c89838a016128d3565b93506080880135915080821115612a41575f80fd5b50612a4e88828901612946565b9150509295509295909350565b5f60208284031215612a6b575f80fd5b81356109b98161275b565b80358015158114611847575f80fd5b5f805f60608486031215612a97575f80fd5b83356001600160401b0381168114612aad575f80fd5b925060208401359150612ac260408501612a76565b90509250925092565b5f8060408385031215612adc575f80fd5b82356001600160401b0380821115612af2575f80fd5b818501915085601f830112612b05575f80fd5b81356020612b12826128b1565b604051612b1f8282612885565b83815260059390931b8501820192828101915089841115612b3e575f80fd5b948201945b83861015612b65578535612b568161275b565b82529482019490820190612b43565b96505086013592505080821115612b7a575f80fd5b50612b87858286016128d3565b9150509250929050565b5f815180845260208085019450602084015f5b83811015612bc057815187529582019590820190600101612ba4565b509495945050505050565b602081525f6109b96020830184612b91565b5f8060408385031215612bee575f80fd5b8235612bf98161275b565b915060208301356001600160401b03811115612c13575f80fd5b612b8785828601612946565b5f8060408385031215612c30575f80fd5b8235612c3b8161275b565b9150612c4960208401612a76565b90509250929050565b5f8060408385031215612c63575f80fd5b82359150612c4960208401612a76565b5f805f60608486031215612c85575f80fd5b8335612c908161275b565b925060208401356001600160401b0380821115612cab575f80fd5b612cb7878388016128d3565b93506040860135915080821115612ccc575f80fd5b50612cd9868287016128d3565b9150509250925092565b5f8060408385031215612cf4575f80fd5b8235612cff8161275b565b91506020830135612d0f8161275b565b809150509250929050565b5f805f805f8060c08789031215612d2f575f80fd5b8635612d3a8161275b565b95506020870135612d4a8161275b565b94506040870135612d5a8161275b565b93506060870135925060808701356001600160401b0380821115612d7c575f80fd5b612d888a838b01612946565b935060a0890135915080821115612d9d575f80fd5b50612daa89828a01612946565b9150509295509295509295565b5f805f805f60a08688031215612dcb575f80fd5b8535612dd68161275b565b94506020860135612de68161275b565b9350604086013592506060860135915060808601356001600160401b03811115612e0e575f80fd5b612a4e88828901612946565b600181811c90821680612e2e57607f821691505b602082108103612e4c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b601f82111561087c57805f5260205f20601f840160051c81016020851015612f715750805b601f840160051c820191505b818110156108c6575f8155600101612f7d565b81516001600160401b03811115612fa957612fa9612871565b612fbd81612fb78454612e1a565b84612f4c565b602080601f831160018114612ff0575f8415612fd95750858301515b5f19600386901b1c1916600185901b178555611526565b5f85815260208120601f198616915b8281101561301e57888601518255948401946001909101908401612fff565b508582101561303b57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b670213934b233b2b2160c51b81525f835161306d8160088501602088016127c9565b634051c55b60df1b600891840191820152835161309181600d8401602088016127c9565b602960f81b600d9290910191820152600e01949350505050565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561061a5761061a6130ec565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081525f6131fc6040830185612b91565b828103602084015261320e8185612b91565b95945050505050565b5f60208284031215613227575f80fd5b5051919050565b5f6020828403121561323e575f80fd5b81516109b98161275b565b5f825161325a8184602087016127c9565b610b9d60f21b920191825250600201919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6832ba3432b932bab69d60b91b81525f83516132dc8160098501602088016127c9565b600160fe1b60099184019182015283516132fd81600a8401602088016127c9565b712f746f6b656e5552493f75696e743235363d60701b600a9290910191820152601c01949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f90613361908301846127eb565b979650505050505050565b5f6020828403121561337c575f80fd5b81516109b981612799565b5f60033d1115610cdc5760045f803e505f5160e01c90565b5f60443d10156133ac5790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156133db57505050505090565b82850191508151818111156133f35750505050505090565b843d870101602082850101111561340d5750505050505090565b61341c60208286010187612885565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b0386811682528516602082015260a0604082018190525f9061349a90830186612b91565b82810360608401526134ac8186612b91565b905082810360808401526134c081856127eb565b98975050505050505050565b808202811582820484141761061a5761061a6130ec565b5f816134f1576134f16130ec565b505f190190565b5f82516135098184602087016127c9565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f0bffdb132665b3a5f95537107ba4fba343a91059f2539e704cb09cb4f121f8964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167009000000000000000000000000000000005": { + "contractName": "SignalServiceImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x60806040526004361061017b575f3560e01c8063715018a6116100cd5780639b527cfa11610087578063e30c397811610062578063e30c397814610479578063f09a401614610496578063f2fde38b146104b5578063fe9fbb80146104d4575f80fd5b80639b527cfa146103fd578063a86f9d9e1461041c578063dfc8ff1d1461043b575f80fd5b8063715018a61461036657806379ba50971461037a5780638456cb591461038e5780638da5cb5b146103a2578063910af6ed146103bf57806391f3f74b146103de575f80fd5b80633eb6b8cf116101385780634f90a674116101135780634f90a674146102e657806352d1902d146103135780635c975abb1461032757806366ca2bc014610347575f80fd5b80633eb6b8cf146102a05780633f4ba83a146102bf5780634f1ef286146102d3575f80fd5b80632d1fb3891461017f57806332676bc6146101a0578063355bcc3d146101d45780633659cfe61461022b5780633ab76e9f1461024a5780633ced0e0814610281575b5f80fd5b34801561018a575f80fd5b5061019e6101993660046135c3565b610502565b005b3480156101ab575f80fd5b506101bf6101ba3660046135f6565b6105a8565b60405190151581526020015b60405180910390f35b3480156101df575f80fd5b506102136101ee366004613636565b60fb60209081525f92835260408084209091529082529020546001600160401b031681565b6040516001600160401b0390911681526020016101cb565b348015610236575f80fd5b5061019e610245366004613650565b6105be565b348015610255575f80fd5b50609754610269906001600160a01b031681565b6040516001600160a01b0390911681526020016101cb565b34801561028c575f80fd5b506101bf61029b36600461366b565b6106a4565b3480156102ab575f80fd5b506102696102ba3660046136ac565b6106eb565b3480156102ca575f80fd5b5061019e610701565b61019e6102e13660046137bc565b610780565b3480156102f1575f80fd5b5061030561030036600461366b565b61084f565b6040519081526020016101cb565b34801561031e575f80fd5b50610305610895565b348015610332575f80fd5b506101bf60c954610100900460ff1660021490565b348015610352575f80fd5b50610305610361366004613808565b610946565b348015610371575f80fd5b5061019e610952565b348015610385575f80fd5b5061019e610963565b348015610399575f80fd5b5061019e6109da565b3480156103ad575f80fd5b506033546001600160a01b0316610269565b3480156103ca575f80fd5b5061019e6103d936600461381f565b610a59565b3480156103e9575f80fd5b506103056103f83660046138b3565b610cf3565b348015610408575f80fd5b506103056104173660046138ef565b610d5e565b348015610427575f80fd5b5061026961043636600461391f565b610d8a565b348015610446575f80fd5b5061045a6104553660046138ef565b610d96565b604080516001600160401b0390931683526020830191909152016101cb565b348015610484575f80fd5b506065546001600160a01b0316610269565b3480156104a1575f80fd5b5061019e6104b0366004613940565b610e2a565b3480156104c0575f80fd5b5061019e6104cf366004613650565b610f39565b3480156104df575f80fd5b506101bf6104ee366004613650565b60fc6020525f908152604090205460ff1681565b61050a610faa565b6001600160a01b0382165f90815260fc602052604090205481151560ff90911615150361054a576040516398f26f4560e01b815260040160405180910390fd5b6001600160a01b0382165f81815260fc6020908152604091829020805460ff191685151590811790915591519182527f4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf910160405180910390a25050565b5f6105b38383611004565b151590505b92915050565b6001600160a01b037f000000000000000000000000016700900000000000000000000000000000000516300361060f5760405162461bcd60e51b815260040161060690613977565b60405180910390fd5b7f00000000000000000000000001670090000000000000000000000000000000056001600160a01b03166106575f80516020613fd6833981519152546001600160a01b031690565b6001600160a01b03161461067d5760405162461bcd60e51b8152600401610606906139c3565b61068681611066565b604080515f808252602082019092526106a19183919061106e565b50565b5f818082036106c657604051630426d36960e31b815260040160405180910390fd5b5f6106d2878787610d5e565b9050836106df3083611004565b14979650505050505050565b5f6106f78484846111d8565b90505b9392505050565b61071560c954610100900460ff1660021490565b6107325760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a161077e335f6112c4565b565b6001600160a01b037f00000000000000000000000001670090000000000000000000000000000000051630036107c85760405162461bcd60e51b815260040161060690613977565b7f00000000000000000000000001670090000000000000000000000000000000056001600160a01b03166108105f80516020613fd6833981519152546001600160a01b031690565b6001600160a01b0316146108365760405162461bcd60e51b8152600401610606906139c3565b61083f82611066565b61084b8282600161106e565b5050565b335f90815260fc602052604081205460ff1661087e57604051631f67751f60e01b815260040160405180910390fd5b61088a858585856112dd565b90505b949350505050565b5f306001600160a01b037f000000000000000000000000016700900000000000000000000000000000000516146109345760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610606565b505f80516020613fd683398151915290565b5f6105b83383846113bf565b61095a610faa565b61077e5f611498565b60655433906001600160a01b031681146109d15760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610606565b6106a181611498565b6109ee60c954610100900460ff1660021490565b15610a0c5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200160405180910390a161077e3360016112c4565b836001600160a01b038116610a81576040516327e0ab1560e21b815260040160405180910390fd5b835f819003610aa357604051630426d36960e31b815260040160405180910390fd5b5f610ab084860186613abe565b905080515f03610ad357604051630b92daef60e21b815260040160405180910390fd5b878787805f610af4856d7369676e616c5f7365727669636560901b836106eb565b9050610b2e6040805160c0810182525f80825260208201819052918101829052906060820190815260200160608152602001606081525090565b5f5b8751811015610cae57878181518110610b4b57610b4b613bfc565b602002602001015191505f610b648888888887896114b1565b90505f60018a51610b759190613c24565b831490508015610bb15783516001600160401b03164614610ba9576040516338bf822760e21b815260040160405180910390fd5b309450610c10565b83516001600160401b03161580610bd1575083516001600160401b031646145b15610bef57604051637556223560e11b815260040160405180910390fd5b8351610c0d906d7369676e616c5f7365727669636560901b5f6106eb565b94505b5f8460800151515f14159050610c2e858b8760200151868587611550565b5f81610c5a577fc6cdc4f2acf13acb10f410085b821f7b7113b303e9a4799023f928317396aaf5610c7c565b7f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da1695b9050610c8d8b828860200151610d5e565b985085604001519750855f01519a5086995050505050806001019050610b30565b50821580610cc55750610cc13085611004565b8314155b15610ce35760405163738afa0560e01b815260040160405180910390fd5b5050505050505050505050505050565b6040516514d251d3905360d21b60208201526001600160c01b031960c085901b1660268201526bffffffffffffffffffffffff19606084901b16602e820152604281018290525f906062015b6040516020818303038152906040528051906020012090509392505050565b604080516001600160401b03808616602083015291810184905290821660608201525f90608001610d3f565b5f6106fa4684846111d8565b5f80826001600160401b03165f03610dd2576001600160401b038086165f90815260fb6020908152604080832088845290915290205416610dd4565b825b91506001600160401b03821615610e22575f610df1868685610d5e565b9050610dfd3082611004565b91505f829003610e205760405163738afa0560e01b815260040160405180910390fd5b505b935093915050565b5f54610100900460ff1615808015610e4857505f54600160ff909116105b80610e615750303b158015610e6157505f5460ff166001145b610ec45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610606565b5f805460ff191660011790558015610ee5575f805461ff0019166101001790555b610eef8383611662565b8015610f34575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610f41610faa565b606580546001600160a01b0383166001600160a01b03199091168117909155610f726033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b0316331461077e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610606565b5f826001600160a01b03811661102d576040516327e0ab1560e21b815260040160405180910390fd5b825f81900361104f57604051630426d36960e31b815260040160405180910390fd5b5f61105b468787610cf3565b549695505050505050565b6106a1610faa565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110a157610f34836116c1565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110fb575060408051601f3d908101601f191682019092526110f891810190613c37565b60015b61115e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610606565b5f80516020613fd683398151915281146111cc5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610606565b50610f3483838361175c565b6097545f906001600160a01b031661120357604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015611259573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127d9190613c4e565b90508115801561129457506001600160a01b038116155b156106fa57604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610606565b60405163198bb9dd60e11b815260040160405180910390fd5b5f6112e9858585610d5e565b90506112f63082846113bf565b506001600160401b038581165f90815260fb6020908152604080832088845290915290205481851691161015611360576001600160401b038581165f90815260fb602090815260408083208884529091529020805467ffffffffffffffff19169185169190911790555b83836001600160401b0316866001600160401b03167fde247c825b1fb2d7ff9e0e771cba6f9e757ad04479fcdc135d88ae91fd50b37d85856040516113af929190918252602082015260400190565b60405180910390a4949350505050565b5f836001600160a01b0381166113e8576040516327e0ab1560e21b815260040160405180910390fd5b835f81900361140a57604051630426d36960e31b815260040160405180910390fd5b835f81900361142c57604051630426d36960e31b815260040160405180910390fd5b611437468888610cf3565b858155604080516001600160a01b038a16815260208101899052908101829052606081018790529094507f0ad2d108660a211f47bf7fb43a0443cae181624995d3d42b88ee6879d200e9739060800160405180910390a15050509392505050565b606580546001600160a01b03191690556106a181611786565b5f856001600160a01b0381166114da576040516327e0ab1560e21b815260040160405180910390fd5b855f8190036114fc57604051630426d36960e31b815260040160405180910390fd5b855f81900361151e57604051630426d36960e31b815260040160405180910390fd5b6115428660400151866115328d8d8d610cf3565b8a8a608001518b60a001516117d7565b9a9950505050505050505050565b5f60038760600151600381111561156957611569613c69565b148061158a575060028760600151600381111561158857611588613c69565b145b90508080156115965750825b80156115a0575081155b156115d7576115d5867f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da169878a604001516112dd565b505b5f6003886060015160038111156115f0576115f0613c69565b1480611611575060018860600151600381111561160f5761160f613c69565b145b905080801561162557508380611625575082155b1561165857611656877fc6cdc4f2acf13acb10f410085b821f7b7113b303e9a4799023f928317396aaf588886112dd565b505b5050505050505050565b5f54610100900460ff166116885760405162461bcd60e51b815260040161060690613c7d565b611691826118e4565b6001600160a01b0381166116b8576040516375cabfef60e11b815260040160405180910390fd5b61084b81611914565b6001600160a01b0381163b61172e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610606565b5f80516020613fd683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61176583611984565b5f825111806117715750805b15610f345761178083836119c3565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f82515f1461187f576040516bffffffffffffffffffffffff19606088901b1660208201525f9061181b90603401604051602081830303815290604052858a6119e8565b905080515f0361183e57604051630414cd5b60e31b815260040160405180910390fd5b5f61184882611a0a565b905061186d8160028151811061186057611860613bfc565b6020026020010151611a1d565b61187690613cc8565b92505050611882565b50855b5f6118b98660405160200161189991815260200190565b60408051601f198184030181529190526118b287611b3d565b8585611b50565b9050806118d957604051638d9a4db360e01b815260040160405180910390fd5b509695505050505050565b6119026001600160a01b038216156118fc5781611498565b33611498565b5060c9805461ff001916610100179055565b5f54610100900460ff1661193a5760405162461bcd60e51b815260040161060690613c7d565b6001600160401b034611156119625760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b61198d816116c1565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606106fa8383604051806060016040528060278152602001613ff660279139611b73565b60605f6119f485611bdd565b9050611a01818585611c0f565b95945050505050565b60606105b8611a188361247c565b6124cd565b60605f805f611a2b856126ea565b919450925090505f816001811115611a4557611a45613c69565b14611ab85760405162461bcd60e51b815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d000000000000006064820152608401610606565b611ac28284613cee565b855114611b2e5760405162461bcd60e51b815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527330b71034b73b30b634b2103932b6b0b4b73232b960611b6064820152608401610606565b611a0185602001518484612d91565b60606105b8611b4b83612e21565b612f3c565b5f80611b5b86611bdd565b9050611b6981868686612f94565b9695505050505050565b60605f80856001600160a01b031685604051611b8f9190613d23565b5f60405180830381855af49150503d805f8114611bc7576040519150601f19603f3d011682016040523d82523d5f602084013e611bcc565b606091505b5091509150611b6986838387612fba565b60608180519060200120604051602001611bf991815260200190565b6040516020818303038152906040529050919050565b60605f845111611c595760405162461bcd60e51b81526020600482015260156024820152744d65726b6c65547269653a20656d707479206b657960581b6044820152606401610606565b5f611c6384613032565b90505f611c6f8661311c565b90505f84604051602001611c8591815260200190565b60405160208183030381529060405290505f805b8451811015612425575f858281518110611cb557611cb5613bfc565b602002602001015190508451831115611d275760405162461bcd60e51b815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201526d0e8c2d840d6caf240d8cadccee8d60931b6064820152608401610606565b825f03611dc55780518051602091820120604051611d7492611d4e92910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b611dc05760405162461bcd60e51b815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f7420686173680000006044820152606401610606565b611ebb565b805151602011611e4b5780518051602091820120604051611def92611d4e92910190815260200190565b611dc05760405162461bcd60e51b815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e6044820152660c2d840d0c2e6d60cb1b6064820152608401610606565b805184516020808701919091208251919092012014611ebb5760405162461bcd60e51b815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f646044820152650ca40d0c2e6d60d31b6064820152608401610606565b611ec760106001613cee565b8160200151510361205f5784518303611ff957611ef4816020015160108151811061186057611860613bfc565b96505f875111611f6c5760405162461bcd60e51b815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e63682900000000006064820152608401610606565b60018651611f7a9190613c24565b8214611fee5760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e6368290000000000006064820152608401610606565b5050505050506106fa565b5f85848151811061200c5761200c613bfc565b602001015160f81c60f81b60f81c90505f82602001518260ff168151811061203657612036613bfc565b602002602001015190506120498161317d565b9550612056600186613cee565b9450505061241c565b6002816020015151036123c3575f612076826131a1565b90505f815f8151811061208b5761208b613bfc565b016020015160f81c90505f6120a1600283613d52565b6120ac906002613d73565b90505f6120bc848360ff166131c4565b90505f6120c98a896131c4565b90505f6120d683836131f9565b90508083511461214e5760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b65790000000000006064820152608401610606565b60ff851660021480612163575060ff85166003145b1561230357808251146121de5760405162461bcd60e51b815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e6465720000006064820152608401610606565b6121f8876020015160018151811061186057611860613bfc565b9c505f8d51116122705760405162461bcd60e51b815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c65616629000000000000006064820152608401610606565b60018c5161227e9190613c24565b88146122f25760405162461bcd60e51b815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c6561662900000000000000006064820152608401610606565b5050505050505050505050506106fa565b60ff85161580612316575060ff85166001145b1561235557612342876020015160018151811061233557612335613bfc565b602002602001015161317d565b995061234e818a613cee565b98506123b8565b60405162461bcd60e51b815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f64652077697468604482015271040c2dc40eadcd6dcdeeedc40e0e4caccd2f60731b6064820152608401610606565b50505050505061241c565b60405162461bcd60e51b815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e706172736561604482015267626c65206e6f646560c01b6064820152608401610606565b50600101611c99565b5060405162461bcd60e51b815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c656044820152646d656e747360d81b6064820152608401610606565b604080518082019091525f80825260208201525f8251116124af5760405162461bcd60e51b815260040161060690613d8c565b50604080518082019091528151815260209182019181019190915290565b60605f805f6124db856126ea565b9194509250905060018160018111156124f6576124f6613c69565b146125695760405162461bcd60e51b815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d00000000000000006064820152608401610606565b84516125758385613cee565b146125dd5760405162461bcd60e51b815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e76616044820152713634b2103230ba30903932b6b0b4b73232b960711b6064820152608401610606565b604080516020808252610420820190925290816020015b604080518082019091525f80825260208201528152602001906001900390816125f45790505093505f835b86518110156126de575f806126636040518060400160405280858c5f01516126479190613c24565b8152602001858c6020015161265c9190613cee565b90526126ea565b50915091506040518060400160405280838361267f9190613cee565b8152602001848b602001516126949190613cee565b8152508885815181106126a9576126a9613bfc565b60209081029190910101526126bf600185613cee565b93506126cb8183613cee565b6126d59084613cee565b9250505061261f565b50845250919392505050565b5f805f80845f01511161270f5760405162461bcd60e51b815260040161060690613d8c565b602084015180515f1a607f8111612731575f60015f9450945094505050612d8a565b60b7811161288a575f612745608083613c24565b905080875f0151116127c35760405162461bcd60e51b815260206004820152604e60248201525f80516020613fb683398151915260448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201526d2873686f727420737472696e672960901b608482015260a401610606565b6001838101516001600160f81b03191690821415806127f05750600160ff1b6001600160f81b0319821610155b6128785760405162461bcd60e51b815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201526c73686f727420737472696e672960981b608482015260a401610606565b506001955093505f9250612d8a915050565b60bf8111612ac3575f61289e60b783613c24565b905080875f01511161291f5760405162461bcd60e51b815260206004820152605160248201525f80516020613fb683398151915260448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527067746820286c6f6e6720737472696e672960781b608482015260a401610606565b60018301516001600160f81b0319165f8190036129a45760405162461bcd60e51b815260206004820152604a60248201525f80516020613fb683398151915260448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f6064820152696e6720737472696e672960b01b608482015260a401610606565b600184015160088302610100031c60378111612a265760405162461bcd60e51b815260206004820152604860248201525f80516020613fb683398151915260448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201526720737472696e672960c01b608482015260a401610606565b612a308184613cee565b895111612aa75760405162461bcd60e51b815260206004820152604c60248201525f80516020613fb683398151915260448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201526b6c6f6e6720737472696e672960a01b608482015260a401610606565b612ab2836001613cee565b975095505f9450612d8a9350505050565b60f78111612b62575f612ad760c083613c24565b905080875f015111612b515760405162461bcd60e51b815260206004820152604a60248201525f80516020613fb683398151915260448201527f742062652067726561746572207468616e206c697374206c656e677468202873606482015269686f7274206c6973742960b01b608482015260a401610606565b600195509350849250612d8a915050565b5f612b6e60f783613c24565b905080875f015111612beb5760405162461bcd60e51b815260206004820152604d60248201525f80516020613fb683398151915260448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201526c6820286c6f6e67206c6973742960981b608482015260a401610606565b60018301516001600160f81b0319165f819003612c6e5760405162461bcd60e51b815260206004820152604860248201525f80516020613fb683398151915260448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f6064820152676e67206c6973742960c01b608482015260a401610606565b600184015160088302610100031c60378111612cee5760405162461bcd60e51b815260206004820152604660248201525f80516020613fb683398151915260448201527f742062652067726561746572207468616e20353520627974657320286c6f6e67606482015265206c6973742960d01b608482015260a401610606565b612cf88184613cee565b895111612d6d5760405162461bcd60e51b815260206004820152604a60248201525f80516020613fb683398151915260448201527f742062652067726561746572207468616e20746f74616c206c656e67746820286064820152696c6f6e67206c6973742960b01b608482015260a401610606565b612d78836001613cee565b9750955060019450612d8a9350505050565b9193909250565b6060816001600160401b03811115612dab57612dab6136e5565b6040519080825280601f01601f191660200182016040528015612dd5576020820181803683370190505b50905081156106fa575f612de98486613cee565b9050602082015f5b84811015612e09578281015182820152602001612df1565b84811115612e17575f858301525b5050509392505050565b60605f82604051602001612e3791815260200190565b60405160208183030381529060405290505f5b6020811015612e8257818181518110612e6557612e65613bfc565b01602001516001600160f81b0319165f03612e8257600101612e4a565b612e8d816020613c24565b6001600160401b03811115612ea457612ea46136e5565b6040519080825280601f01601f191660200182016040528015612ece576020820181803683370190505b5092505f5b8351811015612f34578282612ee781613dfc565b935081518110612ef957612ef9613bfc565b602001015160f81c60f81b848281518110612f1657612f16613bfc565b60200101906001600160f81b03191690815f1a905350600101612ed3565b505050919050565b606081516001148015612f6857506080825f81518110612f5e57612f5e613bfc565b016020015160f81c105b15612f71575090565b612f7d8251608061327c565b82604051602001611bf9929190613e14565b919050565b5f61088a84612fa4878686611c0f565b8051602091820120825192909101919091201490565b606083156130285782515f03613021576001600160a01b0385163b6130215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610606565b508161088d565b61088d8383613421565b8051606090806001600160401b0381111561304f5761304f6136e5565b60405190808252806020026020018201604052801561309457816020015b604080518082019091526060808252602082015281526020019060019003908161306d5790505b5091505f5b818110156131155760405180604001604052808583815181106130be576130be613bfc565b602002602001015181526020016130ed8684815181106130e0576130e0613bfc565b6020026020010151611a0a565b81525083828151811061310257613102613bfc565b6020908102919091010152600101613099565b5050919050565b606080604051905082518060011b603f8101601f191683016040528083525060208401602083015f5b83811015613172578060011b8201818401515f1a8060041c8253600f811660018301535050600101613145565b509295945050505050565b60606020825f0151106131985761319382611a1d565b6105b8565b6105b88261344b565b60606105b86131bf83602001515f8151811061186057611860613bfc565b61311c565b6060825182106131e2575060408051602081019091525f81526105b8565b6106fa83838486516131f49190613c24565b61345f565b5f80825184511061320b57825161320e565b83515b90505b8082108015613265575082828151811061322d5761322d613bfc565b602001015160f81c60f81b6001600160f81b03191684838151811061325457613254613bfc565b01602001516001600160f81b031916145b1561327557816001019150613211565b5092915050565b606060388310156132e057604080516001808252818301909252906020820181803683370190505090506132b08284613e42565b60f81b815f815181106132c5576132c5613bfc565b60200101906001600160f81b03191690815f1a9053506105b8565b5f60015b6132ee8186613e5b565b1561331457816132fd81613dfc565b925061330d905061010082613e6e565b90506132e4565b61331f826001613cee565b6001600160401b03811115613336576133366136e5565b6040519080825280601f01601f191660200182016040528015613360576020820181803683370190505b50925061336d8483613e42565b613378906037613e42565b60f81b835f8151811061338d5761338d613bfc565b60200101906001600160f81b03191690815f1a905350600190505b818111613419576101006133bc8284613c24565b6133c890610100613f65565b6133d29087613e5b565b6133dc9190613f70565b60f81b8382815181106133f1576133f1613bfc565b60200101906001600160f81b03191690815f1a9053508061341181613dfc565b9150506133a8565b505092915050565b8151156134315781518083602001fd5b8060405162461bcd60e51b81526004016106069190613f83565b60606105b882602001515f845f0151612d91565b60608182601f0110156134a55760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610606565b8282840110156134e85760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610606565b8183018451101561352f5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610606565b60608215801561354d5760405191505f825260208201604052613597565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561358657805183526020928301920161356e565b5050858452601f01601f1916604052505b50949350505050565b6001600160a01b03811681146106a1575f80fd5b80358015158114612f8f575f80fd5b5f80604083850312156135d4575f80fd5b82356135df816135a0565b91506135ed602084016135b4565b90509250929050565b5f8060408385031215613607575f80fd5b8235613612816135a0565b946020939093013593505050565b80356001600160401b0381168114612f8f575f80fd5b5f8060408385031215613647575f80fd5b61361283613620565b5f60208284031215613660575f80fd5b81356106fa816135a0565b5f805f806080858703121561367e575f80fd5b61368785613620565b93506020850135925061369c60408601613620565b9396929550929360600135925050565b5f805f606084860312156136be575f80fd5b6136c784613620565b9250602084013591506136dc604085016135b4565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b038111828210171561371b5761371b6136e5565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613749576137496136e5565b604052919050565b5f82601f830112613760575f80fd5b81356001600160401b03811115613779576137796136e5565b61378c601f8201601f1916602001613721565b8181528460208386010111156137a0575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156137cd575f80fd5b82356137d8816135a0565b915060208301356001600160401b038111156137f2575f80fd5b6137fe85828601613751565b9150509250929050565b5f60208284031215613818575f80fd5b5035919050565b5f805f805f60808688031215613833575f80fd5b61383c86613620565b9450602086013561384c816135a0565b93506040860135925060608601356001600160401b038082111561386e575f80fd5b818801915088601f830112613881575f80fd5b81358181111561388f575f80fd5b8960208285010111156138a0575f80fd5b9699959850939650602001949392505050565b5f805f606084860312156138c5575f80fd5b6138ce84613620565b925060208401356138de816135a0565b929592945050506040919091013590565b5f805f60608486031215613901575f80fd5b61390a84613620565b9250602084013591506136dc60408501613620565b5f8060408385031215613930575f80fd5b823591506135ed602084016135b4565b5f8060408385031215613951575f80fd5b823561395c816135a0565b9150602083013561396c816135a0565b809150509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f6001600160401b03821115613a2757613a276136e5565b5060051b60200190565b803560048110612f8f575f80fd5b5f82601f830112613a4e575f80fd5b81356020613a63613a5e83613a0f565b613721565b82815260059290921b84018101918181019086841115613a81575f80fd5b8286015b848110156118d95780356001600160401b03811115613aa2575f80fd5b613ab08986838b0101613751565b845250918301918301613a85565b5f6020808385031215613acf575f80fd5b82356001600160401b0380821115613ae5575f80fd5b818501915085601f830112613af8575f80fd5b8135613b06613a5e82613a0f565b81815260059190911b83018401908481019088831115613b24575f80fd5b8585015b83811015613bef57803585811115613b3e575f80fd5b860160c0818c03601f19011215613b53575f80fd5b613b5b6136f9565b613b66898301613620565b81526040613b75818401613620565b8a8301526060808401358284015260809150613b92828501613a31565b9083015260a08381013589811115613ba8575f80fd5b613bb68f8d83880101613a3f565b838501525060c0840135915088821115613bce575f80fd5b613bdc8e8c84870101613a3f565b9083015250845250918601918601613b28565b5098975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156105b8576105b8613c10565b5f60208284031215613c47575f80fd5b5051919050565b5f60208284031215613c5e575f80fd5b81516106fa816135a0565b634e487b7160e01b5f52602160045260245ffd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b80516020808301519190811015613ce8575f198160200360031b1b821691505b50919050565b808201808211156105b8576105b8613c10565b5f5b83811015613d1b578181015183820152602001613d03565b50505f910152565b5f8251613d34818460208701613d01565b9190910192915050565b634e487b7160e01b5f52601260045260245ffd5b5f60ff831680613d6457613d64613d3e565b8060ff84160691505092915050565b60ff82811682821603908111156105b8576105b8613c10565b6020808252604a908201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60408201527f206d7573742062652067726561746572207468616e207a65726f20746f206265606082015269206465636f6461626c6560b01b608082015260a00190565b5f60018201613e0d57613e0d613c10565b5060010190565b5f8351613e25818460208801613d01565b835190830190613e39818360208801613d01565b01949350505050565b60ff81811683821601908111156105b8576105b8613c10565b5f82613e6957613e69613d3e565b500490565b80820281158282048414176105b8576105b8613c10565b600181815b80851115613ebf57815f1904821115613ea557613ea5613c10565b80851615613eb257918102915b93841c9390800290613e8a565b509250929050565b5f82613ed5575060016105b8565b81613ee157505f6105b8565b8160018114613ef75760028114613f0157613f1d565b60019150506105b8565b60ff841115613f1257613f12613c10565b50506001821b6105b8565b5060208310610133831016604e8410600b8410161715613f40575081810a6105b8565b613f4a8383613e85565b805f1904821115613f5d57613f5d613c10565b029392505050565b5f6106fa8383613ec7565b5f82613f7e57613f7e613d3e565b500690565b602081525f8251806020840152613fa1816040850160208701613d01565b601f01601f1916919091016040019291505056fe524c505265616465723a206c656e677468206f6620636f6e74656e74206d7573360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122026509c7d0962754acadcf1ba2e83cec7c8d29b86f2088c00b216a1d1edf88cb264736f6c63430008180033", + "balance": "0x0" + }, + "0x1670090000000000000000000000000000000005": { + "contractName": "SignalService", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670090000000000000000000000000000000006", + "0x031b527db15e04fbfff38f22f062b0041c6d7dbbf534c333afd08c8be13df0c6": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167009000000000000000000000000000000005" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220ee2b34631d0aeafcbca8c09b3d006837becb1e761da7ef1dfde69d83e98a206164736f6c63430008180033", + "balance": "0x0" + }, + "0x0167009000000000000000000000000000010001": { + "contractName": "TaikoL2Impl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x6080604052600436106101af575f3560e01c806379ba5097116100e7578063c3f909d411610087578063e30c397811610062578063e30c3978146104f7578063f2fde38b14610514578063f535bd5614610533578063f940e38514610552575f80fd5b8063c3f909d41461047b578063da69d3db146104c3578063dac5df78146104e2575f80fd5b80638da5cb5b116100c25780638da5cb5b146103de5780639ee512f2146103fb578063a7e022d114610420578063a86f9d9e1461045c575f80fd5b806379ba50971461038b5780638456cb591461039f5780638551f41e146103b3575f80fd5b80633f4ba83a11610152578063539b8ade1161012d578063539b8ade146103125780635950f9f1146103385780635c975abb14610357578063715018a614610377575f80fd5b80633f4ba83a146102d75780634f1ef286146102eb57806352d1902d146102fe575f80fd5b806333d5ac9b1161018d57806333d5ac9b1461023a5780633659cfe6146102605780633ab76e9f146102815780633eb6b8cf146102b8575f80fd5b806312622e5b146101b357806323ac7136146101ef5780632f9804731461021c575b5f80fd5b3480156101be575f80fd5b5060fe546101d2906001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b3480156101fa575f80fd5b5061020e610209366004611ece565b610571565b6040519081526020016101e6565b348015610227575f80fd5b505f5b60405190151581526020016101e6565b348015610245575f80fd5b5060fd546101d290600160401b90046001600160401b031681565b34801561026b575f80fd5b5061027f61027a366004611efb565b6105cd565b005b34801561028c575f80fd5b506097546102a0906001600160a01b031681565b6040516001600160a01b0390911681526020016101e6565b3480156102c3575f80fd5b506102a06102d2366004611f23565b6106b3565b3480156102e2575f80fd5b5061027f6106c9565b61027f6102f9366004611f74565b610748565b348015610309575f80fd5b5061020e610817565b34801561031d575f80fd5b5060fd546101d290600160801b90046001600160401b031681565b348015610343575f80fd5b5061027f610352366004612031565b6108c8565b348015610362575f80fd5b5061022a60c954610100900460ff1660021490565b348015610382575f80fd5b5061027f610af1565b348015610396575f80fd5b5061027f610b02565b3480156103aa575f80fd5b5061027f610b79565b3480156103be575f80fd5b5061020e6103cd366004612086565b60fb6020525f908152604090205481565b3480156103e9575f80fd5b506033546001600160a01b03166102a0565b348015610406575f80fd5b506102a071777735367b36bc9b61c50022d9d0700db4ec81565b34801561042b575f80fd5b5061043f61043a3660046120b0565b610bf8565b604080519283526001600160401b039091166020830152016101e6565b348015610467575f80fd5b506102a06104763660046120e1565b610c6d565b348015610486575f80fd5b5061048f610c82565b60408051825163ffffffff16815260208084015160ff1690820152918101516001600160401b0316908201526060016101e6565b3480156104ce575f80fd5b5061027f6104dd36600461210f565b610cce565b3480156104ed575f80fd5b5061020e60fc5481565b348015610502575f80fd5b506065546001600160a01b03166102a0565b34801561051f575f80fd5b5061027f61052e366004611efb565b610fd7565b34801561053e575f80fd5b5060fd546101d2906001600160401b031681565b34801561055d575f80fd5b5061027f61056c366004612147565b611048565b5f43826001600160401b03161061058957505f919050565b4361059683610100612187565b6001600160401b0316106105b257506001600160401b03164090565b506001600160401b03165f90815260fb602052604090205490565b6001600160a01b037f000000000000000000000000016700900000000000000000000000000001000116300361061e5760405162461bcd60e51b8152600401610615906121ae565b60405180910390fd5b7f00000000000000000000000001670090000000000000000000000000000100016001600160a01b03166106665f80516020612424833981519152546001600160a01b031690565b6001600160a01b03161461068c5760405162461bcd60e51b8152600401610615906121fa565b61069581611207565b604080515f808252602082019092526106b09183919061120f565b50565b5f6106bf848484611379565b90505b9392505050565b6106dd60c954610100900460ff1660021490565b6106fa5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a1610746335f611465565b565b6001600160a01b037f00000000000000000000000001670090000000000000000000000000000100011630036107905760405162461bcd60e51b8152600401610615906121ae565b7f00000000000000000000000001670090000000000000000000000000000100016001600160a01b03166107d85f80516020612424833981519152546001600160a01b031690565b6001600160a01b0316146107fe5760405162461bcd60e51b8152600401610615906121fa565b61080782611207565b6108138282600161120f565b5050565b5f306001600160a01b037f000000000000000000000000016700900000000000000000000000000001000116146108b65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610615565b505f8051602061242483398151915290565b5f54610100900460ff16158080156108e657505f54600160ff909116105b806108ff5750303b1580156108ff57505f5460ff166001145b6109625760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610615565b5f805460ff191660011790558015610983575f805461ff0019166101001790555b61098d858561146d565b6001600160401b03831615806109ab575046836001600160401b0316145b156109c9576040516308279a2560e31b815260040160405180910390fd5b6001461115806109df57506001600160401b0346115b156109fd57604051638f972ecb60e01b815260040160405180910390fd5b4315610a475743600103610a2e575f610a17600143612246565b5f81815260fb602052604090209040905550610a47565b604051635a0f9e4160e11b815260040160405180910390fd5b60fe80546001600160401b0380861667ffffffffffffffff199283161790925560fd805492851692909116919091179055610a81436114cc565b5060fc5560fd80546001600160c01b0316600160c01b426001600160401b0316021790558015610aea575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610af961155c565b6107465f6115b6565b60655433906001600160a01b03168114610b705760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610615565b6106b0816115b6565b610b8d60c954610100900460ff1660021490565b15610bab5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200160405180910390a1610746336001611465565b5f805f610c03610c82565b805160fd549192505f9163ffffffff90911690610c3090600160401b90046001600160401b031688612259565b610c3a9190612279565b82516020840151604085015160fd54939450610c60936001600160401b0316858a6115cf565b9097909650945050505050565b5f610c79468484611379565b90505b92915050565b604080516060810182525f8082526020820181905291810191909152610cc960408051606081018252630393870081526008602082015264044acfc6c09181019190915290565b905090565b6002610cdc60c95460ff1690565b60ff1603610cfd5760405163dfc60d8560e01b815260040160405180910390fd5b610d07600261167a565b831580610d12575082155b80610d2457506001600160401b038216155b80610d3f575043600114158015610d3f575063ffffffff8116155b15610d5d5760405163053fd54760e01b815260040160405180910390fd5b3371777735367b36bc9b61c50022d9d0700db4ec14610d8f57604051636494e9f760e01b815260040160405180910390fd5b5f1943015f80610d9e836114cc565b915091508160fc5414610dc45760405163d719258d60e01b815260040160405180910390fd5b5f610dcf8686610bf8565b60fd805467ffffffffffffffff19166001600160401b03929092169190911790559050488114610e12576040516336d54d4f60e11b815260040160405180910390fd5b60fd546001600160401b03600160401b90910481169087161115610f2257610e4b6d7369676e616c5f7365727669636560901b5f610c6d565b60fe546040516313e4299d60e21b81526001600160401b0391821660048201527f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da16960248201529088166044820152606481018990526001600160a01b039190911690634f90a674906084016020604051808303815f875af1158015610ed2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef691906122a4565b5060fd80546fffffffffffffffff00000000000000001916600160401b6001600160401b038916021790555b5f84815260fb602090815260409182902086409081905560fc85905560fd80546fffffffffffffffffffffffffffffffff8116600160c01b918290046001600160401b03908116600160801b026001600160c01b031691909117428216929092029190911791829055845192835216918101919091527f41c3f410f5c8ac36bb46b1dccef0de0f964087c9e688795fa02ecfa2c20b3fe4910160405180910390a150505050610fd1600161167a565b50505050565b610fdf61155c565b606580546001600160a01b0383166001600160a01b031990911681179091556110106033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b693bb4ba34323930bbb2b960b11b6110686033546001600160a01b031690565b6001600160a01b0316336001600160a01b0316141580156110a5575061108f816001610c6d565b6001600160a01b0316336001600160a01b031614155b156110c357604051630d85cccf60e11b815260040160405180910390fd5b60026110d160c95460ff1690565b60ff16036110f25760405163dfc60d8560e01b815260040160405180910390fd5b6110fc600261167a565b61111060c954610100900460ff1660021490565b1561112e5760405163bae6e2a960e01b815260040160405180910390fd5b6001600160a01b0382166111555760405163053fd54760e01b815260040160405180910390fd5b6001600160a01b03831661117b576111766001600160a01b03831647611690565b6111f8565b6040516370a0823160e01b81523060048201526111f89083906001600160a01b038616906370a0823190602401602060405180830381865afa1580156111c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e791906122a4565b6001600160a01b038616919061169b565b611202600161167a565b505050565b6106b061155c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561124257611202836116ed565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561129c575060408051601f3d908101601f19168201909252611299918101906122a4565b60015b6112ff5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610615565b5f80516020612424833981519152811461136d5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610615565b50611202838383611788565b6097545f906001600160a01b03166113a457604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa1580156113fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061141e91906122bb565b90508115801561143557506001600160a01b038116155b156106c257604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610615565b61081361155c565b5f54610100900460ff166114935760405162461bcd60e51b8152600401610615906122d6565b61149c826117ac565b6001600160a01b0381166114c3576040516375cabfef60e11b815260040160405180910390fd5b610813816117dc565b5f806114d6611e93565b5f5b60ff811080156114eb5750806001018510155b1561151c575f198186030180408360ff8306610100811061150e5761150e612335565b6020020152506001016114d8565b5046611fe08201526120008120925083408161153960ff87612349565b610100811061154a5761154a612335565b60200201526120009020919391925050565b6033546001600160a01b031633146107465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610615565b606580546001600160a01b03191690556106b08161184c565b5f80806115eb63ffffffff85166001600160401b03881661235c565b9050846001600160401b03168111611604576001611617565b6116176001600160401b03861682612246565b90506116396001600160401b038089169061163390849061189d565b906118b1565b91506116606001600160401b03831661165b63ffffffff8c1660ff8c1661236f565b6118c6565b9250825f0361166e57600192505b50965096945050505050565b60c9805460ff191660ff92909216919091179055565b61081382825a61190f565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611202908490611952565b6001600160a01b0381163b61175a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610615565b5f8051602061242483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61179183611a25565b5f8251118061179d5750805b1561120257610fd18383611a64565b6117ca6001600160a01b038216156117c457816115b6565b336115b6565b5060c9805461ff001916610100179055565b5f54610100900460ff166118025760405162461bcd60e51b8152600401610615906122d6565b6001600160401b0346111561182a5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f8183116118ab5782610c79565b50919050565b5f8183116118bf5781610c79565b5090919050565b5f815f036118e757604051636296f1b960e11b815260040160405180910390fd5b81670de0b6b3a76400006118fb8585611a89565b6119059190612386565b610c799190612386565b815f0361191b57505050565b61193583838360405180602001604052805f815250611ad8565b61120257604051634c67134d60e11b815260040160405180910390fd5b5f6119a6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611b159092919063ffffffff16565b905080515f14806119c65750808060200190518101906119c69190612399565b6112025760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610615565b611a2e816116ed565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610c79838360405180606001604052806027815260200161244460279139611b23565b5f8082611a9e670de0b6b3a76400008661236f565b611aa89190612386565b9050680755bf798b4a1bf1e4811115611ac75750680755bf798b4a1bf1e45b611ad081611b97565b949350505050565b5f6001600160a01b038516611b0057604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b60606106bf84845f85611d1f565b60605f80856001600160a01b031685604051611b3f91906123d6565b5f60405180830381855af49150503d805f8114611b77576040519150601f19603f3d011682016040523d82523d5f602084013e611b7c565b606091505b5091509150611b8d86838387611df6565b9695505050505050565b5f680248ce36a70cb26b3e198213611bb057505f919050565b680755bf798b4a1bf1e58212611bd957604051631a93c68960e11b815260040160405180910390fd5b6503782dace9d9604e83901b0591505f60606bb17217f7d1cf79abc9e3b39884821b056001605f1b01901d6bb17217f7d1cf79abc9e3b39881029093036c240c330e9fb2d9cbaf0fd5aafb1981018102606090811d6d0277594991cfc85f6e2461837cd9018202811d6d1a521255e34f6a5061b25ef1c9c319018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d6e02c72388d9f74f51a9331fed693f1419018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084016d01d3967ed30fc4f89c02bab5708119010290911d6e0587f503bb6ea29d25fcb740196450019091026d360d7aeea093263ecc6e0ecb291760621b010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b606082471015611d805760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610615565b5f80866001600160a01b03168587604051611d9b91906123d6565b5f6040518083038185875af1925050503d805f8114611dd5576040519150601f19603f3d011682016040523d82523d5f602084013e611dda565b606091505b5091509150611deb87838387611df6565b979650505050505050565b60608315611e645782515f03611e5d576001600160a01b0385163b611e5d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610615565b5081611ad0565b611ad08383815115611e795781518083602001fd5b8060405162461bcd60e51b815260040161061591906123f1565b604051806120000160405280610100906020820280368337509192915050565b80356001600160401b0381168114611ec9575f80fd5b919050565b5f60208284031215611ede575f80fd5b610c7982611eb3565b6001600160a01b03811681146106b0575f80fd5b5f60208284031215611f0b575f80fd5b81356106c281611ee7565b80151581146106b0575f80fd5b5f805f60608486031215611f35575f80fd5b611f3e84611eb3565b9250602084013591506040840135611f5581611f16565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611f85575f80fd5b8235611f9081611ee7565b915060208301356001600160401b0380821115611fab575f80fd5b818501915085601f830112611fbe575f80fd5b813581811115611fd057611fd0611f60565b604051601f8201601f19908116603f01168101908382118183101715611ff857611ff8611f60565b81604052828152886020848701011115612010575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f805f8060808587031215612044575f80fd5b843561204f81611ee7565b9350602085013561205f81611ee7565b925061206d60408601611eb3565b915061207b60608601611eb3565b905092959194509250565b5f60208284031215612096575f80fd5b5035919050565b803563ffffffff81168114611ec9575f80fd5b5f80604083850312156120c1575f80fd5b6120ca83611eb3565b91506120d86020840161209d565b90509250929050565b5f80604083850312156120f2575f80fd5b82359150602083013561210481611f16565b809150509250929050565b5f805f8060808587031215612122575f80fd5b843593506020850135925061213960408601611eb3565b915061207b6060860161209d565b5f8060408385031215612158575f80fd5b823561216381611ee7565b9150602083013561210481611ee7565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156121a7576121a7612173565b5092915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b81810381811115610c7c57610c7c612173565b6001600160401b038281168282160390808211156121a7576121a7612173565b6001600160401b0381811683821602808216919082811461229c5761229c612173565b505092915050565b5f602082840312156122b4575f80fd5b5051919050565b5f602082840312156122cb575f80fd5b81516106c281611ee7565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8261235757612357612321565b500690565b80820180821115610c7c57610c7c612173565b8082028115828204841417610c7c57610c7c612173565b5f8261239457612394612321565b500490565b5f602082840312156123a9575f80fd5b81516106c281611f16565b5f5b838110156123ce5781810151838201526020016123b6565b50505f910152565b5f82516123e78184602087016123b4565b9190910192915050565b602081525f825180602084015261240f8160408501602087016123b4565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200910e22634b6f1551e873c664bfc622939fb47d120f9d846eadfca2805ec4fe264736f6c63430008180033", + "balance": "0x0" + }, + "0x1670090000000000000000000000000000010001": { + "contractName": "TaikoL2", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670090000000000000000000000000000010002", + "0x00000000000000000000000000000000000000000000000000000000000000fe": "0x0000000000000000000000000000000000000000000000000000000000004268", + "0x00000000000000000000000000000000000000000000000000000000000000fd": "0x00000000000000000000000000000000000000000000000000000004a817c800", + "0x00000000000000000000000000000000000000000000000000000000000000fc": "0x12ca4c463583981a753aba62115b12209171346133eaa90b752fb316efd4d2be", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167009000000000000000000000000000010001" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220ee2b34631d0aeafcbca8c09b3d006837becb1e761da7ef1dfde69d83e98a206164736f6c63430008180033", + "balance": "0x0" + }, + "0x0167009000000000000000000000000000010002": { + "contractName": "RollupAddressManagerImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x6080604052600436106100fa575f3560e01c80635c975abb116100925780638da5cb5b116100625780638da5cb5b14610299578063a86f9d9e146102b6578063d8f4648f146102d5578063e30c3978146102f4578063f2fde38b14610311575f80fd5b80635c975abb1461022d578063715018a61461025d57806379ba5097146102715780638456cb5914610285575f80fd5b80633eb6b8cf116100cd5780633eb6b8cf146101c55780633f4ba83a146101e45780634f1ef286146101f857806352d1902d1461020b575f80fd5b806319ab453c146100fe57806328f713cc1461011f5780633659cfe6146101875780633ab76e9f146101a6575b5f80fd5b348015610109575f80fd5b5061011d610118366004610f59565b610330565b005b34801561012a575f80fd5b5061016a610139366004610f90565b67ffffffffffffffff919091165f90815260fb6020908152604080832093835292905220546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610192575f80fd5b5061011d6101a1366004610f59565b610442565b3480156101b1575f80fd5b5060975461016a906001600160a01b031681565b3480156101d0575f80fd5b5061016a6101df366004610fc7565b61051f565b3480156101ef575f80fd5b5061011d610535565b61011d610206366004611014565b6105b4565b348015610216575f80fd5b5061021f61067f565b60405190815260200161017e565b348015610238575f80fd5b5061024d60c954610100900460ff1660021490565b604051901515815260200161017e565b348015610268575f80fd5b5061011d610730565b34801561027c575f80fd5b5061011d610741565b348015610290575f80fd5b5061011d6107b8565b3480156102a4575f80fd5b506033546001600160a01b031661016a565b3480156102c1575f80fd5b5061016a6102d03660046110d2565b610837565b3480156102e0575f80fd5b5061011d6102ef3660046110fc565b610843565b3480156102ff575f80fd5b506065546001600160a01b031661016a565b34801561031c575f80fd5b5061011d61032b366004610f59565b610921565b5f54610100900460ff161580801561034e57505f54600160ff909116105b806103675750303b15801561036757505f5460ff166001145b6103cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff1916600117905580156103f0575f805461ff0019166101001790555b6103f982610992565b801561043e575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b037f000000000000000000000000016700900000000000000000000000000001000216300361048a5760405162461bcd60e51b81526004016103c690611139565b7f00000000000000000000000001670090000000000000000000000000000100026001600160a01b03166104d25f80516020611273833981519152546001600160a01b031690565b6001600160a01b0316146104f85760405162461bcd60e51b81526004016103c690611185565b610501816109c2565b604080515f8082526020820190925261051c918391906109ca565b50565b5f61052b848484610b39565b90505b9392505050565b61054960c954610100900460ff1660021490565b6105665760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9060200160405180910390a16105b2335f610c27565b565b6001600160a01b037f00000000000000000000000001670090000000000000000000000000000100021630036105fc5760405162461bcd60e51b81526004016103c690611139565b7f00000000000000000000000001670090000000000000000000000000000100026001600160a01b03166106445f80516020611273833981519152546001600160a01b031690565b6001600160a01b03161461066a5760405162461bcd60e51b81526004016103c690611185565b610673826109c2565b61043e828260016109ca565b5f306001600160a01b037f0000000000000000000000000167009000000000000000000000000000010002161461071e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103c6565b505f8051602061127383398151915290565b610738610c3f565b6105b25f610c99565b60655433906001600160a01b031681146107af5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016103c6565b61051c81610c99565b6107cc60c954610100900460ff1660021490565b156107ea5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200160405180910390a16105b2336001610c27565b5f61052e468484610b39565b61084b610c3f565b67ffffffffffffffff83165f90815260fb602090815260408083208584529091529020546001600160a01b0390811690821681900361089d576040516327b026fb60e21b815260040160405180910390fd5b67ffffffffffffffff84165f81815260fb6020908152604080832087845282529182902080546001600160a01b0319166001600160a01b038781169182179092558351908152908516918101919091528592917f500dcd607a98daece9bccc2511bf6032471252929de73caf507aae0e082f8453910160405180910390a350505050565b610929610c3f565b606580546001600160a01b0383166001600160a01b0319909116811790915561095a6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6109b06001600160a01b038216156109aa5781610c99565b33610c99565b5060c9805461ff001916610100179055565b61051c610c3f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610a02576109fd83610cb2565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610a5c575060408051601f3d908101601f19168201909252610a59918101906111d1565b60015b610abf5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016103c6565b5f805160206112738339815191528114610b2d5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016103c6565b506109fd838383610d4d565b6097545f906001600160a01b0316610b6457604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015610bbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdf91906111e8565b905081158015610bf657506001600160a01b038116155b1561052e57604051632b0d65db60e01b815267ffffffffffffffff85166004820152602481018490526044016103c6565b60405162580a9560e71b815260040160405180910390fd5b6033546001600160a01b031633146105b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c6565b606580546001600160a01b031916905561051c81610d77565b6001600160a01b0381163b610d1f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016103c6565b5f8051602061127383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610d5683610dc8565b5f82511180610d625750805b156109fd57610d718383610e07565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b610dd181610cb2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061052e83836040518060600160405280602781526020016112936027913960605f80856001600160a01b031685604051610e439190611225565b5f60405180830381855af49150503d805f8114610e7b576040519150601f19603f3d011682016040523d82523d5f602084013e610e80565b606091505b5091509150610e9186838387610e9b565b9695505050505050565b60608315610f095782515f03610f02576001600160a01b0385163b610f025760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103c6565b5081610f13565b610f138383610f1b565b949350505050565b815115610f2b5781518083602001fd5b8060405162461bcd60e51b81526004016103c69190611240565b6001600160a01b038116811461051c575f80fd5b5f60208284031215610f69575f80fd5b813561052e81610f45565b803567ffffffffffffffff81168114610f8b575f80fd5b919050565b5f8060408385031215610fa1575f80fd5b610faa83610f74565b946020939093013593505050565b80358015158114610f8b575f80fd5b5f805f60608486031215610fd9575f80fd5b610fe284610f74565b925060208401359150610ff760408501610fb8565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611025575f80fd5b823561103081610f45565b9150602083013567ffffffffffffffff8082111561104c575f80fd5b818501915085601f83011261105f575f80fd5b81358181111561107157611071611000565b604051601f8201601f19908116603f0116810190838211818310171561109957611099611000565b816040528281528860208487010111156110b1575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f80604083850312156110e3575f80fd5b823591506110f360208401610fb8565b90509250929050565b5f805f6060848603121561110e575f80fd5b61111784610f74565b925060208401359150604084013561112e81610f45565b809150509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f602082840312156111e1575f80fd5b5051919050565b5f602082840312156111f8575f80fd5b815161052e81610f45565b5f5b8381101561121d578181015183820152602001611205565b50505f910152565b5f8251611236818460208701611203565b9190910192915050565b602081525f825180602084015261125e816040850160208701611203565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203cf7c7909aa3a171d69bba3422ad3ee05166e507361c8bce5bed32f66ed9173764736f6c63430008180033", + "balance": "0x0" + }, + "0x1670090000000000000000000000000000010002": { + "contractName": "RollupAddressManager", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0xd330e44a3603b4246ee804ea67699b051c53a81e87cb0e4159648e14c2c7ff54": "0x0000000000000000000000001670090000000000000000000000000000010001", + "0x06e004775639cdb0e38f2c8a0f80bf9e3f0bafc0587c4deccd476e1b0b083676": "0x0000000000000000000000001670090000000000000000000000000000000001", + "0x57e7be70ddd7eb8855d6252773a58a2cd3685df17defaa305b7a91e54f33be8c": "0x0000000000000000000000001670090000000000000000000000000000000005", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167009000000000000000000000000000010002" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220ee2b34631d0aeafcbca8c09b3d006837becb1e761da7ef1dfde69d83e98a206164736f6c63430008180033", + "balance": "0x0" + }, + "0x3De27cC792B5a5886E85806316E7230Fd350BdaA": { + "contractName": "LibNetwork", + "storage": {}, + "code": "0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212200e91ea97951a08e1a55500bea198d5173bbd28c3741a91cc9a0898a286c7802864736f6c63430008180033", + "balance": "0x0" + }, + "0x0167009000000000000000000000000000010099": { + "contractName": "RegularERC20", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x526567756c617245524332300000000000000000000000000000000000000018", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x52474c0000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000000000000000001f4000", + "0x7e98f6668cc63185c0ed735323fd659178e6c2a72e12a0915ffe1e12f257e25f": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x36b8d434cffc56d906e4123d42c8917d6bf64c3eead76e75f37db4862e4ed11e": "0x00000000000000000000000000000000000000000000000000000000000fa000" + }, + "code": "0x608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011f57806370a082311461013257806395d89b411461015a578063a457c2d714610162578063a9059cbb14610175578063dd62ed3e14610188575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100eb57806323b872dd146100fd578063313ce56714610110575b5f80fd5b6100b261019b565b6040516100bf919061068a565b60405180910390f35b6100db6100d63660046106f1565b61022b565b60405190151581526020016100bf565b6002545b6040519081526020016100bf565b6100db61010b366004610719565b610244565b604051601281526020016100bf565b6100db61012d3660046106f1565b610267565b6100ef610140366004610752565b6001600160a01b03165f9081526020819052604090205490565b6100b2610288565b6100db6101703660046106f1565b610297565b6100db6101833660046106f1565b610316565b6100ef610196366004610772565b610323565b6060600380546101aa906107a3565b80601f01602080910402602001604051908101604052809291908181526020018280546101d6906107a3565b80156102215780601f106101f857610100808354040283529160200191610221565b820191905f5260205f20905b81548152906001019060200180831161020457829003601f168201915b5050505050905090565b5f3361023881858561034d565b60019150505b92915050565b5f33610251858285610470565b61025c8585856104e8565b506001949350505050565b5f336102388185856102798383610323565b61028391906107db565b61034d565b6060600480546101aa906107a3565b5f33816102a48286610323565b9050838110156103095760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61025c828686840361034d565b5f336102388185856104e8565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610300565b6001600160a01b0382166104105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610300565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61047b8484610323565b90505f1981146104e257818110156104d55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610300565b6104e2848484840361034d565b50505050565b6001600160a01b03831661054c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610300565b6001600160a01b0382166105ae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610300565b6001600160a01b0383165f90815260208190526040902054818110156106255760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610300565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104e2565b5f602080835283518060208501525f5b818110156106b65785810183015185820160400152820161069a565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146106ec575f80fd5b919050565b5f8060408385031215610702575f80fd5b61070b836106d6565b946020939093013593505050565b5f805f6060848603121561072b575f80fd5b610734846106d6565b9250610742602085016106d6565b9150604084013590509250925092565b5f60208284031215610762575f80fd5b61076b826106d6565b9392505050565b5f8060408385031215610783575f80fd5b61078c836106d6565b915061079a602084016106d6565b90509250929050565b600181811c908216806107b757607f821691505b6020821081036107d557634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561023e57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220147ef409e997b57527888b48fd0fb61bc86cc4d715fa732d06bbff34ee44453764736f6c63430008180033", + "balance": "0x0" + } +} diff --git a/crates/chainspec/res/genesis/taiko/internal_l2a.json b/crates/chainspec/res/genesis/taiko/internal_l2a.json new file mode 100644 index 000000000000..80cc925f6a0f --- /dev/null +++ b/crates/chainspec/res/genesis/taiko/internal_l2a.json @@ -0,0 +1,369 @@ +{ + "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266": { + "balance": "0x3782dace9d90000000" + }, + "0x70997970C51812dc3A010C7d01b50e0d17dc79C8": { + "balance": "0x3782dace9d90000000" + }, + "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC": { + "balance": "0x3782dace9d90000000" + }, + "0x90F79bf6EB2c4f870365E785982E1f101E93b906": { + "balance": "0x3782dace9d90000000" + }, + "0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65": { + "balance": "0x3782dace9d90000000" + }, + "0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc": { + "balance": "0x3782dace9d90000000" + }, + "0x976EA74026E726554dB657fA54763abd0C3a0aa9": { + "balance": "0x3782dace9d90000000" + }, + "0x14dC79964da2C08b23698B3D3cc7Ca32193d9955": { + "balance": "0x3782dace9d90000000" + }, + "0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f": { + "balance": "0x3782dace9d90000000" + }, + "0xa0Ee7A142d267C1f36714E4a8F75612F20a79720": { + "balance": "0x3782dace9d90000000" + }, + "0xBcd4042DE499D14e55001CcbB24a551F3b954096": { + "balance": "0x3782dace9d90000000" + }, + "0x71bE63f3384f5fb98995898A86B02Fb2426c5788": { + "balance": "0x3782dace9d90000000" + }, + "0xFABB0ac9d68B0B445fB7357272Ff202C5651694a": { + "balance": "0x3782dace9d90000000" + }, + "0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec": { + "balance": "0x3782dace9d90000000" + }, + "0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097": { + "balance": "0x3782dace9d90000000" + }, + "0xcd3B766CCDd6AE721141F452C550Ca635964ce71": { + "balance": "0x3782dace9d90000000" + }, + "0x2546BcD3c84621e976D8185a91A922aE77ECEc30": { + "balance": "0x3782dace9d90000000" + }, + "0xbDA5747bFD65F08deb54cb465eB87D40e51B197E": { + "balance": "0x3782dace9d90000000" + }, + "0xdD2FD4581271e230360230F9337D5c0430Bf44C0": { + "balance": "0x3782dace9d90000000" + }, + "0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199": { + "balance": "0x3782dace9d90000000" + }, + "0x7D86687F980A56b832e9378952B738b614A99dc6": { + "balance": "0x3782dace9d90000000" + }, + "0x11e8F3eA3C6FcF12EcfF2722d75CEFC539c51a1C": { + "balance": "0x3782dace9d90000000" + }, + "0x9eAF5590f2c84912A08de97FA28d0529361Deb9E": { + "balance": "0x3782dace9d90000000" + }, + "0x1003ff39d25F2Ab16dBCc18EcE05a9B6154f65F4": { + "balance": "0x3782dace9d90000000" + }, + "0x4779d18931B35540F84b0cd0e9633855B84df7b8": { + "balance": "0x3782dace9d90000000" + }, + "0x1c87Bb9234aeC6aDc580EaE6C8B59558A4502220": { + "balance": "0x3782dace9d90000000" + }, + "0x0d803cdeEe5990f22C2a8DF10A695D2312dA26CC": { + "balance": "0x3782dace9d90000000" + }, + "0xAb707cb80e7de7C75d815B1A653433F3EEc44c74": { + "balance": "0x3782dace9d90000000" + }, + "0xe8B1ff302A740fD2C6e76B620d45508dAEc2DDFf": { + "balance": "0x3782dace9d90000000" + }, + "0xa0EC9eE47802CeB56eb58ce80F3E41630B771b04": { + "balance": "0x3782dace9d90000000" + }, + "0x042a63149117602129B6922ecFe3111168C2C323": { + "balance": "0x3782dace9d90000000" + }, + "0xA1196426b41627ae75Ea7f7409E074BE97367da2": { + "balance": "0x3782dace9d90000000" + }, + "0xE74cEf90b6CF1a77FEfAd731713e6f53e575C183": { + "balance": "0x3782dace9d90000000" + }, + "0x7Df8Efa6d6F1CB5C4f36315e0AcB82b02Ae8BA40": { + "balance": "0x3782dace9d90000000" + }, + "0x9E126C57330FA71556628e0aabd6B6B6783d99fA": { + "balance": "0x3782dace9d90000000" + }, + "0xcBDc0F9a4C38f1e010bD3B6e43598A55D1868c23": { + "balance": "0x3782dace9d90000000" + }, + "0xBc5BdceE96b1BC47822C74e6f64186fbA7d686be": { + "balance": "0x3782dace9d90000000" + }, + "0x0536896a5e38BbD59F3F369FF3682677965aBD19": { + "balance": "0x3782dace9d90000000" + }, + "0xFE0f143FcAD5B561b1eD2AC960278A2F23559Ef9": { + "balance": "0x3782dace9d90000000" + }, + "0x98D08079928FcCB30598c6C6382ABfd7dbFaA1cD": { + "balance": "0x3782dace9d90000000" + }, + "0x0167001000000000000000000000000000000006": { + "contractName": "SharedAddressManagerImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74" + }, + "code": "0x608060405260043610610126575f3560e01c80635c975abb116100a85780638da5cb5b1161006d5780638da5cb5b14610301578063a86f9d9e1461031e578063d8f4648f1461033d578063e07baba61461035c578063e30c39781461039b578063f2fde38b146103b8575f80fd5b80635c975abb14610291578063715018a6146102b157806379ba5097146102c55780638456cb59146102d95780638abf6077146102ed575f80fd5b80633ab76e9f116100ee5780633ab76e9f1461020a5780633eb6b8cf146102295780633f4ba83a146102485780634f1ef2861461025c57806352d1902d1461026f575f80fd5b8063069489a21461012a57806319ab453c1461014057806328f713cc1461015f5780633075db56146101c75780633659cfe6146101eb575b5f80fd5b348015610135575f80fd5b5061013e6103d7565b005b34801561014b575f80fd5b5061013e61015a366004611193565b610487565b34801561016a575f80fd5b506101aa6101793660046111ca565b67ffffffffffffffff919091165f90815260fb6020908152604080832093835292905220546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101d2575f80fd5b506101db61055f565b60405190151581526020016101be565b3480156101f6575f80fd5b5061013e610205366004611193565b610573565b348015610215575f80fd5b506097546101aa906001600160a01b031681565b348015610234575f80fd5b506101aa610243366004611201565b61063a565b348015610253575f80fd5b5061013e610650565b61013e61026a36600461124e565b610664565b34801561027a575f80fd5b50610283610719565b6040519081526020016101be565b34801561029c575f80fd5b506101db60c954610100900460ff1660021490565b3480156102bc575f80fd5b5061013e6107ca565b3480156102d0575f80fd5b5061013e6107db565b3480156102e4575f80fd5b5061013e610852565b3480156102f8575f80fd5b506101aa610865565b34801561030c575f80fd5b506033546001600160a01b03166101aa565b348015610329575f80fd5b506101aa61033836600461130c565b610873565b348015610348575f80fd5b5061013e610357366004611336565b61087f565b348015610367575f80fd5b5060c9546103829062010000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101be565b3480156103a6575f80fd5b506065546001600160a01b03166101aa565b3480156103c3575f80fd5b5061013e6103d2366004611193565b61095d565b6103df6109ce565b5f54600290610100900460ff161580156103ff57505f5460ff8083169116105b6104245760405162461bcd60e51b815260040161041b90611373565b60405180910390fd5b5f8054609780546001600160a01b0319163017905561ffff191660ff83169081176101001761ff0019169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b5f54610100900460ff16158080156104a557505f54600160ff909116105b806104be5750303b1580156104be57505f5460ff166001145b6104da5760405162461bcd60e51b815260040161041b90611373565b5f805460ff1916600117905580156104fb575f805461ff0019166101001790555b61050482610a28565b609780546001600160a01b03191630179055801561055b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b5f600261056a610a86565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000000061630036105bb5760405162461bcd60e51b815260040161041b906113c1565b7f00000000000000000000000001670010000000000000000000000000000000066001600160a01b03166105ed610ac5565b6001600160a01b0316146106135760405162461bcd60e51b815260040161041b9061140d565b61061c81610ae0565b604080515f8082526020820190925261063791839190610ae8565b50565b5f610646848484610c57565b90505b9392505050565b610658610caa565b610662335f610d3b565b565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000000061630036106ac5760405162461bcd60e51b815260040161041b906113c1565b7f00000000000000000000000001670010000000000000000000000000000000066001600160a01b03166106de610ac5565b6001600160a01b0316146107045760405162461bcd60e51b815260040161041b9061140d565b61070d82610ae0565b61055b82826001610ae8565b5f306001600160a01b037f000000000000000000000000016700100000000000000000000000000000000616146107b85760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161041b565b505f8051602061154683398151915290565b6107d26109ce565b6106625f610d54565b60655433906001600160a01b031681146108495760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161041b565b61063781610d54565b61085a610d6d565b610662336001610d3b565b5f61086e610ac5565b905090565b5f610649468484610c57565b6108876109ce565b67ffffffffffffffff83165f90815260fb602090815260408083208584529091529020546001600160a01b039081169082168190036108d95760405163a883089360e01b815260040160405180910390fd5b67ffffffffffffffff84165f81815260fb6020908152604080832087845282529182902080546001600160a01b0319166001600160a01b038781169182179092558351908152908516918101919091528592917f500dcd607a98daece9bccc2511bf6032471252929de73caf507aae0e082f8453910160405180910390a350505050565b6109656109ce565b606580546001600160a01b0383166001600160a01b031990911681179091556109966033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146106625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161041b565b5f54610100900460ff16610a4e5760405162461bcd60e51b815260040161041b90611459565b610a56610dde565b610a746001600160a01b03821615610a6e5781610d54565b33610d54565b5060c9805461ff001916610100179055565b5f610a9046610e04565b15610abb57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020611546833981519152546001600160a01b031690565b6106376109ce565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610b2057610b1b83610e37565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610b7a575060408051601f3d908101601f19168201909252610b77918101906114a4565b60015b610bdd5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161041b565b5f805160206115468339815191528114610c4b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161041b565b50610b1b838383610ed2565b5f610c628484610efc565b905081158015610c7957506001600160a01b038116155b1561064957604051632b0d65db60e01b815267ffffffffffffffff851660048201526024810184905260440161041b565b610cbe60c954610100900460ff1660021490565b610cdb5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff0019909116620100004267ffffffffffffffff1602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b604051630c2b8f8f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561063781610fa7565b610d8160c954610100900460ff1660021490565b15610d9f5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610d31565b5f54610100900460ff166106625760405162461bcd60e51b815260040161041b90611459565b5f6001821480610e15575061426882145b80610e22575062aa36a782145b80610e315750610e3182610ff8565b92915050565b6001600160a01b0381163b610ea45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161041b565b5f8051602061154683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610edb8361100f565b5f82511180610ee75750805b15610b1b57610ef6838361104e565b50505050565b6097545f906001600160a01b031680610f2857604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b815267ffffffffffffffff85166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015610f7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9f91906114bb565b949350505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f617e2c8210158015610e31575050617e90101590565b61101881610e37565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061064983836040518060600160405280602781526020016115666027913960605f80856001600160a01b03168560405161108a91906114f8565b5f60405180830381855af49150503d805f81146110c2576040519150601f19603f3d011682016040523d82523d5f602084013e6110c7565b606091505b50915091506110d8868383876110e2565b9695505050505050565b606083156111505782515f03611149576001600160a01b0385163b6111495760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610f9f565b610f9f83838151156111655781518083602001fd5b8060405162461bcd60e51b815260040161041b9190611513565b6001600160a01b0381168114610637575f80fd5b5f602082840312156111a3575f80fd5b81356106498161117f565b803567ffffffffffffffff811681146111c5575f80fd5b919050565b5f80604083850312156111db575f80fd5b6111e4836111ae565b946020939093013593505050565b803580151581146111c5575f80fd5b5f805f60608486031215611213575f80fd5b61121c846111ae565b925060208401359150611231604085016111f2565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561125f575f80fd5b823561126a8161117f565b9150602083013567ffffffffffffffff80821115611286575f80fd5b818501915085601f830112611299575f80fd5b8135818111156112ab576112ab61123a565b604051601f8201601f19908116603f011681019083821181831017156112d3576112d361123a565b816040528281528860208487010111156112eb575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f806040838503121561131d575f80fd5b8235915061132d602084016111f2565b90509250929050565b5f805f60608486031215611348575f80fd5b611351846111ae565b92506020840135915060408401356113688161117f565b809150509250925092565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f602082840312156114b4575f80fd5b5051919050565b5f602082840312156114cb575f80fd5b81516106498161117f565b5f5b838110156114f05781810151838201526020016114d8565b50505f910152565b5f82516115098184602087016114d6565b9190910192915050565b602081525f82518060208401526115318160408501602087016114d6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bfe7dc08ce4aced156fa889d420c17e2880bc25c953f1c68c4fd3102128e53e064736f6c63430008180033", + "balance": "0x0" + }, + "0x1670010000000000000000000000000000000006": { + "contractName": "SharedAddressManager", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74", + "0xc64d73fae391b0ac595df47d373c227e7f86156e3d98ea2db53384d097ed1368": "0x0000000000000000000000001670010000000000000000000000000000000001", + "0x874594376407a7a3ecea7d4704f3d74c6c46d5ebede74ed82e228810d8de14e8": "0x0000000000000000000000001670010000000000000000000000000000000002", + "0x2723bcf67bd1580da6815ff7d2e86d877ad3a715975e5ec695c979712859d633": "0x0000000000000000000000001670010000000000000000000000000000000003", + "0x0b9331c6e6848711b59bebda4cb38292225176ce8cfca5d6019d5b562dc3ed9e": "0x0000000000000000000000001670010000000000000000000000000000000004", + "0x30e0422248fc90822e500074357003173b9f5edac82e6cc3679f5f9b5ae0843a": "0x0000000000000000000000001670010000000000000000000000000000000005", + "0xfe44fe816c0baa33783639d99e595cb6de463e186ec113aaed043e42d2c4e279": "0x0000000000000000000000000167001000000000000000000000000000010096", + "0xd2d6c2a7f8afdb0440c97960518d1f1133dc92587d9c6884dbaff6290e06319c": "0x0000000000000000000000000167001000000000000000000000000000010097", + "0x6db8284aa664f2ba76ffc7a2219f82b728ba258e79df0e93d3eb45b5cb231a69": "0x0000000000000000000000000167001000000000000000000000000000010098", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167001000000000000000000000000000000006" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220745d04b98b3aed6181cb020799fe1baaf079fe0385f5ffea02ae5081898469a064736f6c63430008180033", + "balance": "0x0" + }, + "0x0167001000000000000000000000000000000001": { + "contractName": "BridgeImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74" + }, + "code": "0x60806040526004361061021d575f3560e01c806382b5e8891161011e578063b8acae0e116100a8578063e07baba61161006d578063e07baba61461066b578063e30c3978146106a8578063eefbf17e146106c5578063f09a4016146106eb578063f2fde38b1461070a575f80fd5b8063b8acae0e146105af578063be880c81146105ce578063c012fa77146105e4578063d0496d6a14610603578063d1aaa5df1461064b575f80fd5b80638e3881a9116100ee5780638e3881a9146104fe578063913b16cb1461053c5780639efc7a2e1461055b578063a730cdfb1461057a578063a86f9d9e14610590575f80fd5b806382b5e8891461049a5780638456cb59146104b95780638abf6077146104cd5780638da5cb5b146104e1575f80fd5b80633f4ba83a116101aa5780635c975abb1161016f5780635c975abb146103ff57806360620c6b1461041f578063715018a61461043e57806379ba5097146104525780637cbadfaa14610466575f80fd5b80633f4ba83a14610381578063422770fa146103955780634f1ef286146103b957806352d1902d146103cc5780635862f6e1146103e0575f80fd5b80633075db56116101f05780633075db56146102ad5780633659cfe6146102d15780633ab76e9f146102f05780633c6cf473146103275780633eb6b8cf14610362575f80fd5b80630432873c14610221578063069489a2146102425780631bdb0037146102565780632035065e14610280575b5f80fd5b34801561022c575f80fd5b5061024061023b366004613102565b610729565b005b34801561024d575f80fd5b50610240610a23565b610269610264366004613150565b610ada565b6040516102779291906132d1565b60405180910390f35b34801561028b575f80fd5b5061029f61029a3660046132e9565b610e8c565b60405161027792919061339f565b3480156102b8575f80fd5b506102c1611348565b6040519015158152602001610277565b3480156102dc575f80fd5b506102406102eb3660046133ee565b61135c565b3480156102fb575f80fd5b5060975461030f906001600160a01b031681565b6040516001600160a01b039091168152602001610277565b348015610332575f80fd5b50610355610341366004613409565b60fc6020525f908152604090205460ff1681565b6040516102779190613420565b34801561036d575f80fd5b5061030f61037c366004613444565b611423565b34801561038c575f80fd5b50610240611439565b3480156103a0575f80fd5b506103ab62030d4081565b604051908152602001610277565b6102406103c7366004613546565b61144d565b3480156103d7575f80fd5b506103ab611506565b3480156103eb575f80fd5b506102c16103fa3660046132e9565b6115b8565b34801561040a575f80fd5b506102c160c954610100900460ff1660021490565b34801561042a575f80fd5b506102c1610439366004613150565b611623565b348015610449575f80fd5b506102406116f1565b34801561045d575f80fd5b50610240611702565b348015610471575f80fd5b50610485610480366004613409565b611779565b60405163ffffffff9091168152602001610277565b3480156104a5575f80fd5b506102406104b43660046133ee565b611797565b3480156104c4575f80fd5b50610240611817565b3480156104d8575f80fd5b5061030f61182a565b3480156104ec575f80fd5b506033546001600160a01b031661030f565b348015610509575f80fd5b5061051d610518366004613592565b611838565b6040805192151583526001600160a01b03909116602083015201610277565b348015610547575f80fd5b50610240610556366004613150565b611864565b348015610566575f80fd5b506102406105753660046132e9565b611a4f565b348015610585575f80fd5b506104856201d4c081565b34801561059b575f80fd5b5061030f6105aa3660046135ab565b611d48565b3480156105ba575f80fd5b506102c16105c93660046132e9565b611d54565b3480156105d9575f80fd5b50610485620c350081565b3480156105ef575f80fd5b506103ab6105fe3660046136cd565b611db5565b34801561060e575f80fd5b50610617611de4565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610277565b348015610656575f80fd5b506103ab610665366004613409565b60031890565b348015610676575f80fd5b5060c954610690906201000090046001600160401b031681565b6040516001600160401b039091168152602001610277565b3480156106b3575f80fd5b506065546001600160a01b031661030f565b3480156106d0575f80fd5b5060fb5461069090600160401b90046001600160401b031681565b3480156106f6575f80fd5b506102406107053660046136fe565b611e38565b348015610715575f80fd5b506102406107243660046133ee565b611eff565b61073960e0830160c08401613592565b46816001600160401b03161461076257604051631c6c777560e31b815260040160405180910390fd5b61077260a0840160808501613592565b6001600160401b0381161580610790575046816001600160401b0316145b156107ae57604051631c6c777560e31b815260040160405180910390fd5b6107c260c954610100900460ff1660021490565b156107e05760405163bae6e2a960e01b815260040160405180910390fd5b60026107ea611f70565b60ff160361080b5760405163dfc60d8560e01b815260040160405180910390fd5b6108156002611faf565b5f6108226105fe8661372a565b905061082f816001611ff7565b61083d856101200135612049565b61085a576040516335856fbd60e21b815260040160405180910390fd5b5f61087f8661087a6d7369676e616c5f7365727669636560901b5f611d48565b6120ea565b156108ca576108c38661012001356188b860405180602001604052805f8152508960e00160208101906108b291906133ee565b6001600160a01b03169291906121e1565b9050610944565b6108da6060870160408801613735565b63ffffffff1615806108e95750845b80156109175750610901610100870160e088016133ee565b6001600160a01b0316336001600160a01b031614155b15610935576040516372b6e1c360e11b815260040160405180910390fd5b61094186835a5f61221e565b90505b801561095a57610955826002612311565b610a11565b84156109f85761096b826003612311565b6109866d7369676e616c5f7365727669636560901b5f611d48565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156109ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f2919061374e565b50610a11565b60405163161e3ead60e01b815260040160405180910390fd5b5050610a1d6001611faf565b50505050565b610a2b6123ce565b5f54600290610100900460ff16158015610a4b57505f5460ff8083169116105b610a705760405162461bcd60e51b8152600401610a6790613765565b60405180910390fd5b5f805460fb805467ffffffffffffffff1916905560ff82815561010083815561ff001991851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820152610b4060c0840160a085016133ee565b6001600160a01b038116610b675760405163538ba4f960e01b815260040160405180910390fd5b610b78610100850160e086016133ee565b6001600160a01b038116610b9f5760405163538ba4f960e01b815260040160405180910390fd5b610baf60e0860160c08701613592565b6001600160401b0381161580610bcd575046816001600160401b0316145b15610beb57604051631c6c777560e31b815260040160405180910390fd5b610bff60c954610100900460ff1660021490565b15610c1d5760405163bae6e2a960e01b815260040160405180910390fd5b6002610c27611f70565b60ff1603610c485760405163dfc60d8560e01b815260040160405180910390fd5b610c526002611faf565b610c626060870160408801613735565b63ffffffff165f03610caa57610c7e6040870160208801613592565b6001600160401b031615610ca55760405163c9f5178760e01b815260040160405180910390fd5b610cd2565b610cb386612428565b5f03610cd2576040516308c2ad5360e01b815260040160405180910390fd5b5f610ce661051860e0890160c08a01613592565b50905080610d0757604051631c6c777560e31b815260040160405180910390fd5b34610d186040890160208a01613592565b610d30906001600160401b03166101208a01356137c7565b14610d4e57604051634ac2abdf60e11b815260040160405180910390fd5b610d578761372a565b60fb8054919650600160401b9091046001600160401b0316906008610d7b836137da565b82546101009290920a6001600160401b03818102199093169183160217909155908116865233606087015246166080860152610db685611db5565b9550857fe33fd33b4f45b95b1c196242240c5b5233129d724b578f95b66ce8d8aae9351786604051610de891906137ff565b60405180910390a2610e0b6d7369676e616c5f7365727669636560901b5f611d48565b6001600160a01b03166366ca2bc0876040518263ffffffff1660e01b8152600401610e3891815260200190565b6020604051808303815f875af1158015610e54573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e78919061374e565b5050610e846001611faf565b505050915091565b5f80610ea260c954610100900460ff1660021490565b15610ec05760405163bae6e2a960e01b815260040160405180910390fd5b6002610eca611f70565b60ff1603610eeb5760405163dfc60d8560e01b815260040160405180910390fd5b610ef56002611faf565b5f5a905046610f0a60e0880160c08901613592565b6001600160401b031614610f3157604051631c6c777560e31b815260040160405180910390fd5b610f4160a0870160808801613592565b6001600160401b03161580610f6d575046610f6260a0880160808901613592565b6001600160401b0316145b15610f8b57604051631c6c777560e31b815260040160405180910390fd5b604080516080810182525f808252602082018190529181018290526060810191909152610fbf610100880160e089016133ee565b6001600160a01b031633148015606083015261102e57610fe56060880160408901613735565b63ffffffff165f0361100a576040516372b6e1c360e11b815260040160405180910390fd5b62030d4085111561102e57604051631e3b03c960e01b815260040160405180910390fd5b5f61103b6105fe8961372a565b9050611047815f611ff7565b5f6110636d7369676e616c5f7365727669636560901b5f611d48565b63ffffffff88166020850152905061108d818361108660a08d0160808e01613592565b8b8b61247b565b63ffffffff166040808501919091526110cc906110af908b0160208c01613592565b6110c7906001600160401b03166101208c01356137c7565b612049565b6110e9576040516335856fbd60e21b815260040160405180910390fd5b5f6110f48a836120ea565b1561110d57506002955060019450610120890135611154565b5f846060015161111d575a611126565b6111268b612428565b90506111388b8583886060015161221e565b1561114957600297505f9650611152565b60019750600296505b505b61116460408b0160208c01613592565b6001600160401b0316156112c55761118260408b0160208c01613592565b611195906001600160401b0316826137c7565b9050836060015180156111bc57506111b360608b0160408c01613735565b63ffffffff1615155b156112c557604084015163ffffffff16614e20025a6111f96111e26101408e018e613811565b6020601f909101819004026101a00160041b919050565b63ffffffff9081168801919091036201d4c00181168087525f9183916112229183919061252616565b0390505f61123660608e0160408f01613735565b63ffffffff168d602001602081019061124f9190613592565b6001600160401b03168302816112675761126761385a565b0490505f48830290505f6112ab8f60200160208101906112879190613592565b6001600160401b0316848410156112a35784840160011c6112a5565b845b9061253b565b958690039590506112bf33826188b861254f565b50505050505b6112ed816188b86112dd6101008e0160e08f016133ee565b6001600160a01b0316919061254f565b6112f78388612311565b827f8580f507761043ecdd2bdca084d6fb0109150b3d9842d854d34e3dea6d69387d8b866040516113299291906139fa565b60405180910390a250505050506113406001611faf565b935093915050565b5f6002611353611f70565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000000011630036113a45760405162461bcd60e51b8152600401610a6790613a48565b7f00000000000000000000000001670010000000000000000000000000000000016001600160a01b03166113d6612592565b6001600160a01b0316146113fc5760405162461bcd60e51b8152600401610a6790613a94565b611405816125ad565b604080515f80825260208201909252611420918391906125b5565b50565b5f61142f84848461271f565b90505b9392505050565b611441612771565b61144b335f612801565b565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000000011630036114955760405162461bcd60e51b8152600401610a6790613a48565b7f00000000000000000000000001670010000000000000000000000000000000016001600160a01b03166114c7612592565b6001600160a01b0316146114ed5760405162461bcd60e51b8152600401610a6790613a94565b6114f6826125ad565b611502828260016125b5565b5050565b5f306001600160a01b037f000000000000000000000000016700100000000000000000000000000000000116146115a55760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a67565b505f80516020613ca38339815191525b90565b5f466115ca60a0860160808701613592565b6001600160401b0316146115df57505f611432565b61142f6115fd6d7369676e616c5f7365727669636560901b5f611d48565b61160c6106656105fe8861372a565b61161c60e0880160c08901613592565b86866128ae565b5f4661163560a0840160808501613592565b6001600160401b03161461164a57505f919050565b6116656d7369676e616c5f7365727669636560901b5f611d48565b6001600160a01b03166332676bc6306116806105fe8661372a565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa1580156116c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116eb9190613ae0565b92915050565b6116f96123ce565b61144b5f612930565b60655433906001600160a01b031681146117705760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a67565b61142081612930565b5f6116eb620c35006101a06020601f8601819004020160041b613afb565b806001600160a01b0381166117bf5760405163538ba4f960e01b815260040160405180910390fd5b6040516317066a5760e21b81523060048201526001600160a01b03831690635c19a95c906024015f604051808303815f87803b1580156117fd575f80fd5b505af115801561180f573d5f803e3d5ffd5b505050505050565b61181f612949565b61144b336001612801565b5f611833612592565b905090565b5f8061184f836562726964676560d01b6001611423565b6001600160a01b038116151594909350915050565b61187460e0820160c08301613592565b46816001600160401b03161461189d57604051631c6c777560e31b815260040160405180910390fd5b6118ad60a0830160808401613592565b6001600160401b03811615806118cb575046816001600160401b0316145b156118e957604051631c6c777560e31b815260040160405180910390fd5b6118fd60c954610100900460ff1660021490565b1561191b5760405163bae6e2a960e01b815260040160405180910390fd5b6002611925611f70565b60ff16036119465760405163dfc60d8560e01b815260040160405180910390fd5b6119506002611faf565b611961610100840160e085016133ee565b6001600160a01b0316336001600160a01b031614611992576040516372b6e1c360e11b815260040160405180910390fd5b5f61199f6105fe8561372a565b90506119ac816001611ff7565b6119b7816003612311565b6119d26d7369676e616c5f7365727669636560901b5f611d48565b60405163019b28af60e61b81526003831860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af1158015611a1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3e919061374e565b5050611a4a6001611faf565b505050565b611a5f60a0840160808501613592565b46816001600160401b031614611a8857604051631c6c777560e31b815260040160405180910390fd5b611a9860e0850160c08601613592565b6001600160401b0381161580611ab6575046816001600160401b0316145b15611ad457604051631c6c777560e31b815260040160405180910390fd5b611ae860c954610100900460ff1660021490565b15611b065760405163bae6e2a960e01b815260040160405180910390fd5b6002611b10611f70565b60ff1603611b315760405163dfc60d8560e01b815260040160405180910390fd5b611b3b6002611faf565b5f611b486105fe8761372a565b9050611b54815f611ff7565b5f611b706d7369676e616c5f7365727669636560901b5f611d48565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611bbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be09190613ae0565b611bfd5760405163ab035ad560e01b815260040160405180910390fd5b611c1c8160038418611c1560e08b0160c08c01613592565b898961247b565b50611c28826004612311565b611c36876101200135612049565b611c53576040516335856fbd60e21b815260040160405180910390fd5b611c7c62bc399d60e11b611c6d60808a0160608b016133ee565b6001600160a01b0316906129ba565b15611d1957611c9b8230611c9660a08b0160808c01613592565b612a47565b611cab60808801606089016133ee565b6001600160a01b0316630178733a88610120013589856040518463ffffffff1660e01b8152600401611cde929190613b1f565b5f604051808303818588803b158015611cf5575f80fd5b505af1158015611d07573d5f803e3d5ffd5b5050505050611d14612b18565b611d35565b611d356101208801356188b86112dd60c08b0160a08c016133ee565b5050611d416001611faf565b5050505050565b5f61143246848461271f565b5f46611d6660e0860160c08701613592565b6001600160401b031614611d7b57505f611432565b61142f611d996d7369676e616c5f7365727669636560901b5f611d48565b611da56105fe8761372a565b61161c60a0880160808901613592565b5f81604051602001611dc79190613b40565b604051602081830303815290604052805190602001209050919050565b604080516060810182525f8082526020820181905291810191909152611e08612b3d565b80519091501580611e1a575080515f19145b156115b557604051635ceed17360e01b815260040160405180910390fd5b5f54610100900460ff1615808015611e5657505f54600160ff909116105b80611e6f5750303b158015611e6f57505f5460ff166001145b611e8b5760405162461bcd60e51b8152600401610a6790613765565b5f805460ff191660011790558015611eac575f805461ff0019166101001790555b611eb68383612c37565b8015611a4a575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b611f076123ce565b606580546001600160a01b0383166001600160a01b03199091168117909155611f386033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f611f7a46612c71565b15611fa557507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b611fb846612c71565b15611fe357807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b80600481111561200957612009613377565b5f83815260fc602052604090205460ff16600481111561202b5761202b613377565b14611502576040516319d893ad60e21b815260040160405180910390fd5b5f806120666c38bab7ba30afb6b0b730b3b2b960991b6001611d48565b90506001600160a01b03811661207f5750600192915050565b6040516315c638fb60e31b81525f6004820152602481018490526001600160a01b0382169063ae31c7d8906044015f604051808303815f87803b1580156120c4575f80fd5b505af19250505080156120d5575060015b6120e157505f92915050565b50600192915050565b5f806120fe610120850161010086016133ee565b6001600160a01b031603612114575060016116eb565b30612127610120850161010086016133ee565b6001600160a01b03160361213d575060016116eb565b6001600160a01b038216612159610120850161010086016133ee565b6001600160a01b03160361216f575060016116eb565b600461217f610140850185613811565b9050101580156121b65750637f07c94760e01b6121a0610140850185613811565b6121a991613b76565b6001600160e01b03191614155b801561143257506114326121d2610120850161010086016133ee565b6001600160a01b03163b151590565b5f6001600160a01b03851661220957604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b5f3061223060808701606088016133ee565b6001600160a01b03160361224657612246613ba6565b825f0361225457505f612309565b6122788461226860808801606089016133ee565b611c9660a0890160808a01613592565b5f61228b610120870161010088016133ee565b90506101208601355f6122a2610140890189613811565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525084519495509384935083925090506020850186888cf194505a905085156122fc576122fc8188612c9e565b612304612b18565b505050505b949350505050565b80600481111561232357612323613377565b5f83815260fc602052604090205460ff16600481111561234557612345613377565b03612363576040516319d893ad60e21b815260040160405180910390fd5b5f82815260fc60205260409020805482919060ff1916600183600481111561238d5761238d613377565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b2575634826040516123c29190613420565b60405180910390a25050565b6033546001600160a01b0316331461144b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a67565b5f8061244261243b610140850185613811565b9050611779565b63ffffffff1690508061247361245e6060860160408701613735565b63ffffffff168361252690919063ffffffff16565b039392505050565b5f856001600160a01b031663910af6ed856124a0876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b81526004016124c3959493929190613bba565b6020604051808303815f875af19250505080156124fd575060408051601f3d908101601f191682019092526124fa9181019061374e565b60015b61251a576040516314504c7360e31b815260040160405180910390fd5b90505b95945050505050565b5f8183116125345781611432565b5090919050565b5f8183116125495782611432565b50919050565b815f0361255b57505050565b61257583838360405180602001604052805f8152506121e1565b611a4a57604051634c67134d60e11b815260040160405180910390fd5b5f80516020613ca3833981519152546001600160a01b031690565b6114206123ce565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156125e857611a4a83612cb2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612642575060408051601f3d908101601f1916820190925261263f9181019061374e565b60015b6126a55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610a67565b5f80516020613ca383398151915281146127135760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610a67565b50611a4a838383612d4d565b5f61272a8484612d71565b90508115801561274157506001600160a01b038116155b1561143257604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610a67565b61278560c954610100900460ff1660021490565b6127a25760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6033546001600160a01b038381169116148061284957506128346d636861696e5f7761746368646f6760901b6001611d48565b6001600160a01b0316826001600160a01b0316145b15612852575050565b80801561288c57506128776e6272696467655f7761746368646f6760881b6001611d48565b6001600160a01b0316826001600160a01b0316145b15612895575050565b604051630d85cccf60e11b815260040160405180910390fd5b5f856001600160a01b031663ce9d0820856128d3876562726964676560d01b5f611423565b8887876040518663ffffffff1660e01b81526004016128f6959493929190613bba565b5f6040518083038186803b15801561290c575f80fd5b505afa92505050801561291d575060015b61292857505f61251d565b50600161251d565b606580546001600160a01b031916905561142081612e13565b61295d60c954610100900460ff1660021490565b1561297b5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016127f7565b5f6001600160a01b0383163b6129d157505f6116eb565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015612a3b575060408051601f3d908101601f19168201909252612a3891810190613ae0565b60015b156116eb579392505050565b612a5046612c71565b15612ac357827fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2b95d817fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2ba5d807fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2bb5d505050565b604080516060810182528481526001600160a01b0393909316602084018190526001600160401b0392909216920182905260fd9290925560fe80546001600160e01b031916909217600160a01b909102179055565b612b2146612c71565b15612b315761144b5f8080612a47565b61144b5f198080612a47565b604080516060810182525f8082526020820181905291810191909152612b6246612c71565b15612bfb5750604080516060810182527fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2b95c81526001600160a01b037fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2ba5c1660208201526001600160401b037fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2bb5c169181019190915290565b506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b806001600160a01b038116612c5f5760405163538ba4f960e01b815260040160405180910390fd5b612c6883612e64565b611a4a82612ec2565b5f6001821480612c82575061426882145b80612c8f575062aa36a782145b806116eb57506116eb82612f32565b612ca9603f82613bf0565b82101561150257fe5b6001600160a01b0381163b612d1f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610a67565b5f80516020613ca383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612d5683612f49565b5f82511180612d625750805b15611a4a57610a1d8383612f88565b6097545f906001600160a01b031680612d9d57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015612def573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123099190613c0f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612e8a5760405162461bcd60e51b8152600401610a6790613c2a565b612e92612fad565b612eb06001600160a01b03821615612eaa5781612930565b33612930565b5060c9805461ff001916610100179055565b5f54610100900460ff16612ee85760405162461bcd60e51b8152600401610a6790613c2a565b6001600160401b03461115612f105760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c82101580156116eb575050617e90101590565b612f5281612cb2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606114328383604051806060016040528060278152602001613cc360279139612fd3565b5f54610100900460ff1661144b5760405162461bcd60e51b8152600401610a6790613c2a565b60605f80856001600160a01b031685604051612fef9190613c75565b5f60405180830381855af49150503d805f8114613027576040519150601f19603f3d011682016040523d82523d5f602084013e61302c565b606091505b509150915061303d86838387613047565b9695505050505050565b606083156130b55782515f036130ae576001600160a01b0385163b6130ae5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a67565b5081612309565b61230983838151156130ca5781518083602001fd5b8060405162461bcd60e51b8152600401610a679190613c90565b5f6101608284031215612549575f80fd5b8015158114611420575f80fd5b5f8060408385031215613113575f80fd5b82356001600160401b03811115613128575f80fd5b613134858286016130e4565b9250506020830135613145816130f5565b809150509250929050565b5f60208284031215613160575f80fd5b81356001600160401b03811115613175575f80fd5b612309848285016130e4565b5f5b8381101561319b578181015183820152602001613183565b50505f910152565b5f81518084526131ba816020860160208601613181565b601f01601f19169290920160200192915050565b80516001600160401b031682525f61016060208301516131f960208601826001600160401b03169052565b506040830151613211604086018263ffffffff169052565b50606083015161322c60608601826001600160a01b03169052565b50608083015161324760808601826001600160401b03169052565b5060a083015161326260a08601826001600160a01b03169052565b5060c083015161327d60c08601826001600160401b03169052565b5060e083015161329860e08601826001600160a01b03169052565b50610100838101516001600160a01b03169085015261012080840151908501526101408084015181860183905261303d838701826131a3565b828152604060208201525f61142f60408301846131ce565b5f805f604084860312156132fb575f80fd5b83356001600160401b0380821115613311575f80fd5b61331d878388016130e4565b94506020860135915080821115613332575f80fd5b818601915086601f830112613345575f80fd5b813581811115613353575f80fd5b876020828501011115613364575f80fd5b6020830194508093505050509250925092565b634e487b7160e01b5f52602160045260245ffd5b6005811061339b5761339b613377565b9052565b604081016133ad828561338b565b600483106133bd576133bd613377565b8260208301529392505050565b6001600160a01b0381168114611420575f80fd5b80356133e9816133ca565b919050565b5f602082840312156133fe575f80fd5b8135611432816133ca565b5f60208284031215613419575f80fd5b5035919050565b602081016116eb828461338b565b80356001600160401b03811681146133e9575f80fd5b5f805f60608486031215613456575f80fd5b61345f8461342e565b9250602084013591506040840135613476816130f5565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b03811182821017156134b8576134b8613481565b60405290565b5f82601f8301126134cd575f80fd5b81356001600160401b03808211156134e7576134e7613481565b604051601f8301601f19908116603f0116810190828211818310171561350f5761350f613481565b81604052838152866020858801011115613527575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f8060408385031215613557575f80fd5b8235613562816133ca565b915060208301356001600160401b0381111561357c575f80fd5b613588858286016134be565b9150509250929050565b5f602082840312156135a2575f80fd5b6114328261342e565b5f80604083850312156135bc575f80fd5b823591506020830135613145816130f5565b803563ffffffff811681146133e9575f80fd5b5f61016082840312156135f2575f80fd5b6135fa613495565b90506136058261342e565b81526136136020830161342e565b6020820152613624604083016135ce565b6040820152613635606083016133de565b60608201526136466080830161342e565b608082015261365760a083016133de565b60a082015261366860c0830161342e565b60c082015261367960e083016133de565b60e082015261010061368c8184016133de565b908201526101208281013590820152610140808301356001600160401b038111156136b5575f80fd5b6136c1858286016134be565b82840152505092915050565b5f602082840312156136dd575f80fd5b81356001600160401b038111156136f2575f80fd5b612309848285016135e1565b5f806040838503121561370f575f80fd5b823561371a816133ca565b91506020830135613145816133ca565b5f6116eb36836135e1565b5f60208284031215613745575f80fd5b611432826135ce565b5f6020828403121561375e575f80fd5b5051919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156116eb576116eb6137b3565b5f6001600160401b038083168181036137f5576137f56137b3565b6001019392505050565b602081525f61143260208301846131ce565b5f808335601e19843603018112613826575f80fd5b8301803591506001600160401b0382111561383f575f80fd5b602001915036819003821315613853575f80fd5b9250929050565b634e487b7160e01b5f52601260045260245ffd5b5f808335601e19843603018112613883575f80fd5b83016020810192503590506001600160401b038111156138a1575f80fd5b803603821315613853575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f6101606138f5846138e88561342e565b6001600160401b03169052565b6139016020840161342e565b6001600160401b0316602085015261391b604084016135ce565b63ffffffff166040850152613932606084016133de565b6001600160a01b0316606085015261394c6080840161342e565b6001600160401b0316608085015261396660a084016133de565b6001600160a01b031660a085015261398060c0840161342e565b6001600160401b031660c085015261399a60e084016133de565b6001600160a01b031660e08501526101006139b68482016133de565b6001600160a01b03169085015261012083810135908501526101406139dd8185018561386e565b83838801526139ef84880182846138af565b979650505050505050565b60a081525f613a0c60a08301856138d7565b905063ffffffff808451166020840152806020850151166040840152806040850151166060840152506060830151151560808301529392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215613af0575f80fd5b8151611432816130f5565b63ffffffff818116838216019080821115613b1857613b186137b3565b5092915050565b604081525f613b3160408301856138d7565b90508260208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f61143260808301846131ce565b6001600160e01b03198135818116916004851015613b9e5780818660040360031b1b83161692505b505092915050565b634e487b7160e01b5f52600160045260245ffd5b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f6139ef6080830184866138af565b5f82613c0a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215613c1f575f80fd5b8151611432816133ca565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613c86818460208701613181565b9190910192915050565b602081525f61143260208301846131a356fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c0f651cec71c3210c183814a0c036d934f5f2d3f2734eaa1f19507e98b412f1364736f6c63430008180033", + "balance": "0x0" + }, + "0x1670010000000000000000000000000000000001": { + "contractName": "Bridge", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670010000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167001000000000000000000000000000000001" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220745d04b98b3aed6181cb020799fe1baaf079fe0385f5ffea02ae5081898469a064736f6c63430008180033", + "balance": "0x033b258556117b43a1e00000" + }, + "0x0167001000000000000000000000000000000002": { + "contractName": "ERC20VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74" + }, + "code": "0x608060405260043610620001df575f3560e01c806367090ccf11620001065780639aa8605c116200009e578063e07baba6116200006a578063e07baba61462000567578063e30c397814620005a7578063f09a401614620005c6578063f2fde38b14620005ea575f80fd5b80639aa8605c14620004ce578063a86f9d9e1462000505578063b84d9ffe1462000529578063d56ad7ac146200054f575f80fd5b80637f07c94711620000de5780637f07c947146200046a5780638456cb5914620004815780638abf607714620004985780638da5cb5b14620004af575f80fd5b806367090ccf14620003f8578063715018a6146200043c57806379ba50971462000453575f80fd5b80633659cfe6116200017a5780633f4ba83a11620001525780633f4ba83a14620003915780634f1ef28614620003a857806352d1902d14620003bf5780635c975abb14620003d6575f80fd5b80633659cfe614620003285780633ab76e9f146200034c5780633eb6b8cf146200036d575f80fd5b806306fdde0311620001ba57806306fdde03146200027f5780630e7eeb7914620002a15780630ecd8be914620002d45780633075db561462000311575f80fd5b80630178733a14620001e357806301ffc9a714620001fc578063066fe7b41462000235575b5f80fd5b620001fa620001f43660046200367c565b6200060e565b005b34801562000208575f80fd5b50620002206200021a366004620036c5565b620007b6565b60405190151581526020015b60405180910390f35b34801562000241575f80fd5b50620002706200025336600462003703565b61013060209081525f928352604080842090915290825290205481565b6040519081526020016200022c565b3480156200028b575f80fd5b506a195c98cc8c17dd985d5b1d60aa1b62000270565b348015620002ad575f80fd5b5062000220620002bf36600462003734565b61012f6020525f908152604090205460ff1681565b348015620002e0575f80fd5b50620002f8620002f236600462003752565b62000808565b6040516001600160a01b0390911681526020016200022c565b3480156200031d575f80fd5b506200022062000f6a565b34801562000334575f80fd5b50620001fa6200034636600462003734565b62000f80565b34801562000358575f80fd5b50609754620002f8906001600160a01b031681565b34801562000379575f80fd5b50620002f86200038b366004620037c1565b6200105c565b3480156200039d575f80fd5b50620001fa62001074565b620001fa620003b93660046200391e565b6200108c565b348015620003cb575f80fd5b50620002706200114d565b348015620003e2575f80fd5b506200022060c954610100900460ff1660021490565b34801562000404575f80fd5b50620002f86200041636600462003703565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b34801562000448575f80fd5b50620001fa62001201565b3480156200045f575f80fd5b50620001fa62001216565b620001fa6200047b36600462003970565b62001291565b3480156200048d575f80fd5b50620001fa620013f1565b348015620004a4575f80fd5b50620002f862001408565b348015620004bb575f80fd5b506033546001600160a01b0316620002f8565b348015620004da575f80fd5b50620004f2620004ec36600462003734565b62001418565b6040516200022c95949392919062003a31565b34801562000511575f80fd5b50620002f86200052336600462003a8e565b6200157d565b620005406200053a36600462003ab4565b6200158b565b6040516200022c919062003acb565b3480156200055b575f80fd5b50620002706276a70081565b34801562000573575f80fd5b5060c9546200058e906201000090046001600160401b031681565b6040516001600160401b0390911681526020016200022c565b348015620005b3575f80fd5b506065546001600160a01b0316620002f8565b348015620005d2575f80fd5b50620001fa620005e436600462003bcc565b62001a00565b348015620005f6575f80fd5b50620001fa6200060836600462003734565b62001b18565b6200062360c954610100900460ff1660021490565b15620006425760405163bae6e2a960e01b815260040160405180910390fd5b60026200064e62001b8c565b60ff1603620006705760405163dfc60d8560e01b815260040160405180910390fd5b6200067c600262001bce565b6200068662001c19565b505f6200069861014084018462003beb565b620006a891600490829062003c37565b810190620006b7919062003c60565b90505f8082806020019051810190620006d1919062003d14565b9350505091505f620006f9838760a0016020810190620006f2919062003734565b8462001d16565b9050620007276101208701356200071760c0890160a08a0162003734565b6001600160a01b03169062001dc8565b6200073960c0870160a0880162003734565b6001600160a01b0316857f3dea0f5955b148debf6212261e03bd80eaf8534bee43780452d16637dcc22dd5856020015184866040516200079a939291906001600160a01b039384168152919092166020820152604081019190915260600190565b60405180910390a350505050620007b2600162001bce565b5050565b5f6001600160e01b0319821662bc399d60e11b1480620007e657506001600160e01b03198216637f07c94760e01b145b806200080257506001600160e01b031982166301ffc9a760e01b145b92915050565b5f6200081362001dd5565b60026200081f62001b8c565b60ff1603620008415760405163dfc60d8560e01b815260040160405180910390fd5b6200084d600262001bce565b6001600160a01b03821615806200088457506001600160a01b038281165f90815261012d6020526040902054600160401b90041615155b806200089857506001600160a01b0382163b155b15620008b75760405163dc63f98760e01b815260040160405180910390fd5b5f620008ca604085016020860162003734565b6001600160a01b03161480620008f6575046620008eb602085018562003e13565b6001600160401b0316145b156200091557604051638257f7f560e01b815260040160405180910390fd5b6001600160a01b0382165f90815261012f602052604090205460ff161562000950576040516375c42fc160e01b815260040160405180910390fd5b5f6101308162000964602087018762003e13565b6001600160401b031681526020019081526020015f205f85602001602081019062000990919062003734565b6001600160a01b0316815260208101919091526040015f20549050620009ba6276a7008262003e45565b421015620009db5760405163231d35fb60e11b815260040160405180910390fd5b61012e5f620009ee602087018762003e13565b6001600160401b031681526020019081526020015f205f85602001602081019062000a1a919062003734565b6001600160a01b03908116825260208201929092526040015f2054169150811562000da4576001600160a01b038281165f90815261012d60209081526040808320815160a08101835281546001600160401b0381168252600160401b810490961693810193909352600160e01b90940460ff16908201526001830180549293919260608401919062000aac9062003e5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000ada9062003e5b565b801562000b295780601f1062000aff5761010080835404028352916020019162000b29565b820191905f5260205f20905b81548152906001019060200180831162000b0b57829003601f168201915b5050505050815260200160028201805462000b449062003e5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000b729062003e5b565b801562000bc15780601f1062000b975761010080835404028352916020019162000bc1565b820191905f5260205f20905b81548152906001019060200180831162000ba357829003601f168201915b50505050508152505090508060405160200162000bdf919062003efb565b604051602081830303815290604052805190602001208560405160200162000c08919062003f88565b604051602081830303815290604052805190602001201462000c3d57604051632f9d1d7b60e11b815260040160405180910390fd5b6001600160a01b0383165f90815261012d6020526040812080546001600160e81b03191681559062000c7360018301826200361c565b62000c82600283015f6200361c565b50506001600160a01b0383165f81815261012f60205260409020805460ff1916600117905562000cba9063b8f2e0c560e01b62001e31565b801562000cde575062000cde6001600160a01b03851663b8f2e0c560e01b62001e31565b1562000da25760405163b8f2e0c560e01b81526001600160a01b0385811660048301525f602483015284169063b8f2e0c5906044015f604051808303815f87803b15801562000d2b575f80fd5b505af115801562000d3e573d5f803e3d5ffd5b505060405163b8f2e0c560e01b81526001600160a01b038681166004830152600160248301528716925063b8f2e0c591506044015f604051808303815f87803b15801562000d8a575f80fd5b505af115801562000d9d573d5f803e3d5ffd5b505050505b505b6001600160a01b0383165f90815261012d60205260409020849062000dca82826200414a565b5083905061012e5f62000de1602088018862003e13565b6001600160401b031681526020019081526020015f205f86602001602081019062000e0d919062003734565b6001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550426101305f865f01602081019062000e68919062003e13565b6001600160401b031681526020019081526020015f205f86602001602081019062000e94919062003734565b6001600160a01b03166001600160a01b031681526020019081526020015f208190555083602001602081019062000ecc919062003734565b6001600160a01b031662000ee4602086018662003e13565b6001600160401b03167f031d68e1805917560c34a5f55a7dd91bef98f911190ed02cdbb53caedae6c39d848662000f1f60608a018a62003beb565b62000f2e60808c018c62003beb565b62000f4060608e0160408f016200421f565b60405162000f5597969594939291906200423d565b60405180910390a35062000802600162001bce565b5f600262000f7762001b8c565b60ff1614905090565b6001600160a01b037f000000000000000000000000016700100000000000000000000000000000000216300362000fd45760405162461bcd60e51b815260040162000fcb9062004298565b60405180910390fd5b7f00000000000000000000000001670010000000000000000000000000000000026001600160a01b03166200100862001ec4565b6001600160a01b031614620010315760405162461bcd60e51b815260040162000fcb90620042e4565b6200103c8162001ee0565b604080515f80825260208201909252620010599183919062001eea565b50565b5f6200106a84848462002061565b90505b9392505050565b6200107e620020b8565b6200108a335f6200214a565b565b6001600160a01b037f0000000000000000000000000167001000000000000000000000000000000002163003620010d75760405162461bcd60e51b815260040162000fcb9062004298565b7f00000000000000000000000001670010000000000000000000000000000000026001600160a01b03166200110b62001ec4565b6001600160a01b031614620011345760405162461bcd60e51b815260040162000fcb90620042e4565b6200113f8262001ee0565b620007b28282600162001eea565b5f306001600160a01b037f00000000000000000000000001670010000000000000000000000000000000021614620011ee5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000fcb565b505f8051602062004e2283398151915290565b6200120b62001dd5565b6200108a5f62002154565b60655433906001600160a01b03168114620012865760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840162000fcb565b620010598162002154565b620012a660c954610100900460ff1660021490565b15620012c55760405163bae6e2a960e01b815260040160405180910390fd5b6002620012d162001b8c565b60ff1603620012f35760405163dfc60d8560e01b815260040160405180910390fd5b620012ff600262001bce565b5f80808062001311858701876200433d565b93509350935093505f620013246200216f565b9050620013318362002297565b5f6200133f86858562001d16565b9050620013566001600160a01b0385163462001dc8565b836001600160a01b0316856001600160a01b0316835f01517f75a051823424fc80e92556c41cb0ad977ae1dcb09c68a9c38acab86b11a69f8985604001518a602001518689604051620013d794939291906001600160401b039490941684526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a4505050505050620007b2600162001bce565b620013fb620022d5565b6200108a3360016200214a565b5f6200141362001ec4565b905090565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b84046001600160a01b031693600160e01b900460ff16929091620014629062003e5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620014909062003e5b565b8015620014df5780601f10620014b557610100808354040283529160200191620014df565b820191905f5260205f20905b815481529060010190602001808311620014c157829003601f168201915b505050505090806002018054620014f69062003e5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620015249062003e5b565b8015620015735780601f10620015495761010080835404028352916020019162001573565b820191905f5260205f20905b8154815290600101906020018083116200155557829003601f168201915b5050505050905085565b5f6200106d46848462002061565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820192909252610140810191909152620015fa60c954610100900460ff1660021490565b15620016195760405163bae6e2a960e01b815260040160405180910390fd5b60026200162562001b8c565b60ff1603620016475760405163dfc60d8560e01b815260040160405180910390fd5b62001653600262001bce565b8160c001355f036200167857604051634299323b60e11b815260040160405180910390fd5b5f6200168b60a084016080850162003734565b6001600160a01b031603620016b3576040516303f8a7d360e01b815260040160405180910390fd5b61012f5f620016c960a085016080860162003734565b6001600160a01b0316815260208101919091526040015f205460ff161562001704576040516375c42fc160e01b815260040160405180910390fd5b62001716608083016060840162003e13565b6001600160401b03163410156200174057604051630178ce0b60e31b815260040160405180910390fd5b5f805f6200174e8562002349565b6040805161016081019091525f8082529396509194509250602081016200177c6080890160608a0162003e13565b6001600160401b031681526020016200179c60c0890160a08a016200444e565b63ffffffff1681525f60208083018290526040830191909152336060830152608090910190620017cf9089018962003e13565b6001600160401b031681526020015f6001600160a01b0316886020016020810190620017fc919062003734565b6001600160a01b03160362001812573362001824565b620018246040890160208a0162003734565b6001600160a01b031681526020908101906200185f9062001848908a018a62003e13565b6a195c98cc8c17dd985d5b1d60aa1b5b5f6200105c565b6001600160a01b031681526020016200187f6080890160608a0162003e13565b62001894906001600160401b0316346200446c565b815260200185905290505f620018b46562726964676560d01b826200157d565b6001600160a01b0316631bdb003734846040518363ffffffff1660e01b8152600401620018e2919062003acb565b5f6040518083038185885af1158015620018fe573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f191682016040526200192891908101906200448f565b965090506200193e606088016040890162003734565b6001600160a01b03168660a001516001600160a01b0316827f256f5c87f6ab8d238ac244067613227eb6e2cd65299121135d4f778e8581e03d875f01518b5f0160208101906200198f919062003e13565b89602001518d6080016020810190620019a9919062003734565b604080516001600160401b0395861681529390941660208401526001600160a01b03918216838501521660608201526080810189905290519081900360a00190a45050505050620019fb600162001bce565b919050565b5f54610100900460ff161580801562001a1f57505f54600160ff909116105b8062001a3a5750303b15801562001a3a57505f5460ff166001145b62001a9f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000fcb565b5f805460ff19166001179055801562001ac1575f805461ff0019166101001790555b62001acd83836200281f565b801562001b13575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b62001b2262001dd5565b606580546001600160a01b0383166001600160a01b0319909116811790915562001b546033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f62001b98466200285e565b1562001bc457507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b62001bd9466200285e565b1562001c0557807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b62001c4c8160016200157d565b6001600160a01b0316336001600160a01b03161462001c7e57604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001cbb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001ce19190620045c4565b60208101519092506001600160a01b0316331462001d1257604051632583296b60e01b815260040160405180910390fd5b5090565b5f46845f01516001600160401b03160362001d4d5750602083015162001d476001600160a01b038216848462002890565b62001dbc565b62001d5884620028f5565b6040516340c10f1960e01b81526001600160a01b03858116600483015260248201859052919250908216906340c10f19906044015f604051808303815f87803b15801562001da4575f80fd5b505af115801562001db7573d5f803e3d5ffd5b505050505b6200106d81836200293a565b620007b282825a620029ce565b6033546001600160a01b031633146200108a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000fcb565b5f6001600160a01b0383163b62001e4a57505f62000802565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa92505050801562001eb7575060408051601f3d908101601f1916820190925262001eb49181019062004632565b60015b1562000802579392505050565b5f8051602062004e22833981519152546001600160a01b031690565b6200105962001dd5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001f205762001b138362002a15565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001f7d575060408051601f3d908101601f1916820190925262001f7a9181019062004650565b60015b62001fe25760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000fcb565b5f8051602062004e228339815191528114620020535760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000fcb565b5062001b1383838362002ab3565b5f6200206e848462002ae3565b9050811580156200208657506001600160a01b038116155b156200106d57604051632b0d65db60e01b81526001600160401b03851660048201526024810184905260440162000fcb565b620020cd60c954610100900460ff1660021490565b620020eb5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b620007b262001dd5565b606580546001600160a01b0319169055620010598162002b91565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b620021a28160016200157d565b6001600160a01b0316336001600160a01b031614620021d457604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562002211573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620022379190620045c4565b91505f620022598360400151620018586a195c98cc8c17dd985d5b1d60aa1b90565b9050806001600160a01b031683602001516001600160a01b0316146200229257604051632583296b60e01b815260040160405180910390fd5b505090565b6001600160a01b0381161580620022b657506001600160a01b03811630145b156200105957604051635b50f3f960e01b815260040160405180910390fd5b620022ea60c954610100900460ff1660021490565b15620023095760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200162002140565b6040805160a0810182525f8082526020820181905291810191909152606081810181905260808201819052905f8061012d816200238d60a088016080890162003734565b6001600160a01b03908116825260208201929092526040015f208054909250600160401b90041615620025dd576040805160a08101825282546001600160401b0381168252600160401b81046001600160a01b03166020830152600160e01b900460ff169181019190915260018201805483916060840191620024109062003e5b565b80601f01602080910402602001604051908101604052809291908181526020018280546200243e9062003e5b565b80156200248d5780601f1062002463576101008083540402835291602001916200248d565b820191905f5260205f20905b8154815290600101906020018083116200246f57829003601f168201915b50505050508152602001600282018054620024a89062003e5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620024d69062003e5b565b8015620025255780601f10620024fb5761010080835404028352916020019162002525565b820191905f5260205f20905b8154815290600101906020018083116200250757829003601f168201915b50505050508152505092506200256233308760c0013588608001602081019062002550919062003734565b6001600160a01b031692919062002be2565b6200257460a086016080870162003734565b604051630852cd8d60e31b815260c087013560048201526001600160a01b0391909116906342966c68906024015f604051808303815f87803b158015620025b9575f80fd5b505af1158015620025cc573d5f803e3d5ffd5b505050508460c00135915062002799565b6040518060a00160405280466001600160401b031681526020018660800160208101906200260c919062003734565b6001600160a01b03168152602001620026366200263060a0890160808a0162003734565b62002c1c565b60ff1681526020016200265a6200265460a0890160808a0162003734565b62002cd9565b81526020016200267b6200267560a0890160808a0162003734565b62002d8b565b905292505f6200269260a087016080880162003734565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa158015620026da573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002700919062004650565b90506200271d6001600160a01b038316333060c08b013562002be2565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa15801562002762573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002788919062004650565b6200279491906200446c565b935050505b30637f07c9478433620027b360608a0160408b0162003734565b86604051602001620027c9949392919062004668565b60408051601f1981840301815290829052620027e8916024016200469f565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050509350509193909250565b806001600160a01b038116620028485760405163538ba4f960e01b815260040160405180910390fd5b620028538362002dd3565b62001b138262002e3a565b5f600182148062002870575061426882145b806200287e575062aa36a782145b80620008025750620008028262002eae565b6040516001600160a01b03831660248201526044810182905262001b1390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262002ec6565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b0390811685529252909120541680620019fb57620008028262002fa0565b5f620029586c38bab7ba30afb6b0b730b3b2b960991b60016200157d565b90506001600160a01b0381161562001b13576040516315c638fb60e31b81526001600160a01b0384811660048301526024820184905282169063ae31c7d8906044015f604051808303815f87803b158015620029b2575f80fd5b505af1158015620029c5573d5f803e3d5ffd5b50505050505050565b815f03620029db57505050565b620029f783838360405180602001604052805f815250620031b2565b62001b1357604051634c67134d60e11b815260040160405180910390fd5b6001600160a01b0381163b62002a845760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000fcb565b5f8051602062004e2283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b62002abe83620031f0565b5f8251118062002acb5750805b1562001b135762002add838362003231565b50505050565b6097545f906001600160a01b03168062002b1057604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa15801562002b63573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002b899190620046b3565b949350505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040516001600160a01b038085166024830152831660448201526064810182905262002add9085906323b872dd60e01b90608401620028bd565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290515f91829182916001600160a01b0386169162002c639190620046d1565b5f60405180830381855afa9150503d805f811462002c9d576040519150601f19603f3d011682016040523d82523d5f602084013e62002ca2565b606091505b509150915081801562002cb6575080516020145b62002cc357601262002b89565b8080602001905181019062002b899190620046ee565b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b17905290516060915f9182916001600160a01b0386169162002d219190620046d1565b5f60405180830381855afa9150503d805f811462002d5b576040519150601f19603f3d011682016040523d82523d5f602084013e62002d60565b606091505b50915091508162002d805760405180602001604052805f81525062002b89565b62002b898162003259565b60408051600481526024810182526020810180516001600160e01b03166306fdde0360e01b17905290516060915f9182916001600160a01b0386169162002d219190620046d1565b5f54610100900460ff1662002dfc5760405162461bcd60e51b815260040162000fcb906200470c565b62002e06620033e4565b62002e286001600160a01b0382161562002e21578162002154565b3362002154565b5060c9805461ff001916610100179055565b5f54610100900460ff1662002e635760405162461bcd60e51b815260040162000fcb906200470c565b6001600160401b0346111562002e8c5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c821015801562000802575050617e90101590565b5f62002f1c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166200340d9092919063ffffffff16565b905080515f148062002f3f57508080602001905181019062002f3f919062004632565b62001b135760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000fcb565b5f8062002fb56033546001600160a01b031690565b60975460208501518551604080880151606089015160808a0151925162002fed97966001600160a01b03169594939060240162004757565b60408051601f198184030181529190526020810180516001600160e01b031663bb86ef9360e01b1790529050620030356c0627269646765645f657263323609c1b5f6200157d565b81604051620030449062003658565b62003051929190620047c6565b604051809103905ff0801580156200306b573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d602090815260409182902087518154928901519389015160ff16600160e01b0260ff60e01b1994909516600160401b026001600160e01b03199093166001600160401b03909116179190911791909116919091178155606085015191935084916001820190620030ef9082620047eb565b5060808201516002820190620031069082620047eb565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b0319168885169081179091559151885160608a015160808b0151848c01519451959850929095169516937fb6b427556e8cb0ebf9175da4bc48c64c4f56e44cfaf8c3ab5ebf8e2ea130907993620031a49391929190620048b7565b60405180910390a450919050565b5f6001600160a01b038516620031db57604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b620031fb8162002a15565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606200106d838360405180606001604052806027815260200162004e42602791396200341d565b606060408251106200327b5781806020019051810190620008029190620048f3565b8151602003620033d1575f5b60208160ff16108015620032c05750828160ff1681518110620032ae57620032ae62004928565b01602001516001600160f81b03191615155b15620032db5780620032d2816200493c565b91505062003287565b5f8160ff166001600160401b03811115620032fa57620032fa62003805565b6040519080825280601f01601f19166020018201604052801562003325576020820181803683370190505b5090505f91505b60208260ff16108015620033655750838260ff168151811062003353576200335362004928565b01602001516001600160f81b03191615155b156200106d57838260ff168151811062003383576200338362004928565b602001015160f81c60f81b818360ff1681518110620033a657620033a662004928565b60200101906001600160f81b03191690815f1a90535081620033c8816200493c565b9250506200332c565b505060408051602081019091525f815290565b5f54610100900460ff166200108a5760405162461bcd60e51b815260040162000fcb906200470c565b60606200106a84845f8562003497565b60605f80856001600160a01b0316856040516200343b9190620046d1565b5f60405180830381855af49150503d805f811462003475576040519150601f19603f3d011682016040523d82523d5f602084013e6200347a565b606091505b50915091506200348d8683838762003576565b9695505050505050565b606082471015620034fa5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000fcb565b5f80866001600160a01b03168587604051620035179190620046d1565b5f6040518083038185875af1925050503d805f811462003553576040519150601f19603f3d011682016040523d82523d5f602084013e62003558565b606091505b50915091506200356b8783838762003576565b979650505050505050565b60608315620035e95782515f03620035e1576001600160a01b0385163b620035e15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000fcb565b508162002b89565b62002b898383815115620036005781518083602001fd5b8060405162461bcd60e51b815260040162000fcb91906200469f565b5080546200362a9062003e5b565b5f825580601f106200363a575050565b601f0160209004905f5260205f209081019062001059919062003666565b6104c4806200495e83390190565b5b8082111562001d12575f815560010162003667565b5f80604083850312156200368e575f80fd5b82356001600160401b03811115620036a4575f80fd5b83016101608186031215620036b7575f80fd5b946020939093013593505050565b5f60208284031215620036d6575f80fd5b81356001600160e01b0319811681146200106d575f80fd5b6001600160a01b038116811462001059575f80fd5b5f806040838503121562003715575f80fd5b8235915060208301356200372981620036ee565b809150509250929050565b5f6020828403121562003745575f80fd5b81356200106d81620036ee565b5f806040838503121562003764575f80fd5b82356001600160401b038111156200377a575f80fd5b830160a081860312156200378c575f80fd5b915060208301356200372981620036ee565b6001600160401b038116811462001059575f80fd5b801515811462001059575f80fd5b5f805f60608486031215620037d4575f80fd5b8335620037e1816200379e565b9250602084013591506040840135620037fa81620037b3565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b03811182821017156200383e576200383e62003805565b60405290565b60405161016081016001600160401b03811182821017156200383e576200383e62003805565b604051601f8201601f191681016001600160401b038111828210171562003895576200389562003805565b604052919050565b5f6001600160401b03821115620038b857620038b862003805565b50601f01601f191660200190565b5f82601f830112620038d6575f80fd5b8135620038ed620038e7826200389d565b6200386a565b81815284602083860101111562003902575f80fd5b816020850160208301375f918101602001919091529392505050565b5f806040838503121562003930575f80fd5b82356200393d81620036ee565b915060208301356001600160401b0381111562003958575f80fd5b6200396685828601620038c6565b9150509250929050565b5f806020838503121562003982575f80fd5b82356001600160401b038082111562003999575f80fd5b818501915085601f830112620039ad575f80fd5b813581811115620039bc575f80fd5b866020828501011115620039ce575f80fd5b60209290920196919550909350505050565b5f5b83811015620039fc578181015183820152602001620039e2565b50505f910152565b5f815180845262003a1d816020860160208601620039e0565b601f01601f19169290920160200192915050565b6001600160401b03861681526001600160a01b038516602082015260ff8416604082015260a0606082018190525f9062003a6e9083018562003a04565b828103608084015262003a82818562003a04565b98975050505050505050565b5f806040838503121562003aa0575f80fd5b8235915060208301356200372981620037b3565b5f60e0828403121562003ac5575f80fd5b50919050565b6020815262003ae66020820183516001600160401b03169052565b5f602083015162003b0260408401826001600160401b03169052565b50604083015163ffffffff811660608401525060608301516001600160a01b03811660808401525060808301516001600160401b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160401b03811660e08401525060e083015161010062003b86818501836001600160a01b03169052565b840151905061012062003ba3848201836001600160a01b03169052565b8401516101408481019190915284015161016080850152905062002b8961018084018262003a04565b5f806040838503121562003bde575f80fd5b82356200378c81620036ee565b5f808335601e1984360301811262003c01575f80fd5b8301803591506001600160401b0382111562003c1b575f80fd5b60200191503681900382131562003c30575f80fd5b9250929050565b5f808585111562003c46575f80fd5b8386111562003c53575f80fd5b5050820193919092039150565b5f6020828403121562003c71575f80fd5b81356001600160401b0381111562003c87575f80fd5b62002b8984828501620038c6565b8051620019fb816200379e565b8051620019fb81620036ee565b60ff8116811462001059575f80fd5b8051620019fb8162003caf565b5f82601f83011262003cdb575f80fd5b815162003cec620038e7826200389d565b81815284602083860101111562003d01575f80fd5b62002b89826020830160208701620039e0565b5f805f806080858703121562003d28575f80fd5b84516001600160401b038082111562003d3f575f80fd5b9086019060a0828903121562003d53575f80fd5b62003d5d62003819565b825162003d6a816200379e565b8152602083015162003d7c81620036ee565b602082015262003d8f6040840162003cbe565b604082015260608301518281111562003da6575f80fd5b62003db48a82860162003ccb565b60608301525060808301518281111562003dcc575f80fd5b62003dda8a82860162003ccb565b608083015250955062003df39150506020860162003ca2565b925062003e036040860162003ca2565b6060959095015193969295505050565b5f6020828403121562003e24575f80fd5b81356200106d816200379e565b634e487b7160e01b5f52601160045260245ffd5b8082018082111562000802576200080262003e31565b600181811c9082168062003e7057607f821691505b60208210810362003ac557634e487b7160e01b5f52602260045260245ffd5b6001600160401b03815116825260018060a01b03602082015116602083015260ff60408201511660408301525f606082015160a0606085015262003ed760a085018262003a04565b90506080830151848203608086015262003ef2828262003a04565b95945050505050565b602081525f6200106d602083018462003e8f565b8035620019fb8162003caf565b5f808335601e1984360301811262003f32575f80fd5b83016020810192503590506001600160401b0381111562003f51575f80fd5b80360382131562003c30575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f823562003f9a816200379e565b6001600160401b038116602084015250602083013562003fba81620036ee565b6001600160a01b031660408381019190915283013562003fda8162003caf565b60ff811660608401525062003ff3606084018462003f1c565b60a060808501526200400a60c08501828462003f60565b9150506200401c608085018562003f1c565b848303601f190160a08601526200348d83828462003f60565b601f82111562001b1357805f5260205f20601f840160051c810160208510156200405c5750805b601f840160051c820191505b818110156200407d575f815560010162004068565b5050505050565b6001600160401b038311156200409e576200409e62003805565b620040b683620040af835462003e5b565b8362004035565b5f601f841160018114620040ea575f8515620040d25750838201355b5f19600387901b1c1916600186901b1783556200407d565b5f83815260208120601f198716915b828110156200411b5786850135825560209485019460019092019101620040f9565b508682101562004138575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b813562004157816200379e565b6001600160401b03811690508154816001600160401b0319821617835560208401356200418481620036ee565b68010000000000000000600160e01b03604091821b166001600160e01b0319831684178117855590850135620041ba8162003caf565b60ff60e01b8160e01b1660ff60e01b19851662ffffff60e81b851617831717855550505050620041ee606083018362003beb565b620041fe81836001860162004084565b50506200420f608083018362003beb565b62002add81836002860162004084565b5f6020828403121562004230575f80fd5b81356200106d8162003caf565b6001600160a01b0388811682528716602082015260a0604082018190525f906200426b908301878962003f60565b82810360608401526200428081868862003f60565b91505060ff8316608083015298975050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b8035620019fb81620036ee565b5f805f806080858703121562004351575f80fd5b84356001600160401b038082111562004368575f80fd5b9086019060a082890312156200437c575f80fd5b6200438662003819565b823562004393816200379e565b81526020830135620043a581620036ee565b6020820152620043b86040840162003f0f565b6040820152606083013582811115620043cf575f80fd5b620043dd8a828601620038c6565b606083015250608083013582811115620043f5575f80fd5b620044038a828601620038c6565b60808301525095506200441c9150506020860162004330565b92506200442c6040860162004330565b9396929550929360600135925050565b63ffffffff8116811462001059575f80fd5b5f602082840312156200445f575f80fd5b81356200106d816200443c565b8181038181111562000802576200080262003e31565b8051620019fb816200443c565b5f8060408385031215620044a1575f80fd5b8251915060208301516001600160401b0380821115620044bf575f80fd5b908401906101608287031215620044d4575f80fd5b620044de62003844565b620044e98362003c95565b8152620044f96020840162003c95565b60208201526200450c6040840162004482565b60408201526200451f6060840162003ca2565b6060820152620045326080840162003c95565b60808201526200454560a0840162003ca2565b60a08201526200455860c0840162003c95565b60c08201526200456b60e0840162003ca2565b60e08201526101006200458081850162003ca2565b9082015261012083810151908201526101408084015183811115620045a3575f80fd5b620045b18982870162003ccb565b8284015250508093505050509250929050565b5f60608284031215620045d5575f80fd5b604051606081018181106001600160401b0382111715620045fa57620045fa62003805565b6040528251815260208301516200461181620036ee565b6020820152604083015162004626816200379e565b60408201529392505050565b5f6020828403121562004643575f80fd5b81516200106d81620037b3565b5f6020828403121562004661575f80fd5b5051919050565b608081525f6200467c608083018762003e8f565b6001600160a01b0395861660208401529390941660408201526060015292915050565b602081525f6200106d602083018462003a04565b5f60208284031215620046c4575f80fd5b81516200106d81620036ee565b5f8251620046e4818460208701620039e0565b9190910192915050565b5f60208284031215620046ff575f80fd5b81516200106d8162003caf565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0388811682528781166020830152861660408201526001600160401b038516606082015260ff8416608082015260e060a082018190525f90620047a49083018562003a04565b82810360c0840152620047b8818562003a04565b9a9950505050505050505050565b6001600160a01b03831681526040602082018190525f906200106a9083018462003a04565b81516001600160401b0381111562004807576200480762003805565b6200481f8162004818845462003e5b565b8462004035565b602080601f83116001811462004855575f84156200483d5750858301515b5f19600386901b1c1916600185901b178555620048af565b5f85815260208120601f198616915b82811015620048855788860151825594840194600190910190840162004864565b5085821015620048a357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b606081525f620048cb606083018662003a04565b8281036020840152620048df818662003a04565b91505060ff83166040830152949350505050565b5f6020828403121562004904575f80fd5b81516001600160401b038111156200491a575f80fd5b62002b898482850162003ccb565b634e487b7160e01b5f52603260045260245ffd5b5f60ff821660ff810362004954576200495462003e31565b6001019291505056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220745d04b98b3aed6181cb020799fe1baaf079fe0385f5ffea02ae5081898469a064736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122082d745e040a3da302a0a117f0200fb53c2334a1340ea770c8b4e541570f052fa64736f6c63430008180033", + "balance": "0x0" + }, + "0x1670010000000000000000000000000000000002": { + "contractName": "ERC20Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000201", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670010000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167001000000000000000000000000000000002" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220745d04b98b3aed6181cb020799fe1baaf079fe0385f5ffea02ae5081898469a064736f6c63430008180033", + "balance": "0x0" + }, + "0x0167001000000000000000000000000000000003": { + "contractName": "ERC721VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74" + }, + "code": "0x6080604052600436106200019b575f3560e01c806367090ccf11620000de5780638da5cb5b1162000092578063e07baba6116200006a578063e07baba614620004bd578063e30c397814620004fd578063f09a4016146200051c578063f2fde38b1462000540575f80fd5b80638da5cb5b14620004445780639aa8605c1462000463578063a86f9d9e1462000499575f80fd5b806367090ccf146200038d578063715018a614620003d157806379ba509714620003e85780637f07c94714620003ff5780638456cb5914620004165780638abf6077146200042d575f80fd5b80633659cfe611620001525780633f4ba83a116200012a5780633f4ba83a14620003265780634f1ef286146200033d57806352d1902d14620003545780635c975abb146200036b575f80fd5b80633659cfe614620002a45780633ab76e9f14620002c85780633eb6b8cf1462000302575f80fd5b80630178733a146200019f57806301ffc9a714620001b857806306fdde0314620001f1578063150b7a02146200021e5780631f59a83014620002675780633075db56146200028d575b5f80fd5b620001b6620001b036600462002bfe565b62000564565b005b348015620001c4575f80fd5b50620001dc620001d636600462002c47565b62000736565b60405190151581526020015b60405180910390f35b348015620001fd575f80fd5b506b195c98cdcc8c57dd985d5b1d60a21b5b604051908152602001620001e8565b3480156200022a575f80fd5b506200024d6200023c36600462002cd9565b630a85bd0160e11b95945050505050565b6040516001600160e01b03199091168152602001620001e8565b6200027e6200027836600462002d4e565b62000788565b604051620001e8919062002dd9565b34801562000299575f80fd5b50620001dc62000c50565b348015620002b0575f80fd5b50620001b6620002c236600462002eda565b62000c66565b348015620002d4575f80fd5b50609754620002e9906001600160a01b031681565b6040516001600160a01b039091168152602001620001e8565b3480156200030e575f80fd5b50620002e96200032036600462002f28565b62000d42565b34801562000332575f80fd5b50620001b662000d5a565b620001b66200034e366004620030ab565b62000d72565b34801562000360575f80fd5b506200020f62000e33565b34801562000377575f80fd5b50620001dc60c954610100900460ff1660021490565b34801562000399575f80fd5b50620002e9620003ab366004620030fd565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b348015620003dd575f80fd5b50620001b662000ee7565b348015620003f4575f80fd5b50620001b662000efc565b620001b6620004103660046200312e565b62000f77565b34801562000422575f80fd5b50620001b6620010f5565b34801562000439575f80fd5b50620002e96200110c565b34801562000450575f80fd5b506033546001600160a01b0316620002e9565b3480156200046f575f80fd5b50620004876200048136600462002eda565b6200111c565b604051620001e8949392919062003170565b348015620004a5575f80fd5b50620002e9620004b7366004620031c3565b62001277565b348015620004c9575f80fd5b5060c954620004e4906201000090046001600160401b031681565b6040516001600160401b039091168152602001620001e8565b34801562000509575f80fd5b506065546001600160a01b0316620002e9565b34801562000528575f80fd5b50620001b66200053a366004620031e9565b62001285565b3480156200054c575f80fd5b50620001b66200055e36600462002eda565b6200139d565b6200057960c954610100900460ff1660021490565b15620005985760405163bae6e2a960e01b815260040160405180910390fd5b6002620005a462001411565b60ff1603620005c65760405163dfc60d8560e01b815260040160405180910390fd5b620005d2600262001453565b620005dc6200149e565b505f620005ee6101408401846200321a565b620005fe9160049082906200325f565b8101906200060d919062003288565b90505f8082806020019051810190620006279190620033b3565b9350505091505f6200064f838760a001602081019062000648919062002eda565b846200159b565b90506200067d6101208701356200066d60c0890160a08a0162002eda565b6001600160a01b03169062001725565b6200068f60c0870160a0880162002eda565b6001600160a01b0316857fe48bef18455e47bca14864ab6e82dffa29df148b051c09de95aec44ecf13598c8560200151848687516001600160401b03811115620006dd57620006dd62002f6c565b60405190808252806020026020018201604052801562000707578160200160208202803683370190505b506040516200071a9493929190620034f9565b60405180910390a35050505062000732600162001453565b5050565b5f6001600160e01b0319821662bc399d60e11b14806200076657506001600160e01b03198216637f07c94760e01b145b806200078257506001600160e01b031982166301ffc9a760e01b145b92915050565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820192909252610140810191909152620007f760c954610100900460ff1660021490565b15620008165760405163bae6e2a960e01b815260040160405180910390fd5b6200082182620035bc565b8060e00151518160c0015151146200084c5760405163196e8a4160e31b815260040160405180910390fd5b60808101516001600160a01b031662000878576040516303f8a7d360e01b815260040160405180910390fd5b60026200088462001411565b60ff1603620008a65760405163dfc60d8560e01b815260040160405180910390fd5b620008b2600262001453565b620008c46080840160608501620036a0565b6001600160401b0316341015620008ee57604051630178ce0b60e31b815260040160405180910390fd5b5f5b620008ff60c0850185620036be565b90508110156200095b576200091860e0850185620036be565b828181106200092b576200092b62003706565b905060200201355f146200095257604051634299323b60e11b815260040160405180910390fd5b600101620008f0565b506200098a6380ac58cd60e01b6200097a60a086016080870162002eda565b6001600160a01b03169062001732565b620009a857604051633ee915f560e11b815260040160405180910390fd5b5f80620009b585620017c5565b6040805161016081019091525f80825292945090925060208101620009e16080890160608a01620036a0565b6001600160401b0316815260200162000a0160c0890160a08a016200371a565b63ffffffff1681525f6020808301829052604083019190915233606083015260809091019062000a3490890189620036a0565b6001600160401b031681526020015f6001600160a01b031688602001602081019062000a61919062002eda565b6001600160a01b03160362000a77573362000a89565b62000a896040890160208a0162002eda565b6001600160a01b0316815260209081019062000ac59062000aad908a018a620036a0565b6b195c98cdcc8c57dd985d5b1d60a21b5b5f62000d42565b6001600160a01b0316815260200162000ae56080890160608a01620036a0565b62000afa906001600160401b0316346200374c565b815260200184905290505f62000b1a6562726964676560d01b8262001277565b6001600160a01b0316631bdb003734846040518363ffffffff1660e01b815260040162000b48919062002dd9565b5f6040518083038185885af115801562000b64573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f1916820160405262000b8e91908101906200376f565b9650905062000ba4606088016040890162002eda565b6001600160a01b03168660a001516001600160a01b0316827fabbf62a1459339f9ac59136d313a5ccd83d2706cc6d4c04d90642520169144dc8960c0015187602001518c608001602081019062000bfc919062002eda565b62000c0b60c08f018f620036be565b8f8060e0019062000c1d9190620036be565b60405162000c329796959493929190620038d5565b60405180910390a45050505062000c4a600162001453565b50919050565b5f600262000c5d62001411565b60ff1614905090565b6001600160a01b037f000000000000000000000000016700100000000000000000000000000000000316300362000cba5760405162461bcd60e51b815260040162000cb19062003935565b60405180910390fd5b7f00000000000000000000000001670010000000000000000000000000000000036001600160a01b031662000cee62001cf1565b6001600160a01b03161462000d175760405162461bcd60e51b815260040162000cb19062003981565b62000d228162001d0d565b604080515f8082526020820190925262000d3f9183919062001d17565b50565b5f62000d5084848462001e8e565b90505b9392505050565b62000d6462001ee5565b62000d70335f62001f77565b565b6001600160a01b037f000000000000000000000000016700100000000000000000000000000000000316300362000dbd5760405162461bcd60e51b815260040162000cb19062003935565b7f00000000000000000000000001670010000000000000000000000000000000036001600160a01b031662000df162001cf1565b6001600160a01b03161462000e1a5760405162461bcd60e51b815260040162000cb19062003981565b62000e258262001d0d565b620007328282600162001d17565b5f306001600160a01b037f0000000000000000000000000167001000000000000000000000000000000003161462000ed45760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000cb1565b505f805160206200441a83398151915290565b62000ef162001f7c565b62000d705f62001fd8565b60655433906001600160a01b0316811462000f6c5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840162000cb1565b62000d3f8162001fd8565b62000f8c60c954610100900460ff1660021490565b1562000fab5760405163bae6e2a960e01b815260040160405180910390fd5b600262000fb762001411565b60ff160362000fd95760405163dfc60d8560e01b815260040160405180910390fd5b62000fe5600262001453565b5f80808062000ff785870187620039cd565b93509350935093505f6200100a62001ff3565b905062001017836200211c565b5f620010258685856200159b565b90506200103c6001600160a01b0385163462001725565b836001600160a01b0316856001600160a01b0316835f01517f895f73e418d1bbbad2a311d085fad00e5d98a960e9f2afa4b942071d39bec43a85604001518a6020015186898a516001600160401b038111156200109d576200109d62002f6c565b604051908082528060200260200182016040528015620010c7578160200160208202803683370190505b50604051620010db95949392919062003acb565b60405180910390a450505050505062000732600162001453565b620010ff6200215a565b62000d7033600162001f77565b5f6200111762001cf1565b905090565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b9093046001600160a01b03169291906200115c9062003b27565b80601f01602080910402602001604051908101604052809291908181526020018280546200118a9062003b27565b8015620011d95780601f10620011af57610100808354040283529160200191620011d9565b820191905f5260205f20905b815481529060010190602001808311620011bb57829003601f168201915b505050505090806002018054620011f09062003b27565b80601f01602080910402602001604051908101604052809291908181526020018280546200121e9062003b27565b80156200126d5780601f1062001243576101008083540402835291602001916200126d565b820191905f5260205f20905b8154815290600101906020018083116200124f57829003601f168201915b5050505050905084565b5f62000d5346848462001e8e565b5f54610100900460ff1615808015620012a457505f54600160ff909116105b80620012bf5750303b158015620012bf57505f5460ff166001145b620013245760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000cb1565b5f805460ff19166001179055801562001346575f805461ff0019166101001790555b620013528383620021ce565b801562001398575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b620013a762001f7c565b606580546001600160a01b0383166001600160a01b03199091168117909155620013d96033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f6200141d466200220d565b156200144957507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b6200145e466200220d565b156200148a57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b620014d181600162001277565b6001600160a01b0316336001600160a01b0316146200150357604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001540573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001566919062003b5b565b60208101519092506001600160a01b031633146200159757604051632583296b60e01b815260040160405180910390fd5b5090565b5f46845f01516001600160401b0316036200166a575060208301515f5b82518110156200166357816001600160a01b03166342842e0e3086868581518110620015e857620015e862003706565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064015f604051808303815f87803b15801562001640575f80fd5b505af115801562001653573d5f803e3d5ffd5b50505050806001019050620015b8565b5062000d53565b62001675846200223f565b90505f5b82518110156200171d57816001600160a01b03166340c10f1985858481518110620016a857620016a862003706565b60200260200101516040518363ffffffff1660e01b8152600401620016e29291906001600160a01b03929092168252602082015260400190565b5f604051808303815f87803b158015620016fa575f80fd5b505af11580156200170d573d5f803e3d5ffd5b5050505080600101905062001679565b509392505050565b6200073282825a62002289565b5f6001600160a01b0383163b6200174b57505f62000782565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015620017b8575060408051601f3d908101601f19168201909252620017b59181019062003bc9565b60015b1562000782579392505050565b604080516080810182525f808252602082015260609181018290528082018290525f61012d81620017fd60a087016080880162002eda565b6001600160a01b03908116825260208201929092526040015f208054909250600160401b9004161562001b07576040805160808101825282546001600160401b0381168252600160401b90046001600160a01b03166020820152600183018054919284929084019190620018719062003b27565b80601f01602080910402602001604051908101604052809291908181526020018280546200189f9062003b27565b8015620018ee5780601f10620018c457610100808354040283529160200191620018ee565b820191905f5260205f20905b815481529060010190602001808311620018d057829003601f168201915b50505050508152602001600282018054620019099062003b27565b80601f0160208091040260200160405190810160405280929190818152602001828054620019379062003b27565b8015620019865780601f106200195c5761010080835404028352916020019162001986565b820191905f5260205f20905b8154815290600101906020018083116200196857829003601f168201915b50505050508152505091505f5b620019a260c0860186620036be565b905081101562001b0057620019be60a086016080870162002eda565b6001600160a01b03166342842e0e3330620019dd60c08a018a620036be565b86818110620019f057620019f062003706565b6040516001600160e01b031960e088901b1681526001600160a01b039586166004820152949093166024850152506020909102013560448201526064015f604051808303815f87803b15801562001a45575f80fd5b505af115801562001a58573d5f803e3d5ffd5b5062001a6f9250505060a086016080870162002eda565b6001600160a01b03166342966c6862001a8c60c0880188620036be565b8481811062001a9f5762001a9f62003706565b905060200201356040518263ffffffff1660e01b815260040162001ac591815260200190565b5f604051808303815f87803b15801562001add575f80fd5b505af115801562001af0573d5f803e3d5ffd5b5050505080600101905062001993565b5062001c5e565b6040518060800160405280466001600160401b0316815260200185608001602081019062001b36919062002eda565b6001600160a01b0316815260200162001b6062001b5a60a088016080890162002eda565b620022d0565b815260200162001b8162001b7b60a088016080890162002eda565b6200238a565b905291505f5b62001b9660c0860186620036be565b905081101562001c5c5762001bb260a086016080870162002eda565b6001600160a01b03166342842e0e333062001bd160c08a018a620036be565b8681811062001be45762001be462003706565b6040516001600160e01b031960e088901b1681526001600160a01b039586166004820152949093166024850152506020909102013560448201526064015f604051808303815f87803b15801562001c39575f80fd5b505af115801562001c4c573d5f803e3d5ffd5b5050505080600101905062001b87565b505b5030637f07c947823362001c79606088016040890162002eda565b62001c8860c0890189620036be565b60405160200162001c9e95949392919062003be7565b60408051601f198184030181529082905262001cbd9160240162003c77565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050509150915091565b5f805160206200441a833981519152546001600160a01b031690565b62000d3f62001f7c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001d4d576200139883620023d2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001daa575060408051601f3d908101601f1916820190925262001da79181019062003c8b565b60015b62001e0f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000cb1565b5f805160206200441a833981519152811462001e805760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000cb1565b506200139883838362002470565b5f62001e9b8484620024a0565b90508115801562001eb357506001600160a01b038116155b1562000d5357604051632b0d65db60e01b81526001600160401b03851660048201526024810184905260440162000cb1565b62001efa60c954610100900460ff1660021490565b62001f185760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b620007325b6033546001600160a01b0316331462000d705760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000cb1565b606580546001600160a01b031916905562000d3f8162002546565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b6200202681600162001277565b6001600160a01b0316336001600160a01b0316146200205857604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562002095573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620020bb919062003b5b565b91505f620020de836040015162000abe6b195c98cdcc8c57dd985d5b1d60a21b90565b9050806001600160a01b031683602001516001600160a01b0316146200211757604051632583296b60e01b815260040160405180910390fd5b505090565b6001600160a01b03811615806200213b57506001600160a01b03811630145b1562000d3f57604051635b50f3f960e01b815260040160405180910390fd5b6200216f60c954610100900460ff1660021490565b156200218e5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200162001f6d565b806001600160a01b038116620021f75760405163538ba4f960e01b815260040160405180910390fd5b620022028362002597565b6200139882620025fe565b5f60018214806200221f575061426882145b806200222d575062aa36a782145b80620007825750620007828262002672565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b0390811685529252909120541680620022845762000782826200268a565b919050565b815f036200229657505050565b620022b283838360405180602001604052805f81525062002875565b6200139857604051634c67134d60e11b815260040160405180910390fd5b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b17905290516060915f9182916001600160a01b0386169162002318919062003ca3565b5f60405180830381855afa9150503d805f811462002352576040519150601f19603f3d011682016040523d82523d5f602084013e62002357565b606091505b509150915081620023775760405180602001604052805f81525062002382565b6200238281620028b3565b949350505050565b60408051600481526024810182526020810180516001600160e01b03166306fdde0360e01b17905290516060915f9182916001600160a01b0386169162002318919062003ca3565b6001600160a01b0381163b620024415760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000cb1565b5f805160206200441a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6200247b8362002a3e565b5f82511180620024885750805b1562001398576200249a838362002a7f565b50505050565b6097545f906001600160a01b031680620024cd57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa15801562002520573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002382919062003cc0565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16620025c05760405162461bcd60e51b815260040162000cb19062003cde565b620025ca62002aa7565b620025ec6001600160a01b03821615620025e5578162001fd8565b3362001fd8565b5060c9805461ff001916610100179055565b5f54610100900460ff16620026275760405162461bcd60e51b815260040162000cb19062003cde565b6001600160401b03461115620026505760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c821015801562000782575050617e90101590565b5f806200269f6033546001600160a01b031690565b6097546020850151855160408088015160608901519151620026d296956001600160a01b03169493929060240162003d29565b60408051601f198184030181529190526020810180516001600160e01b03166377c6257360e11b17905290506200271b6d627269646765645f65726337323160901b5f62001277565b816040516200272a9062002bf0565b6200273792919062003d8e565b604051809103905ff08015801562002751573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d60209081526040918290208751815492890151909416600160401b026001600160e01b03199092166001600160401b039094169390931717825585015191935084916001820190620027b7908262003e02565b5060608201516002820190620027ce908262003e02565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b03191688851690811790915591518851828a015160608b01519351949750919094169493909316927f44977f2d30fe1e3aee2c1476f2f95aaacaf34e44b9359c403da01fcc93fd751b9262002867929062003ece565b60405180910390a450919050565b5f6001600160a01b0385166200289e57604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b60606040825110620028d5578180602001905181019062000782919062003eff565b815160200362002a2b575f5b60208160ff161080156200291a5750828160ff168151811062002908576200290862003706565b01602001516001600160f81b03191615155b156200293557806200292c8162003f34565b915050620028e1565b5f8160ff166001600160401b0381111562002954576200295462002f6c565b6040519080825280601f01601f1916602001820160405280156200297f576020820181803683370190505b5090505f91505b60208260ff16108015620029bf5750838260ff1681518110620029ad57620029ad62003706565b01602001516001600160f81b03191615155b1562000d5357838260ff1681518110620029dd57620029dd62003706565b602001015160f81c60f81b818360ff168151811062002a005762002a0062003706565b60200101906001600160f81b03191690815f1a9053508162002a228162003f34565b92505062002986565b505060408051602081019091525f815290565b62002a4981620023d2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000d5383836040518060600160405280602781526020016200443a6027913962002ad0565b5f54610100900460ff1662000d705760405162461bcd60e51b815260040162000cb19062003cde565b60605f80856001600160a01b03168560405162002aee919062003ca3565b5f60405180830381855af49150503d805f811462002b28576040519150601f19603f3d011682016040523d82523d5f602084013e62002b2d565b606091505b509150915062002b408683838762002b4a565b9695505050505050565b6060831562002bbd5782515f0362002bb5576001600160a01b0385163b62002bb55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000cb1565b508162002382565b62002382838381511562002bd45781518083602001fd5b8060405162461bcd60e51b815260040162000cb1919062003c77565b6104c48062003f5683390190565b5f806040838503121562002c10575f80fd5b82356001600160401b0381111562002c26575f80fd5b8301610160818603121562002c39575f80fd5b946020939093013593505050565b5f6020828403121562002c58575f80fd5b81356001600160e01b03198116811462000d53575f80fd5b6001600160a01b038116811462000d3f575f80fd5b8035620022848162002c70565b5f8083601f84011262002ca3575f80fd5b5081356001600160401b0381111562002cba575f80fd5b60208301915083602082850101111562002cd2575f80fd5b9250929050565b5f805f805f6080868803121562002cee575f80fd5b853562002cfb8162002c70565b9450602086013562002d0d8162002c70565b93506040860135925060608601356001600160401b0381111562002d2f575f80fd5b62002d3d8882890162002c92565b969995985093965092949392505050565b5f6020828403121562002d5f575f80fd5b81356001600160401b0381111562002d75575f80fd5b8201610100818503121562000d53575f80fd5b5f5b8381101562002da457818101518382015260200162002d8a565b50505f910152565b5f815180845262002dc581602086016020860162002d88565b601f01601f19169290920160200192915050565b6020815262002df46020820183516001600160401b03169052565b5f602083015162002e1060408401826001600160401b03169052565b50604083015163ffffffff811660608401525060608301516001600160a01b03811660808401525060808301516001600160401b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160401b03811660e08401525060e083015161010062002e94818501836001600160a01b03169052565b840151905061012062002eb1848201836001600160a01b03169052565b840151610140848101919091528401516101608085015290506200238261018084018262002dac565b5f6020828403121562002eeb575f80fd5b813562000d538162002c70565b6001600160401b038116811462000d3f575f80fd5b8035620022848162002ef8565b801515811462000d3f575f80fd5b5f805f6060848603121562002f3b575f80fd5b833562002f488162002ef8565b925060208401359150604084013562002f618162002f1a565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b038111828210171562002fa55762002fa562002f6c565b60405290565b60405161010081016001600160401b038111828210171562002fa55762002fa562002f6c565b60405161016081016001600160401b038111828210171562002fa55762002fa562002f6c565b604051601f8201601f191681016001600160401b038111828210171562003022576200302262002f6c565b604052919050565b5f6001600160401b0382111562003045576200304562002f6c565b50601f01601f191660200190565b5f82601f83011262003063575f80fd5b81356200307a62003074826200302a565b62002ff7565b8181528460208386010111156200308f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215620030bd575f80fd5b8235620030ca8162002c70565b915060208301356001600160401b03811115620030e5575f80fd5b620030f38582860162003053565b9150509250929050565b5f80604083850312156200310f575f80fd5b823591506020830135620031238162002c70565b809150509250929050565b5f806020838503121562003140575f80fd5b82356001600160401b0381111562003156575f80fd5b620031648582860162002c92565b90969095509350505050565b6001600160401b03851681526001600160a01b03841660208201526080604082018190525f90620031a49083018562002dac565b8281036060840152620031b8818562002dac565b979650505050505050565b5f8060408385031215620031d5575f80fd5b823591506020830135620031238162002f1a565b5f8060408385031215620031fb575f80fd5b8235620032088162002c70565b91506020830135620031238162002c70565b5f808335601e1984360301811262003230575f80fd5b8301803591506001600160401b038211156200324a575f80fd5b60200191503681900382131562002cd2575f80fd5b5f80858511156200326e575f80fd5b838611156200327b575f80fd5b5050820193919092039150565b5f6020828403121562003299575f80fd5b81356001600160401b03811115620032af575f80fd5b620023828482850162003053565b8051620022848162002ef8565b8051620022848162002c70565b5f82601f830112620032e7575f80fd5b8151620032f862003074826200302a565b8181528460208386010111156200330d575f80fd5b6200238282602083016020870162002d88565b5f6001600160401b038211156200333b576200333b62002f6c565b5060051b60200190565b5f82601f83011262003355575f80fd5b8151602062003368620030748362003320565b8083825260208201915060208460051b8701019350868411156200338a575f80fd5b602086015b84811015620033a857805183529183019183016200338f565b509695505050505050565b5f805f8060808587031215620033c7575f80fd5b84516001600160401b0380821115620033de575f80fd5b9086019060808289031215620033f2575f80fd5b620033fc62002f80565b8251620034098162002ef8565b815260208301516200341b8162002c70565b602082015260408301518281111562003432575f80fd5b620034408a828601620032d7565b60408301525060608301518281111562003458575f80fd5b620034668a828601620032d7565b60608301525095506200347c60208801620032ca565b94506200348c60408801620032ca565b93506060870151915080821115620034a2575f80fd5b50620034b18782880162003345565b91505092959194509250565b5f815180845260208085019450602084015f5b83811015620034ee57815187529582019590820190600101620034d0565b509495945050505050565b6001600160a01b038581168252841660208201526080604082018190525f906200352690830185620034bd565b8281036060840152620031b88185620034bd565b63ffffffff8116811462000d3f575f80fd5b803562002284816200353a565b5f82601f83011262003569575f80fd5b813560206200357c620030748362003320565b8083825260208201915060208460051b8701019350868411156200359e575f80fd5b602086015b84811015620033a85780358352918301918301620035a3565b5f6101008236031215620035ce575f80fd5b620035d862002fab565b620035e38362002f0d565b8152620035f36020840162002c85565b6020820152620036066040840162002c85565b6040820152620036196060840162002f0d565b60608201526200362c6080840162002c85565b60808201526200363f60a084016200354c565b60a082015260c08301356001600160401b03808211156200365e575f80fd5b6200366c3683870162003559565b60c084015260e085013591508082111562003685575f80fd5b50620036943682860162003559565b60e08301525092915050565b5f60208284031215620036b1575f80fd5b813562000d538162002ef8565b5f808335601e19843603018112620036d4575f80fd5b8301803591506001600160401b03821115620036ee575f80fd5b6020019150600581901b360382131562002cd2575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156200372b575f80fd5b813562000d53816200353a565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000782576200078262003738565b805162002284816200353a565b5f806040838503121562003781575f80fd5b8251915060208301516001600160401b03808211156200379f575f80fd5b908401906101608287031215620037b4575f80fd5b620037be62002fd1565b620037c983620032bd565b8152620037d960208401620032bd565b6020820152620037ec6040840162003762565b6040820152620037ff60608401620032ca565b60608201526200381260808401620032bd565b60808201526200382560a08401620032ca565b60a08201526200383860c08401620032bd565b60c08201526200384b60e08401620032ca565b60e082015261010062003860818501620032ca565b908201526101208381015190820152610140808401518381111562003883575f80fd5b6200389189828701620032d7565b8284015250508093505050509250929050565b8183525f6001600160fb1b03831115620038bc575f80fd5b8260051b80836020870137939093016020019392505050565b6001600160401b03881681526001600160a01b0387811660208301528616604082015260a0606082018190525f90620039129083018688620038a4565b828103608084015262003927818587620038a4565b9a9950505050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f805f8060808587031215620039e1575f80fd5b84356001600160401b0380821115620039f8575f80fd5b908601906080828903121562003a0c575f80fd5b62003a1662002f80565b823562003a238162002ef8565b8152602083013562003a358162002c70565b602082015260408301358281111562003a4c575f80fd5b62003a5a8a82860162003053565b60408301525060608301358281111562003a72575f80fd5b62003a808a82860162003053565b606083015250955062003a966020880162002c85565b945062003aa66040880162002c85565b9350606087013591508082111562003abc575f80fd5b50620034b18782880162003559565b6001600160401b03861681526001600160a01b0385811660208301528416604082015260a0606082018190525f9062003b0790830185620034bd565b828103608084015262003b1b8185620034bd565b98975050505050505050565b600181811c9082168062003b3c57607f821691505b60208210810362000c4a57634e487b7160e01b5f52602260045260245ffd5b5f6060828403121562003b6c575f80fd5b604051606081018181106001600160401b038211171562003b915762003b9162002f6c565b60405282518152602083015162003ba88162002c70565b6020820152604083015162003bbd8162002ef8565b60408201529392505050565b5f6020828403121562003bda575f80fd5b815162000d538162002f1a565b608080825286516001600160401b03168282015260208701516001600160a01b0390811660a0840152604088015160c08401929092525f919062003c3061010085018362002dac565b91506060890151607f198584030160e086015262003c4f838262002dac565b89831660208701529188166040860152508381036060850152905062003b1b818587620038a4565b602081525f62000d53602083018462002dac565b5f6020828403121562003c9c575f80fd5b5051919050565b5f825162003cb681846020870162002d88565b9190910192915050565b5f6020828403121562003cd1575f80fd5b815162000d538162002c70565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0387811682528681166020830152851660408201526001600160401b038416606082015260c0608082018190525f9062003d6d9083018562002dac565b82810360a084015262003d81818562002dac565b9998505050505050505050565b6001600160a01b03831681526040602082018190525f9062000d509083018462002dac565b601f8211156200139857805f5260205f20601f840160051c8101602085101562003dda5750805b601f840160051c820191505b8181101562003dfb575f815560010162003de6565b5050505050565b81516001600160401b0381111562003e1e5762003e1e62002f6c565b62003e368162003e2f845462003b27565b8462003db3565b602080601f83116001811462003e6c575f841562003e545750858301515b5f19600386901b1c1916600185901b17855562003ec6565b5f85815260208120601f198616915b8281101562003e9c5788860151825594840194600190910190840162003e7b565b508582101562003eba57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b604081525f62003ee2604083018562002dac565b828103602084015262003ef6818562002dac565b95945050505050565b5f6020828403121562003f10575f80fd5b81516001600160401b0381111562003f26575f80fd5b6200238284828501620032d7565b5f60ff821660ff810362003f4c5762003f4c62003738565b6001019291505056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220745d04b98b3aed6181cb020799fe1baaf079fe0385f5ffea02ae5081898469a064736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220dfc1c30ba376e0ab093ff96865aa29189373708add526f266d0a8d1a473fc09d64736f6c63430008180033", + "balance": "0x0" + }, + "0x1670010000000000000000000000000000000003": { + "contractName": "ERC721Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670010000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167001000000000000000000000000000000003" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220745d04b98b3aed6181cb020799fe1baaf079fe0385f5ffea02ae5081898469a064736f6c63430008180033", + "balance": "0x0" + }, + "0x0167001000000000000000000000000000000004": { + "contractName": "ERC1155VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74" + }, + "code": "0x608060405260043610620001b7575f3560e01c8063715018a611620000fa578063a86f9d9e1162000092578063e30c3978116200006a578063e30c3978146200051d578063f09a4016146200053c578063f23a6e611462000560578063f2fde38b1462000590575f80fd5b8063a86f9d9e146200046d578063bc197c811462000491578063e07baba614620004dd575f80fd5b80638456cb5911620000d25780638456cb5914620003ea5780638abf607714620004015780638da5cb5b14620004185780639aa8605c1462000437575f80fd5b8063715018a614620003a557806379ba509714620003bc5780637f07c94714620003d3575f80fd5b80633ab76e9f116200016e5780634f1ef28611620001465780634f1ef286146200031157806352d1902d14620003285780635c975abb146200033f57806367090ccf1462000361575f80fd5b80633ab76e9f146200029c5780633eb6b8cf14620002d65780633f4ba83a14620002fa575f80fd5b80630178733a14620001bb57806301ffc9a714620001d457806306fdde03146200020d5780631f59a830146200023b5780633075db5614620002615780633659cfe61462000278575b5f80fd5b620001d2620001cc36600462002b79565b620005b4565b005b348015620001e0575f80fd5b50620001f8620001f236600462002bc2565b62000745565b60405190151581526020015b60405180910390f35b34801562000219575f80fd5b506c195c98cc4c4d4d57dd985d5b1d609a1b5b60405190815260200162000204565b620002526200024c36600462002beb565b62000769565b60405162000204919062002c76565b3480156200026d575f80fd5b50620001f862000c32565b34801562000284575f80fd5b50620001d26200029636600462002d99565b62000c48565b348015620002a8575f80fd5b50609754620002bd906001600160a01b031681565b6040516001600160a01b03909116815260200162000204565b348015620002e2575f80fd5b50620002bd620002f436600462002de7565b62000d24565b34801562000306575f80fd5b50620001d262000d3c565b620001d26200032236600462002f6a565b62000d54565b34801562000334575f80fd5b506200022c62000e15565b3480156200034b575f80fd5b50620001f860c954610100900460ff1660021490565b3480156200036d575f80fd5b50620002bd6200037f36600462002fbc565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b348015620003b1575f80fd5b50620001d262000ec9565b348015620003c8575f80fd5b50620001d262000ede565b620001d2620003e436600462003034565b62000f59565b348015620003f6575f80fd5b50620001d262001096565b3480156200040d575f80fd5b50620002bd620010ad565b34801562000424575f80fd5b506033546001600160a01b0316620002bd565b34801562000443575f80fd5b506200045b6200045536600462002d99565b620010bd565b60405162000204949392919062003076565b34801562000479575f80fd5b50620002bd6200048b366004620030c9565b62001218565b3480156200049d575f80fd5b50620004c3620004af36600462003132565b63bc197c8160e01b98975050505050505050565b6040516001600160e01b0319909116815260200162000204565b348015620004e9575f80fd5b5060c95462000504906201000090046001600160401b031681565b6040516001600160401b03909116815260200162000204565b34801562000529575f80fd5b506065546001600160a01b0316620002bd565b34801562000548575f80fd5b50620001d26200055a366004620031f6565b62001226565b3480156200056c575f80fd5b50620004c36200057e36600462003227565b63f23a6e6160e01b9695505050505050565b3480156200059c575f80fd5b50620001d2620005ae36600462002d99565b62001348565b620005c960c954610100900460ff1660021490565b15620005e85760405163bae6e2a960e01b815260040160405180910390fd5b6002620005f4620013bc565b60ff1603620006165760405163dfc60d8560e01b815260040160405180910390fd5b620006226002620013fe565b6200062c62001449565b505f6200063e610140840184620032a5565b6200064e916004908290620032ea565b8101906200065d919062003313565b90505f805f838060200190518101906200067891906200343e565b94509450505092505f620006a3848860a00160208101906200069b919062002d99565b858562001546565b9050620006d1610120880135620006c160c08a0160a08b0162002d99565b6001600160a01b03169062001642565b620006e360c0880160a0890162002d99565b6001600160a01b0316867fe48bef18455e47bca14864ab6e82dffa29df148b051c09de95aec44ecf13598c8660200151848787604051620007289493929190620035aa565b60405180910390a35050505050620007416001620013fe565b5050565b5f62000751826200164f565b806200076357506200076382620016a0565b92915050565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820192909252610140810191909152620007d860c954610100900460ff1660021490565b15620007f75760405163bae6e2a960e01b815260040160405180910390fd5b62000802826200366d565b8060e00151518160c0015151146200082d5760405163196e8a4160e31b815260040160405180910390fd5b60808101516001600160a01b031662000859576040516303f8a7d360e01b815260040160405180910390fd5b600262000865620013bc565b60ff1603620008875760405163dfc60d8560e01b815260040160405180910390fd5b620008936002620013fe565b620008a5608084016060850162003751565b6001600160401b0316341015620008cf57604051630178ce0b60e31b815260040160405180910390fd5b5f5b620008e060e08501856200376f565b90508110156200093c57620008f960e08501856200376f565b828181106200090c576200090c620037b7565b905060200201355f036200093357604051634299323b60e11b815260040160405180910390fd5b600101620008d1565b506200096b636cdb3d1360e11b6200095b60a086016080870162002d99565b6001600160a01b031690620016d6565b6200098957604051633ee915f560e11b815260040160405180910390fd5b5f80620009968562001769565b6040805161016081019091525f80825292945090925060208101620009c26080890160608a0162003751565b6001600160401b03168152602001620009e260c0890160a08a01620037cb565b63ffffffff1681525f6020808301829052604083019190915233606083015260809091019062000a159089018962003751565b6001600160401b031681526020015f6001600160a01b031688602001602081019062000a42919062002d99565b6001600160a01b03160362000a58573362000a6a565b62000a6a6040890160208a0162002d99565b6001600160a01b0316815260209081019062000aa79062000a8e908a018a62003751565b6c195c98cc4c4d4d57dd985d5b1d609a1b5b5f62000d24565b6001600160a01b0316815260200162000ac76080890160608a0162003751565b62000adc906001600160401b031634620037fd565b815260200184905290505f62000afc6562726964676560d01b8262001218565b6001600160a01b0316631bdb003734846040518363ffffffff1660e01b815260040162000b2a919062002c76565b5f6040518083038185885af115801562000b46573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f1916820160405262000b70919081019062003820565b9650905062000b86606088016040890162002d99565b6001600160a01b03168660a001516001600160a01b0316827fabbf62a1459339f9ac59136d313a5ccd83d2706cc6d4c04d90642520169144dc8960c0015187602001518c608001602081019062000bde919062002d99565b62000bed60c08f018f6200376f565b8f8060e0019062000bff91906200376f565b60405162000c14979695949392919062003986565b60405180910390a45050505062000c2c6001620013fe565b50919050565b5f600262000c3f620013bc565b60ff1614905090565b6001600160a01b037f000000000000000000000000016700100000000000000000000000000000000416300362000c9c5760405162461bcd60e51b815260040162000c9390620039e6565b60405180910390fd5b7f00000000000000000000000001670010000000000000000000000000000000046001600160a01b031662000cd062001c78565b6001600160a01b03161462000cf95760405162461bcd60e51b815260040162000c939062003a32565b62000d048162001c94565b604080515f8082526020820190925262000d219183919062001c9e565b50565b5f62000d3284848462001e15565b90505b9392505050565b62000d4662001e6c565b62000d52335f62001efe565b565b6001600160a01b037f000000000000000000000000016700100000000000000000000000000000000416300362000d9f5760405162461bcd60e51b815260040162000c9390620039e6565b7f00000000000000000000000001670010000000000000000000000000000000046001600160a01b031662000dd362001c78565b6001600160a01b03161462000dfc5760405162461bcd60e51b815260040162000c939062003a32565b62000e078262001c94565b620007418282600162001c9e565b5f306001600160a01b037f0000000000000000000000000167001000000000000000000000000000000004161462000eb65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000c93565b505f805160206200461083398151915290565b62000ed362001f03565b62000d525f62001f5f565b60655433906001600160a01b0316811462000f4e5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840162000c93565b62000d218162001f5f565b62000f6e60c954610100900460ff1660021490565b1562000f8d5760405163bae6e2a960e01b815260040160405180910390fd5b600262000f99620013bc565b60ff160362000fbb5760405163dfc60d8560e01b815260040160405180910390fd5b62000fc76002620013fe565b5f8080808062000fda8688018862003a7e565b945094509450945094505f62000fef62001f7a565b905062000ffc84620020a4565b5f6200100b8786868662001546565b9050620010226001600160a01b0386163462001642565b846001600160a01b0316866001600160a01b0316835f01517f895f73e418d1bbbad2a311d085fad00e5d98a960e9f2afa4b942071d39bec43a85604001518b60200151868a8a6040516200107b95949392919062003ba1565b60405180910390a450505050505050620007416001620013fe565b620010a0620020e2565b62000d5233600162001efe565b5f620010b862001c78565b905090565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b9093046001600160a01b0316929190620010fd9062003bfd565b80601f01602080910402602001604051908101604052809291908181526020018280546200112b9062003bfd565b80156200117a5780601f1062001150576101008083540402835291602001916200117a565b820191905f5260205f20905b8154815290600101906020018083116200115c57829003601f168201915b505050505090806002018054620011919062003bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054620011bf9062003bfd565b80156200120e5780601f10620011e4576101008083540402835291602001916200120e565b820191905f5260205f20905b815481529060010190602001808311620011f057829003601f168201915b5050505050905084565b5f62000d3546848462001e15565b5f54610100900460ff16158080156200124557505f54600160ff909116105b80620012605750303b1580156200126057505f5460ff166001145b620012c55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000c93565b5f805460ff191660011790558015620012e7575f805461ff0019166101001790555b620012f3838362002156565b620012fd62002195565b801562001343575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6200135262001f03565b606580546001600160a01b0383166001600160a01b03199091168117909155620013846033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f620013c846620021be565b15620013f457507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b6200140946620021be565b156200143557807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b6200147c81600162001218565b6001600160a01b0316336001600160a01b031614620014ae57604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015620014eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001511919062003c31565b60208101519092506001600160a01b031633146200154257604051632583296b60e01b815260040160405180910390fd5b5090565b5f46855f01516001600160401b031603620015ca57506020840151604051631759616b60e11b81526001600160a01b03821690632eb2c2d6906200159590309088908890889060040162003c9f565b5f604051808303815f87803b158015620015ad575f80fd5b505af1158015620015c0573d5f803e3d5ffd5b505050506200163a565b620015d585620021f0565b60405163d81d0a1560e01b81529091506001600160a01b0382169063d81d0a15906200160a9087908790879060040162003cfc565b5f604051808303815f87803b15801562001622575f80fd5b505af115801562001635573d5f803e3d5ffd5b505050505b949350505050565b6200074182825a6200223a565b5f6001600160e01b0319821662bc399d60e11b14806200167f57506001600160e01b03198216637f07c94760e01b145b806200076357506001600160e01b031982166301ffc9a760e01b1492915050565b5f6001600160e01b03198216630271189760e51b14806200076357506301ffc9a760e01b6001600160e01b031983161462000763565b5f6001600160a01b0383163b620016ef57505f62000763565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa9250505080156200175c575060408051601f3d908101601f19168201909252620017599181019062003d35565b60015b1562000763579392505050565b604080516080810182525f808252602082015260609181018290528082018290525f61012d81620017a160a087016080880162002d99565b6001600160a01b03908116825260208201929092526040015f208054909250600160401b9004161562001ac3576040805160808101825282546001600160401b0381168252600160401b90046001600160a01b03166020820152600183018054919284929084019190620018159062003bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054620018439062003bfd565b8015620018925780601f10620018685761010080835404028352916020019162001892565b820191905f5260205f20905b8154815290600101906020018083116200187457829003601f168201915b50505050508152602001600282018054620018ad9062003bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054620018db9062003bfd565b80156200192a5780601f1062001900576101008083540402835291602001916200192a565b820191905f5260205f20905b8154815290600101906020018083116200190c57829003601f168201915b50505050508152505091508360800160208101906200194a919062002d99565b6001600160a01b0316632eb2c2d633306200196960c08901896200376f565b6200197860e08b018b6200376f565b6040518763ffffffff1660e01b81526004016200199b9695949392919062003d53565b5f604051808303815f87803b158015620019b3575f80fd5b505af1158015620019c6573d5f803e3d5ffd5b505050505f5b620019db60c08601866200376f565b905081101562001abc57620019f760a086016080870162002d99565b6001600160a01b031663b390c0ab62001a1460c08801886200376f565b8481811062001a275762001a27620037b7565b90506020020135878060e0019062001a4091906200376f565b8581811062001a535762001a53620037b7565b905060200201356040518363ffffffff1660e01b815260040162001a81929190918252602082015260400190565b5f604051808303815f87803b15801562001a99575f80fd5b505af115801562001aac573d5f803e3d5ffd5b50505050806001019050620019cc565b5062001bd4565b6040518060800160405280466001600160401b0316815260200185608001602081019062001af2919062002d99565b6001600160a01b0316815260200162001b1c62001b1660a088016080890162002d99565b62002281565b815260200162001b3d62001b3760a088016080890162002d99565b62002333565b9052915062001b5360a085016080860162002d99565b6001600160a01b0316632eb2c2d6333062001b7260c08901896200376f565b62001b8160e08b018b6200376f565b6040518763ffffffff1660e01b815260040162001ba49695949392919062003d53565b5f604051808303815f87803b15801562001bbc575f80fd5b505af115801562001bcf573d5f803e3d5ffd5b505050505b5030637f07c947823362001bef606088016040890162002d99565b62001bfe60c08901896200376f565b62001c0d60e08b018b6200376f565b60405160200162001c25979695949392919062003db4565b60408051601f198184030181529082905262001c449160240162003e6d565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050509150915091565b5f8051602062004610833981519152546001600160a01b031690565b62000d2162001f03565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001cd45762001343836200237b565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001d31575060408051601f3d908101601f1916820190925262001d2e9181019062003e81565b60015b62001d965760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000c93565b5f8051602062004610833981519152811462001e075760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000c93565b506200134383838362002419565b5f62001e22848462002449565b90508115801562001e3a57506001600160a01b038116155b1562000d3557604051632b0d65db60e01b81526001600160401b03851660048201526024810184905260440162000c93565b62001e8160c954610100900460ff1660021490565b62001e9f5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b620007415b6033546001600160a01b0316331462000d525760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000c93565b606580546001600160a01b031916905562000d2181620024ef565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b62001fad81600162001218565b6001600160a01b0316336001600160a01b03161462001fdf57604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156200201c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002042919062003c31565b91505f62002066836040015162000aa06c195c98cc4c4d4d57dd985d5b1d609a1b90565b9050806001600160a01b031683602001516001600160a01b0316146200209f57604051632583296b60e01b815260040160405180910390fd5b505090565b6001600160a01b0381161580620020c357506001600160a01b03811630145b1562000d2157604051635b50f3f960e01b815260040160405180910390fd5b620020f760c954610100900460ff1660021490565b15620021165760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200162001ef4565b806001600160a01b0381166200217f5760405163538ba4f960e01b815260040160405180910390fd5b6200218a8362002540565b6200134382620025a7565b5f54610100900460ff1662000d525760405162461bcd60e51b815260040162000c939062003e99565b5f6001821480620021d0575061426882145b80620021de575062aa36a782145b8062000763575062000763826200261b565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b03908116855292529091205416806200223557620007638262002633565b919050565b815f036200224757505050565b6200226383838360405180602001604052805f8152506200281f565b6200134357604051634c67134d60e11b815260040160405180910390fd5b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b17905290516060915f9182916001600160a01b03861691620022c9919062003ee4565b5f60405180830381855afa9150503d805f811462002303576040519150601f19603f3d011682016040523d82523d5f602084013e62002308565b606091505b509150915081620023285760405180602001604052805f8152506200163a565b6200163a816200285d565b60408051600481526024810182526020810180516001600160e01b03166306fdde0360e01b17905290516060915f9182916001600160a01b03861691620022c9919062003ee4565b6001600160a01b0381163b620023ea5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000c93565b5f805160206200461083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6200242483620029e8565b5f82511180620024315750805b15620013435762002443838362002a29565b50505050565b6097545f906001600160a01b0316806200247657604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015620024c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200163a919062003f01565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16620025695760405162461bcd60e51b815260040162000c939062003e99565b6200257362002195565b620025956001600160a01b038216156200258e578162001f5f565b3362001f5f565b5060c9805461ff001916610100179055565b5f54610100900460ff16620025d05760405162461bcd60e51b815260040162000c939062003e99565b6001600160401b03461115620025f95760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c821015801562000763575050617e90101590565b5f80620026486033546001600160a01b031690565b60975460208501518551604080880151606089015191516200267b96956001600160a01b03169493929060240162003f1f565b60408051601f198184030181529190526020810180516001600160e01b03166377c6257360e11b1790529050620026c56e627269646765645f6572633131353560881b5f62001218565b81604051620026d49062002b6b565b620026e192919062003f84565b604051809103905ff080158015620026fb573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d60209081526040918290208751815492890151909416600160401b026001600160e01b03199092166001600160401b03909416939093171782558501519193508491600182019062002761908262003ff8565b506060820151600282019062002778908262003ff8565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b03191688851690811790915591518851828a015160608b01519351949750919094169493909316927f44977f2d30fe1e3aee2c1476f2f95aaacaf34e44b9359c403da01fcc93fd751b92620028119290620040c4565b60405180910390a450919050565b5f6001600160a01b0385166200284857604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b606060408251106200287f5781806020019051810190620007639190620040f5565b8151602003620029d5575f5b60208160ff16108015620028c45750828160ff1681518110620028b257620028b2620037b7565b01602001516001600160f81b03191615155b15620028df5780620028d6816200412a565b9150506200288b565b5f8160ff166001600160401b03811115620028fe57620028fe62002e2b565b6040519080825280601f01601f19166020018201604052801562002929576020820181803683370190505b5090505f91505b60208260ff16108015620029695750838260ff1681518110620029575762002957620037b7565b01602001516001600160f81b03191615155b1562000d3557838260ff1681518110620029875762002987620037b7565b602001015160f81c60f81b818360ff1681518110620029aa57620029aa620037b7565b60200101906001600160f81b03191690815f1a90535081620029cc816200412a565b92505062002930565b505060408051602081019091525f815290565b620029f3816200237b565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000d358383604051806060016040528060278152602001620046306027913960605f80856001600160a01b03168560405162002a69919062003ee4565b5f60405180830381855af49150503d805f811462002aa3576040519150601f19603f3d011682016040523d82523d5f602084013e62002aa8565b606091505b509150915062002abb8683838762002ac5565b9695505050505050565b6060831562002b385782515f0362002b30576001600160a01b0385163b62002b305760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000c93565b50816200163a565b6200163a838381511562002b4f5781518083602001fd5b8060405162461bcd60e51b815260040162000c93919062003e6d565b6104c4806200414c83390190565b5f806040838503121562002b8b575f80fd5b82356001600160401b0381111562002ba1575f80fd5b8301610160818603121562002bb4575f80fd5b946020939093013593505050565b5f6020828403121562002bd3575f80fd5b81356001600160e01b03198116811462000d35575f80fd5b5f6020828403121562002bfc575f80fd5b81356001600160401b0381111562002c12575f80fd5b8201610100818503121562000d35575f80fd5b5f5b8381101562002c4157818101518382015260200162002c27565b50505f910152565b5f815180845262002c6281602086016020860162002c25565b601f01601f19169290920160200192915050565b6020815262002c916020820183516001600160401b03169052565b5f602083015162002cad60408401826001600160401b03169052565b50604083015163ffffffff811660608401525060608301516001600160a01b03811660808401525060808301516001600160401b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160401b03811660e08401525060e083015161010062002d31818501836001600160a01b03169052565b840151905061012062002d4e848201836001600160a01b03169052565b840151610140848101919091528401516101608085015290506200163a61018084018262002c49565b6001600160a01b038116811462000d21575f80fd5b8035620022358162002d77565b5f6020828403121562002daa575f80fd5b813562000d358162002d77565b6001600160401b038116811462000d21575f80fd5b8035620022358162002db7565b801515811462000d21575f80fd5b5f805f6060848603121562002dfa575f80fd5b833562002e078162002db7565b925060208401359150604084013562002e208162002dd9565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b038111828210171562002e645762002e6462002e2b565b60405290565b60405161010081016001600160401b038111828210171562002e645762002e6462002e2b565b60405161016081016001600160401b038111828210171562002e645762002e6462002e2b565b604051601f8201601f191681016001600160401b038111828210171562002ee15762002ee162002e2b565b604052919050565b5f6001600160401b0382111562002f045762002f0462002e2b565b50601f01601f191660200190565b5f82601f83011262002f22575f80fd5b813562002f3962002f338262002ee9565b62002eb6565b81815284602083860101111562002f4e575f80fd5b816020850160208301375f918101602001919091529392505050565b5f806040838503121562002f7c575f80fd5b823562002f898162002d77565b915060208301356001600160401b0381111562002fa4575f80fd5b62002fb28582860162002f12565b9150509250929050565b5f806040838503121562002fce575f80fd5b82359150602083013562002fe28162002d77565b809150509250929050565b5f8083601f84011262002ffe575f80fd5b5081356001600160401b0381111562003015575f80fd5b6020830191508360208285010111156200302d575f80fd5b9250929050565b5f806020838503121562003046575f80fd5b82356001600160401b038111156200305c575f80fd5b6200306a8582860162002fed565b90969095509350505050565b6001600160401b03851681526001600160a01b03841660208201526080604082018190525f90620030aa9083018562002c49565b8281036060840152620030be818562002c49565b979650505050505050565b5f8060408385031215620030db575f80fd5b82359150602083013562002fe28162002dd9565b5f8083601f84011262003100575f80fd5b5081356001600160401b0381111562003117575f80fd5b6020830191508360208260051b85010111156200302d575f80fd5b5f805f805f805f8060a0898b0312156200314a575f80fd5b8835620031578162002d77565b97506020890135620031698162002d77565b965060408901356001600160401b038082111562003185575f80fd5b620031938c838d01620030ef565b909850965060608b0135915080821115620031ac575f80fd5b620031ba8c838d01620030ef565b909650945060808b0135915080821115620031d3575f80fd5b50620031e28b828c0162002fed565b999c989b5096995094979396929594505050565b5f806040838503121562003208575f80fd5b8235620032158162002d77565b9150602083013562002fe28162002d77565b5f805f805f8060a087890312156200323d575f80fd5b86356200324a8162002d77565b955060208701356200325c8162002d77565b9450604087013593506060870135925060808701356001600160401b0381111562003285575f80fd5b6200329389828a0162002fed565b979a9699509497509295939492505050565b5f808335601e19843603018112620032bb575f80fd5b8301803591506001600160401b03821115620032d5575f80fd5b6020019150368190038213156200302d575f80fd5b5f8085851115620032f9575f80fd5b8386111562003306575f80fd5b5050820193919092039150565b5f6020828403121562003324575f80fd5b81356001600160401b038111156200333a575f80fd5b6200163a8482850162002f12565b8051620022358162002db7565b8051620022358162002d77565b5f82601f83011262003372575f80fd5b81516200338362002f338262002ee9565b81815284602083860101111562003398575f80fd5b6200163a82602083016020870162002c25565b5f6001600160401b03821115620033c657620033c662002e2b565b5060051b60200190565b5f82601f830112620033e0575f80fd5b81516020620033f362002f3383620033ab565b8083825260208201915060208460051b87010193508684111562003415575f80fd5b602086015b848110156200343357805183529183019183016200341a565b509695505050505050565b5f805f805f60a0868803121562003453575f80fd5b85516001600160401b03808211156200346a575f80fd5b908701906080828a0312156200347e575f80fd5b6200348862002e3f565b8251620034958162002db7565b81526020830151620034a78162002d77565b6020820152604083015182811115620034be575f80fd5b620034cc8b82860162003362565b604083015250606083015182811115620034e4575f80fd5b620034f28b82860162003362565b6060830152509650620035086020890162003355565b9550620035186040890162003355565b945060608801519150808211156200352e575f80fd5b6200353c89838a01620033d0565b9350608088015191508082111562003552575f80fd5b506200356188828901620033d0565b9150509295509295909350565b5f815180845260208085019450602084015f5b838110156200359f5781518752958201959082019060010162003581565b509495945050505050565b6001600160a01b038581168252841660208201526080604082018190525f90620035d7908301856200356e565b8281036060840152620030be81856200356e565b63ffffffff8116811462000d21575f80fd5b80356200223581620035eb565b5f82601f8301126200361a575f80fd5b813560206200362d62002f3383620033ab565b8083825260208201915060208460051b8701019350868411156200364f575f80fd5b602086015b8481101562003433578035835291830191830162003654565b5f61010082360312156200367f575f80fd5b6200368962002e6a565b620036948362002dcc565b8152620036a46020840162002d8c565b6020820152620036b76040840162002d8c565b6040820152620036ca6060840162002dcc565b6060820152620036dd6080840162002d8c565b6080820152620036f060a08401620035fd565b60a082015260c08301356001600160401b03808211156200370f575f80fd5b6200371d368387016200360a565b60c084015260e085013591508082111562003736575f80fd5b5062003745368286016200360a565b60e08301525092915050565b5f6020828403121562003762575f80fd5b813562000d358162002db7565b5f808335601e1984360301811262003785575f80fd5b8301803591506001600160401b038211156200379f575f80fd5b6020019150600581901b36038213156200302d575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215620037dc575f80fd5b813562000d3581620035eb565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620007635762000763620037e9565b80516200223581620035eb565b5f806040838503121562003832575f80fd5b8251915060208301516001600160401b038082111562003850575f80fd5b90840190610160828703121562003865575f80fd5b6200386f62002e90565b6200387a8362003348565b81526200388a6020840162003348565b60208201526200389d6040840162003813565b6040820152620038b06060840162003355565b6060820152620038c36080840162003348565b6080820152620038d660a0840162003355565b60a0820152620038e960c0840162003348565b60c0820152620038fc60e0840162003355565b60e08201526101006200391181850162003355565b908201526101208381015190820152610140808401518381111562003934575f80fd5b620039428982870162003362565b8284015250508093505050509250929050565b8183525f6001600160fb1b038311156200396d575f80fd5b8260051b80836020870137939093016020019392505050565b6001600160401b03881681526001600160a01b0387811660208301528616604082015260a0606082018190525f90620039c3908301868862003955565b8281036080840152620039d881858762003955565b9a9950505050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f805f805f60a0868803121562003a93575f80fd5b85356001600160401b038082111562003aaa575f80fd5b908701906080828a03121562003abe575f80fd5b62003ac862002e3f565b823562003ad58162002db7565b8152602083013562003ae78162002d77565b602082015260408301358281111562003afe575f80fd5b62003b0c8b82860162002f12565b60408301525060608301358281111562003b24575f80fd5b62003b328b82860162002f12565b606083015250965062003b486020890162002d8c565b955062003b586040890162002d8c565b9450606088013591508082111562003b6e575f80fd5b62003b7c89838a016200360a565b9350608088013591508082111562003b92575f80fd5b5062003561888289016200360a565b6001600160401b03861681526001600160a01b0385811660208301528416604082015260a0606082018190525f9062003bdd908301856200356e565b828103608084015262003bf181856200356e565b98975050505050505050565b600181811c9082168062003c1257607f821691505b60208210810362000c2c57634e487b7160e01b5f52602260045260245ffd5b5f6060828403121562003c42575f80fd5b604051606081018181106001600160401b038211171562003c675762003c6762002e2b565b60405282518152602083015162003c7e8162002d77565b6020820152604083015162003c938162002db7565b60408201529392505050565b6001600160a01b0385811682528416602082015260a0604082018190525f9062003ccc908301856200356e565b828103606084015262003ce081856200356e565b83810360809094019390935250505f8152602001949350505050565b6001600160a01b03841681526060602082018190525f9062003d21908301856200356e565b828103604084015262002abb81856200356e565b5f6020828403121562003d46575f80fd5b815162000d358162002dd9565b6001600160a01b0387811682528616602082015260a0604082018190525f9062003d81908301868862003955565b828103606084015262003d9681858762003955565b83810360809094019390935250505f81526020019695505050505050565b60a080825288516001600160401b03169082015260208801516001600160a01b031660c08201526040880151608060e08301525f9062003df961012084018262002c49565b905060608a0151609f198483030161010085015262003e19828262002c49565b91505062003e32602084018a6001600160a01b03169052565b6001600160a01b0388166040840152828103606084015262003e5681878962003955565b90508281036080840152620039d881858762003955565b602081525f62000d35602083018462002c49565b5f6020828403121562003e92575f80fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f825162003ef781846020870162002c25565b9190910192915050565b5f6020828403121562003f12575f80fd5b815162000d358162002d77565b6001600160a01b0387811682528681166020830152851660408201526001600160401b038416606082015260c0608082018190525f9062003f639083018562002c49565b82810360a084015262003f77818562002c49565b9998505050505050505050565b6001600160a01b03831681526040602082018190525f9062000d329083018462002c49565b601f8211156200134357805f5260205f20601f840160051c8101602085101562003fd05750805b601f840160051c820191505b8181101562003ff1575f815560010162003fdc565b5050505050565b81516001600160401b0381111562004014576200401462002e2b565b6200402c8162004025845462003bfd565b8462003fa9565b602080601f83116001811462004062575f84156200404a5750858301515b5f19600386901b1c1916600185901b178555620040bc565b5f85815260208120601f198616915b82811015620040925788860151825594840194600190910190840162004071565b5085821015620040b057878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b604081525f620040d8604083018562002c49565b8281036020840152620040ec818562002c49565b95945050505050565b5f6020828403121562004106575f80fd5b81516001600160401b038111156200411c575f80fd5b6200163a8482850162003362565b5f60ff821660ff8103620041425762004142620037e9565b6001019291505056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220745d04b98b3aed6181cb020799fe1baaf079fe0385f5ffea02ae5081898469a064736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220319a9432b7533289109c0fc7d925db3794365e5093b5f5c7d41dac22ecffa63864736f6c63430008180033", + "balance": "0x0" + }, + "0x1670010000000000000000000000000000000004": { + "contractName": "ERC1155Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670010000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167001000000000000000000000000000000004" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220745d04b98b3aed6181cb020799fe1baaf079fe0385f5ffea02ae5081898469a064736f6c63430008180033", + "balance": "0x0" + }, + "0x0167001000000000000000000000000000010096": { + "contractName": "BridgedERC20", + "storage": {}, + "code": "0x608060405260043610610233575f3560e01c806370a0823111610129578063a77f1516116100a8578063dd62ed3e1161006d578063dd62ed3e14610684578063e07baba6146106a3578063e30c3978146106e2578063f12506c1146106ff578063f2fde38b14610713575f80fd5b8063a77f1516146105e7578063a86f9d9e14610608578063a9059cbb14610627578063b8f2e0c514610646578063bb86ef9314610665575f80fd5b80638456cb59116100ee5780638456cb591461056f5780638abf6077146105835780638da5cb5b1461059757806395d89b41146105b4578063a457c2d7146105c8575f80fd5b806370a08231146104d3578063715018a61461050757806379ba50971461051b5780637cf8ed0d1461052f5780637e4746341461054f575f80fd5b806339509351116101b557806342966c681161017a57806342966c681461045757806349d12605146104765780634f1ef2861461048c57806352d1902d1461049f5780635c975abb146104b3575f80fd5b806339509351146103af5780633ab76e9f146103ce5780633eb6b8cf146104055780633f4ba83a1461042457806340c10f1914610438575f80fd5b806323b872dd116101fb57806323b872dd146102ea57806326afaadd146103095780633075db561461034d578063313ce567146103615780633659cfe61461038e575f80fd5b806301ffc9a71461023757806306fdde031461026b578063095ea7b31461028c5780630ae74548146102ab57806318160ddd146102cc575b5f80fd5b348015610242575f80fd5b50610256610251366004612237565b610732565b60405190151581526020015b60405180910390f35b348015610276575f80fd5b5061027f6107d4565b6040516102629190612280565b348015610297575f80fd5b506102566102a63660046122c6565b610864565b3480156102b6575f80fd5b5061012f5461025690600160a01b900460ff1681565b3480156102d7575f80fd5b5060fd545b604051908152602001610262565b3480156102f5575f80fd5b506102566103043660046122f0565b61087b565b348015610314575f80fd5b5061032e61012d5461012e546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610262565b348015610358575f80fd5b506102566108a0565b34801561036c575f80fd5b5061012d54600160a01b900460ff165b60405160ff9091168152602001610262565b348015610399575f80fd5b506103ad6103a836600461232e565b6108b4565b005b3480156103ba575f80fd5b506102566103c93660046122c6565b610984565b3480156103d9575f80fd5b506097546103ed906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b348015610410575f80fd5b506103ed61041f36600461235d565b6109a5565b34801561042f575f80fd5b506103ad6109b9565b348015610443575f80fd5b506103ad6104523660046122c6565b6109cd565b348015610462575f80fd5b506103ad6104713660046123a4565b610ae3565b348015610481575f80fd5b506102dc61012e5481565b6103ad61049a3660046123cf565b610c1c565b3480156104aa575f80fd5b506102dc610cd1565b3480156104be575f80fd5b5061025660c954610100900460ff1660021490565b3480156104de575f80fd5b506102dc6104ed36600461232e565b6001600160a01b03165f90815260fb602052604090205490565b348015610512575f80fd5b506103ad610d82565b348015610526575f80fd5b506103ad610d93565b34801561053a575f80fd5b5061012d546103ed906001600160a01b031681565b34801561055a575f80fd5b5061012f546103ed906001600160a01b031681565b34801561057a575f80fd5b506103ad610e0a565b34801561058e575f80fd5b506103ed610e1d565b3480156105a2575f80fd5b506033546001600160a01b03166103ed565b3480156105bf575f80fd5b5061027f610e2b565b3480156105d3575f80fd5b506102566105e23660046122c6565b610e3a565b3480156105f2575f80fd5b5061012d5461037c90600160a01b900460ff1681565b348015610613575f80fd5b506103ed61062236600461248d565b610ebf565b348015610632575f80fd5b506102566106413660046122c6565b610ecb565b348015610651575f80fd5b506103ad6106603660046124b7565b610ed8565b348015610670575f80fd5b506103ad61067f366004612526565b611051565b34801561068f575f80fd5b506102dc61069e3660046125e9565b611211565b3480156106ae575f80fd5b5060c9546106c99062010000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610262565b3480156106ed575f80fd5b506065546001600160a01b03166103ed565b34801561070a575f80fd5b5061025661123b565b34801561071e575f80fd5b506103ad61072d36600461232e565b611266565b5f6001600160e01b0319821663093e326b60e21b148061076257506001600160e01b0319821663bb86ef9360e01b145b8061077d57506001600160e01b0319821663b8f2e0c560e01b145b8061079857506001600160e01b031982166336372b0760e01b145b806107b357506001600160e01b0319821663a219a02560e01b145b806107ce57506001600160e01b031982166301ffc9a760e01b145b92915050565b606060fe80546107e390612620565b80601f016020809104026020016040519081016040528092919081815260200182805461080f90612620565b801561085a5780601f106108315761010080835404028352916020019161085a565b820191905f5260205f20905b81548152906001019060200180831161083d57829003601f168201915b5050505050905090565b5f336108718185856112d7565b5060019392505050565b5f336108888582856113fa565b610893858585611472565b60019150505b9392505050565b5f60026108ab611626565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000100961630036109055760405162461bcd60e51b81526004016108fc90612658565b60405180910390fd5b7f00000000000000000000000001670010000000000000000000000000000100966001600160a01b0316610937611665565b6001600160a01b03161461095d5760405162461bcd60e51b81526004016108fc906126a4565b61096681611680565b604080515f8082526020820190925261098191839190611688565b50565b5f336108718185856109968383611211565b6109a091906126f0565b6112d7565b5f6109b18484846117f2565b949350505050565b6109c1611845565b6109cb335f6118d6565b565b6109e160c954610100900460ff1660021490565b156109ff5760405163bae6e2a960e01b815260040160405180910390fd5b6002610a09611626565b60ff1603610a2a5760405163dfc60d8560e01b815260040160405180910390fd5b610a3460026118de565b610a3c61123b565b15610a5a5760405163270bf77560e01b815260040160405180910390fd5b61012f546001600160a01b031633819003610ac157826001600160a01b0316816001600160a01b03167fe502aa3e015149f4b76a0b2b5394e3100903c4af27c3ddc98385395d3f55252684604051610ab491815260200190565b60405180910390a3610aca565b610aca33611926565b610ad483836119a2565b50610adf60016118de565b5050565b610af760c954610100900460ff1660021490565b15610b155760405163bae6e2a960e01b815260040160405180910390fd5b6002610b1f611626565b60ff1603610b405760405163dfc60d8560e01b815260040160405180910390fd5b610b4a60026118de565b610b5261123b565b15610bff5761012f546040518281526001600160a01b0390911690339082907f638edf84937fb2534b47cac985ea84d6ea4f4076315b56ea1c784d26b87e2bcb9060200160405180910390a36040516340c10f1960e01b8152336004820152602481018390526001600160a01b038216906340c10f19906044015f604051808303815f87803b158015610be3575f80fd5b505af1158015610bf5573d5f803e3d5ffd5b5050505050610c08565b610c0833611926565b610c123382611a6c565b61098160016118de565b6001600160a01b037f0000000000000000000000000167001000000000000000000000000000010096163003610c645760405162461bcd60e51b81526004016108fc90612658565b7f00000000000000000000000001670010000000000000000000000000000100966001600160a01b0316610c96611665565b6001600160a01b031614610cbc5760405162461bcd60e51b81526004016108fc906126a4565b610cc582611680565b610adf82826001611688565b5f306001600160a01b037f00000000000000000000000001670010000000000000000000000000000100961614610d705760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108fc565b505f805160206128b383398151915290565b610d8a611ba9565b6109cb5f611c03565b60655433906001600160a01b03168114610e015760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016108fc565b61098181611c03565b610e12611c1c565b6109cb3360016118d6565b5f610e26611665565b905090565b606060ff80546107e390612620565b5f3381610e478286611211565b905083811015610ea75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108fc565b610eb482868684036112d7565b506001949350505050565b5f6108994684846117f2565b5f33610871818585611472565b610eec60c954610100900460ff1660021490565b15610f0a5760405163bae6e2a960e01b815260040160405180910390fd5b6a195c98cc8c17dd985d5b1d60aa1b610f24816001610ebf565b6001600160a01b0316336001600160a01b031614610f5557604051630d85cccf60e11b815260040160405180910390fd5b6002610f5f611626565b60ff1603610f805760405163dfc60d8560e01b815260040160405180910390fd5b610f8a60026118de565b61012f546001600160a01b038481169116148015610fbb575061012f60149054906101000a900460ff161515821515145b15610fd95760405163c118d2f360e01b815260040160405180910390fd5b61012f80546001600160a01b0385166001600160a81b03199091168117600160a01b851515908102919091179092556040805191825260208201929092527fa6b6f959792843a48d9d03d13595f2de7c86ae0ce12ef0fa759dd911b205e565910160405180910390a161104c60016118de565b505050565b5f54610100900460ff161580801561106f57505f54600160ff909116105b806110885750303b15801561108857505f5460ff166001145b6110eb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108fc565b5f805460ff19166001179055801561110c575f805461ff0019166101001790555b6111168888611c8d565b6111208a8a611cc9565b61119183838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8b0181900481028201810190925289815292508991508890819084018382808284375f92019190915250611d0392505050565b61012d805461012e89905560ff8816600160a01b026001600160a81b03199091166001600160a01b038b16171790558015611205575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050565b6001600160a01b039182165f90815260fc6020908152604080832093909416825291909152205490565b61012f545f906001600160a01b031615801590610e2657505061012f54600160a01b900460ff161590565b61126e611ba9565b606580546001600160a01b0383166001600160a01b0319909116811790915561129f6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b0383166113395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108fc565b6001600160a01b03821661139a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108fc565b6001600160a01b038381165f81815260fc602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6114058484611211565b90505f19811461146c578181101561145f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108fc565b61146c84848484036112d7565b50505050565b6001600160a01b0383166114d65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108fc565b6001600160a01b0382166115385760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108fc565b611543838383611d33565b6001600160a01b0383165f90815260fb6020526040902054818110156115ba5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108fc565b6001600160a01b038085165f81815260fb602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116199086815260200190565b60405180910390a361146c565b5f61163046611d6e565b1561165b57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f805160206128b3833981519152546001600160a01b031690565b610981611ba9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116bb5761104c83611d9b565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611715575060408051601f3d908101601f191682019092526117129181019061270f565b60015b6117785760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108fc565b5f805160206128b383398151915281146117e65760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108fc565b5061104c838383611e36565b5f6117fd8484611e5a565b90508115801561181457506001600160a01b038116155b1561089957604051632b0d65db60e01b815267ffffffffffffffff85166004820152602481018490526044016108fc565b61185960c954610100900460ff1660021490565b6118765760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff0019909116620100004267ffffffffffffffff1602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610adf611ba9565b6118e746611d6e565b1561191257807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6a195c98cc8c17dd985d5b1d60aa1b6119476033546001600160a01b031690565b6001600160a01b0316336001600160a01b031614158015611984575061196e816001610ebf565b6001600160a01b0316336001600160a01b031614155b15610adf57604051630d85cccf60e11b815260040160405180910390fd5b6001600160a01b0382166119f85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108fc565b611a035f8383611d33565b8060fd5f828254611a1491906126f0565b90915550506001600160a01b0382165f81815260fb60209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216611acc5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108fc565b611ad7825f83611d33565b6001600160a01b0382165f90815260fb602052604090205481811015611b4a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016108fc565b6001600160a01b0383165f81815260fb60209081526040808320868603905560fd80548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6033546001600160a01b031633146109cb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fc565b606580546001600160a01b031916905561098181611efd565b611c3060c954610100900460ff1660021490565b15611c4e5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016118cc565b6001600160a01b0382161580611ca1575080155b80611cab57504681145b15610adf5760405163c118d2f360e01b815260040160405180910390fd5b806001600160a01b038116611cf15760405163538ba4f960e01b815260040160405180910390fd5b611cfa83611f4e565b61104c82611fac565b5f54610100900460ff16611d295760405162461bcd60e51b81526004016108fc90612726565b610adf828261201d565b611d4760c954610100900460ff1660021490565b15611d655760405163bae6e2a960e01b815260040160405180910390fd5b61104c8261205c565b5f6001821480611d7f575061426882145b80611d8c575062aa36a782145b806107ce57506107ce82612085565b6001600160a01b0381163b611e085760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108fc565b5f805160206128b383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611e3f8361209c565b5f82511180611e4b5750805b1561104c5761146c83836120db565b6097545f906001600160a01b031680611e8657604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b815267ffffffffffffffff85166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015611ed9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b19190612771565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16611f745760405162461bcd60e51b81526004016108fc90612726565b611f7c612100565b611f9a6001600160a01b03821615611f945781611c03565b33611c03565b5060c9805461ff001916610100179055565b5f54610100900460ff16611fd25760405162461bcd60e51b81526004016108fc90612726565b67ffffffffffffffff461115611ffb5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f54610100900460ff166120435760405162461bcd60e51b81526004016108fc90612726565b60fe61204f83826127d7565b5060ff61104c82826127d7565b306001600160a01b0382160361098157604051630c292c9d60e21b815260040160405180910390fd5b5f617e2c82101580156107ce575050617e90101590565b6120a581611d9b565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061089983836040518060600160405280602781526020016128d360279139612126565b5f54610100900460ff166109cb5760405162461bcd60e51b81526004016108fc90612726565b60605f80856001600160a01b0316856040516121429190612897565b5f60405180830381855af49150503d805f811461217a576040519150601f19603f3d011682016040523d82523d5f602084013e61217f565b606091505b50915091506121908683838761219a565b9695505050505050565b606083156122085782515f03612201576001600160a01b0385163b6122015760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108fc565b50816109b1565b6109b1838381511561221d5781518083602001fd5b8060405162461bcd60e51b81526004016108fc9190612280565b5f60208284031215612247575f80fd5b81356001600160e01b031981168114610899575f80fd5b5f5b83811015612278578181015183820152602001612260565b50505f910152565b602081525f825180602084015261229e81604085016020870161225e565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610981575f80fd5b5f80604083850312156122d7575f80fd5b82356122e2816122b2565b946020939093013593505050565b5f805f60608486031215612302575f80fd5b833561230d816122b2565b9250602084013561231d816122b2565b929592945050506040919091013590565b5f6020828403121561233e575f80fd5b8135610899816122b2565b80358015158114612358575f80fd5b919050565b5f805f6060848603121561236f575f80fd5b833567ffffffffffffffff81168114612386575f80fd5b92506020840135915061239b60408501612349565b90509250925092565b5f602082840312156123b4575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f80604083850312156123e0575f80fd5b82356123eb816122b2565b9150602083013567ffffffffffffffff80821115612407575f80fd5b818501915085601f83011261241a575f80fd5b81358181111561242c5761242c6123bb565b604051601f8201601f19908116603f01168101908382118183101715612454576124546123bb565b8160405282815288602084870101111561246c575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f806040838503121561249e575f80fd5b823591506124ae60208401612349565b90509250929050565b5f80604083850312156124c8575f80fd5b82356124d3816122b2565b91506124ae60208401612349565b5f8083601f8401126124f1575f80fd5b50813567ffffffffffffffff811115612508575f80fd5b60208301915083602082850101111561251f575f80fd5b9250929050565b5f805f805f805f805f60e08a8c03121561253e575f80fd5b8935612549816122b2565b985060208a0135612559816122b2565b975060408a0135612569816122b2565b965060608a0135955060808a013560ff81168114612585575f80fd5b945060a08a013567ffffffffffffffff808211156125a1575f80fd5b6125ad8d838e016124e1565b909650945060c08c01359150808211156125c5575f80fd5b506125d28c828d016124e1565b915080935050809150509295985092959850929598565b5f80604083850312156125fa575f80fd5b8235612605816122b2565b91506020830135612615816122b2565b809150509250929050565b600181811c9082168061263457607f821691505b60208210810361265257634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b808201808211156107ce57634e487b7160e01b5f52601160045260245ffd5b5f6020828403121561271f575f80fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215612781575f80fd5b8151610899816122b2565b601f82111561104c57805f5260205f20601f840160051c810160208510156127b15750805b601f840160051c820191505b818110156127d0575f81556001016127bd565b5050505050565b815167ffffffffffffffff8111156127f1576127f16123bb565b612805816127ff8454612620565b8461278c565b602080601f831160018114612838575f84156128215750858301515b5f19600386901b1c1916600185901b17855561288f565b5f85815260208120601f198616915b8281101561286657888601518255948401946001909101908401612847565b508582101561288357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f82516128a881846020870161225e565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bb820e47d317e89d9adbfaa9a51b3ca53c0fcfc0a863cbe554e116211fde362c64736f6c63430008180033", + "balance": "0x0" + }, + "0x0167001000000000000000000000000000010097": { + "contractName": "BridgedERC721", + "storage": {}, + "code": "0x608060405260043610610207575f3560e01c80636352211e11610113578063a22cb4651161009d578063e07baba61161006d578063e07baba6146105c3578063e30c397814610600578063e985e9c51461061d578063ef8c4ae614610665578063f2fde38b14610684575f80fd5b8063a22cb46514610547578063a86f9d9e14610566578063b88d4fde14610585578063c87b56dd146105a4575f80fd5b80637cf8ed0d116100e35780637cf8ed0d146104ce5780638456cb59146104ee5780638abf6077146105025780638da5cb5b1461051657806395d89b4114610533575f80fd5b80636352211e1461046857806370a0823114610487578063715018a6146104a657806379ba5097146104ba575f80fd5b80633eb6b8cf1161019457806342966c681161016457806342966c68146103de57806349d12605146103fd5780634f1ef2861461042157806352d1902d146104345780635c975abb14610448575f80fd5b80633eb6b8cf1461036d5780633f4ba83a1461038c57806340c10f19146103a057806342842e0e146103bf575f80fd5b806323b872dd116101da57806323b872dd146102b857806326afaadd146102d75780633075db561461031b5780633659cfe61461032f5780633ab76e9f1461034e575f80fd5b806301ffc9a71461020b57806306fdde031461023f578063081812fc14610260578063095ea7b314610297575b5f80fd5b348015610216575f80fd5b5061022a6102253660046125e4565b6106a3565b60405190151581526020015b60405180910390f35b34801561024a575f80fd5b506102536106e8565b604051610236919061264c565b34801561026b575f80fd5b5061027f61027a36600461265e565b610779565b6040516001600160a01b039091168152602001610236565b3480156102a2575f80fd5b506102b66102b1366004612689565b61079f565b005b3480156102c3575f80fd5b506102b66102d23660046126b3565b6108b8565b3480156102e2575f80fd5b506102fc61015f54610160546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610236565b348015610326575f80fd5b5061022a6108e9565b34801561033a575f80fd5b506102b66103493660046126f1565b6108fd565b348015610359575f80fd5b5060975461027f906001600160a01b031681565b348015610378575f80fd5b5061027f610387366004612720565b6109c4565b348015610397575f80fd5b506102b66109da565b3480156103ab575f80fd5b506102b66103ba366004612689565b6109ee565b3480156103ca575f80fd5b506102b66103d93660046126b3565b610ab5565b3480156103e9575f80fd5b506102b66103f836600461265e565b610acf565b348015610408575f80fd5b506104136101605481565b604051908152602001610236565b6102b661042f366004612802565b610bca565b34801561043f575f80fd5b50610413610c7f565b348015610453575f80fd5b5061022a60c954610100900460ff1660021490565b348015610473575f80fd5b5061027f61048236600461265e565b610d30565b348015610492575f80fd5b506104136104a13660046126f1565b610d90565b3480156104b1575f80fd5b506102b6610e15565b3480156104c5575f80fd5b506102b6610e26565b3480156104d9575f80fd5b5061015f5461027f906001600160a01b031681565b3480156104f9575f80fd5b506102b6610e9d565b34801561050d575f80fd5b5061027f610eb0565b348015610521575f80fd5b506033546001600160a01b031661027f565b34801561053e575f80fd5b50610253610ebe565b348015610552575f80fd5b506102b661056136600461284e565b610ece565b348015610571575f80fd5b5061027f610580366004612881565b610ed9565b348015610590575f80fd5b506102b661059f3660046128a2565b610ee5565b3480156105af575f80fd5b506102536105be36600461265e565b610f1d565b3480156105ce575f80fd5b5060c9546105e8906201000090046001600160401b031681565b6040516001600160401b039091168152602001610236565b34801561060b575f80fd5b506065546001600160a01b031661027f565b348015610628575f80fd5b5061022a610637366004612909565b6001600160a01b039182165f9081526101326020908152604080832093909416825291909152205460ff1690565b348015610670575f80fd5b506102b661067f366004612984565b610f46565b34801561068f575f80fd5b506102b661069e3660046126f1565b6110f8565b5f6001600160e01b0319821663093e326b60e21b14806106d357506001600160e01b031982166377c6257360e11b145b806106e257506106e282611169565b92915050565b606061012d80546106f890612a2d565b80601f016020809104026020016040519081016040528092919081815260200182805461072490612a2d565b801561076f5780601f106107465761010080835404028352916020019161076f565b820191905f5260205f20905b81548152906001019060200180831161075257829003601f168201915b5050505050905090565b5f610783826111b8565b505f90815261013160205260409020546001600160a01b031690565b5f6107a982610d30565b9050806001600160a01b0316836001600160a01b03160361081b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061083757506108378133610637565b6108a95760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610812565b6108b38383611217565b505050565b6108c23382611285565b6108de5760405162461bcd60e51b815260040161081290612a65565b6108b3838383611303565b5f60026108f4611475565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000100971630036109455760405162461bcd60e51b815260040161081290612ab2565b7f00000000000000000000000001670010000000000000000000000000000100976001600160a01b03166109776114b4565b6001600160a01b03161461099d5760405162461bcd60e51b815260040161081290612afe565b6109a6816114cf565b604080515f808252602082019092526109c1918391906114d7565b50565b5f6109d0848484611641565b90505b9392505050565b6109e2611693565b6109ec335f611723565b565b610a0260c954610100900460ff1660021490565b15610a205760405163bae6e2a960e01b815260040160405180910390fd5b6b195c98cdcc8c57dd985d5b1d60a21b610a3b816001610ed9565b6001600160a01b0316336001600160a01b031614610a6c57604051630d85cccf60e11b815260040160405180910390fd5b6002610a76611475565b60ff1603610a975760405163dfc60d8560e01b815260040160405180910390fd5b610aa1600261172b565b610aab8383611773565b6108b3600161172b565b6108b383838360405180602001604052805f815250610ee5565b610ae360c954610100900460ff1660021490565b15610b015760405163bae6e2a960e01b815260040160405180910390fd5b6b195c98cdcc8c57dd985d5b1d60a21b610b1c816001610ed9565b6001600160a01b0316336001600160a01b031614610b4d57604051630d85cccf60e11b815260040160405180910390fd5b6002610b57611475565b60ff1603610b785760405163dfc60d8560e01b815260040160405180910390fd5b610b82600261172b565b33610b8c83610d30565b6001600160a01b031614610bb35760405163358bf3d960e01b815260040160405180910390fd5b610bbc8261178c565b610bc6600161172b565b5050565b6001600160a01b037f0000000000000000000000000167001000000000000000000000000000010097163003610c125760405162461bcd60e51b815260040161081290612ab2565b7f00000000000000000000000001670010000000000000000000000000000100976001600160a01b0316610c446114b4565b6001600160a01b031614610c6a5760405162461bcd60e51b815260040161081290612afe565b610c73826114cf565b610bc6828260016114d7565b5f306001600160a01b037f00000000000000000000000001670010000000000000000000000000000100971614610d1e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610812565b505f80516020612ebc83398151915290565b5f81815261012f60205260408120546001600160a01b0316806106e25760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610812565b5f6001600160a01b038216610df95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610812565b506001600160a01b03165f908152610130602052604090205490565b610e1d61182e565b6109ec5f611888565b60655433906001600160a01b03168114610e945760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610812565b6109c181611888565b610ea56118a1565b6109ec336001611723565b5f610eb96114b4565b905090565b606061012e80546106f890612a2d565b610bc6338383611912565b5f6109d3468484611641565b610eef3383611285565b610f0b5760405162461bcd60e51b815260040161081290612a65565b610f17848484846119e0565b50505050565b61015f54610160546060916106e2916001600160a01b0390911690610f4185611a13565b611aa2565b5f54610100900460ff1615808015610f6457505f54600160ff909116105b80610f7d5750303b158015610f7d57505f5460ff166001145b610fe05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610812565b5f805460ff191660011790558015611001575f805461ff0019166101001790555b61100b8787611aec565b6110158989611b28565b61108683838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8b0181900481028201810190925289815292508991508890819084018382808284375f92019190915250611b6292505050565b61015f80546001600160a01b0319166001600160a01b03891617905561016086905580156110ed575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b61110061182e565b606580546001600160a01b0383166001600160a01b031990911681179091556111316033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f6001600160e01b031982166380ac58cd60e01b148061119957506001600160e01b03198216635b5e139f60e01b145b806106e257506301ffc9a760e01b6001600160e01b03198316146106e2565b5f81815261012f60205260409020546001600160a01b03166109c15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610812565b5f8181526101316020526040902080546001600160a01b0319166001600160a01b038416908117909155819061124c82610d30565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f8061129083610d30565b9050806001600160a01b0316846001600160a01b031614806112d757506001600160a01b038082165f908152610132602090815260408083209388168352929052205460ff165b806112fb5750836001600160a01b03166112f084610779565b6001600160a01b0316145b949350505050565b826001600160a01b031661131682610d30565b6001600160a01b03161461133c5760405162461bcd60e51b815260040161081290612b4a565b6001600160a01b03821661139e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610812565b6113ab8383836001611b92565b826001600160a01b03166113be82610d30565b6001600160a01b0316146113e45760405162461bcd60e51b815260040161081290612b4a565b5f8181526101316020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652610130855283862080545f190190559087168086528386208054600101905586865261012f90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5f61147f46611bd2565b156114aa57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020612ebc833981519152546001600160a01b031690565b6109c161182e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561150a576108b383611bff565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611564575060408051601f3d908101601f1916820190925261156191810190612b8f565b60015b6115c75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610812565b5f80516020612ebc83398151915281146116355760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610812565b506108b3838383611c9a565b5f61164c8484611cbe565b90508115801561166357506001600160a01b038116155b156109d357604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610812565b6116a760c954610100900460ff1660021490565b6116c45760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610bc661182e565b61173446611bd2565b1561175f57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b610bc6828260405180602001604052805f815250611d60565b5f61179682610d30565b90506117a5815f846001611b92565b6117ae82610d30565b5f8381526101316020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552610130845282852080545f1901905587855261012f909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6033546001600160a01b031633146109ec5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610812565b606580546001600160a01b03191690556109c181611d92565b6118b560c954610100900460ff1660021490565b156118d35760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001611719565b816001600160a01b0316836001600160a01b0316036119735760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610812565b6001600160a01b038381165f8181526101326020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6119eb848484611303565b6119f784848484611de3565b610f175760405162461bcd60e51b815260040161081290612ba6565b60605f611a1f83611ee0565b60010190505f816001600160401b03811115611a3d57611a3d612766565b6040519080825280601f01601f191660200182016040528015611a67576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611a7157509392505050565b6060611ab8846001600160a01b03166014611fb7565b611ac184611a13565b83604051602001611ad493929190612bf8565b60405160208183030381529060405290509392505050565b6001600160a01b0382161580611b00575080155b80611b0a57504681145b15610bc65760405163c118d2f360e01b815260040160405180910390fd5b806001600160a01b038116611b505760405163538ba4f960e01b815260040160405180910390fd5b611b598361214c565b6108b3826121aa565b5f54610100900460ff16611b885760405162461bcd60e51b815260040161081290612c7c565b610bc6828261221a565b611ba660c954610100900460ff1660021490565b15611bc45760405163bae6e2a960e01b815260040160405180910390fd5b611bcd8361225b565b610f17565b5f6001821480611be3575061426882145b80611bf0575062aa36a782145b806106e257506106e282612284565b6001600160a01b0381163b611c6c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610812565b5f80516020612ebc83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611ca38361229b565b5f82511180611caf5750805b156108b357610f1783836122da565b6097545f906001600160a01b031680611cea57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015611d3c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fb9190612cc7565b611d6a83836122ff565b611d765f848484611de3565b6108b35760405162461bcd60e51b815260040161081290612ba6565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6001600160a01b0384163b15611ed557604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611e26903390899088908890600401612ce2565b6020604051808303815f875af1925050508015611e60575060408051601f3d908101601f19168201909252611e5d91810190612d14565b60015b611ebb573d808015611e8d576040519150601f19603f3d011682016040523d82523d5f602084013e611e92565b606091505b5080515f03611eb35760405162461bcd60e51b815260040161081290612ba6565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506112fb565b506001949350505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611f1e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611f4a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611f6857662386f26fc10000830492506010015b6305f5e1008310611f80576305f5e100830492506008015b6127108310611f9457612710830492506004015b60648310611fa6576064830492506002015b600a83106106e25760010192915050565b60605f611fc5836002612d43565b611fd0906002612d5a565b6001600160401b03811115611fe757611fe7612766565b6040519080825280601f01601f191660200182016040528015612011576020820181803683370190505b509050600360fc1b815f8151811061202b5761202b612d6d565b60200101906001600160f81b03191690815f1a905350600f60fb1b8160018151811061205957612059612d6d565b60200101906001600160f81b03191690815f1a9053505f61207b846002612d43565b612086906001612d5a565b90505b60018111156120fd576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106120ba576120ba612d6d565b1a60f81b8282815181106120d0576120d0612d6d565b60200101906001600160f81b03191690815f1a90535060049490941c936120f681612d81565b9050612089565b5083156109d35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610812565b5f54610100900460ff166121725760405162461bcd60e51b815260040161081290612c7c565b61217a612498565b6121986001600160a01b038216156121925781611888565b33611888565b5060c9805461ff001916610100179055565b5f54610100900460ff166121d05760405162461bcd60e51b815260040161081290612c7c565b6001600160401b034611156121f85760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f54610100900460ff166122405760405162461bcd60e51b815260040161081290612c7c565b61012d61224d8382612de1565b5061012e6108b38282612de1565b306001600160a01b038216036109c157604051630c292c9d60e21b815260040160405180910390fd5b5f617e2c82101580156106e2575050617e90101590565b6122a481611bff565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606109d38383604051806060016040528060278152602001612edc602791396124be565b6001600160a01b0382166123555760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610812565b5f81815261012f60205260409020546001600160a01b0316156123ba5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610812565b6123c75f83836001611b92565b5f81815261012f60205260409020546001600160a01b03161561242c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610812565b6001600160a01b0382165f818152610130602090815260408083208054600101905584835261012f90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f54610100900460ff166109ec5760405162461bcd60e51b815260040161081290612c7c565b60605f80856001600160a01b0316856040516124da9190612ea0565b5f60405180830381855af49150503d805f8114612512576040519150601f19603f3d011682016040523d82523d5f602084013e612517565b606091505b509150915061252886838387612532565b9695505050505050565b606083156125a05782515f03612599576001600160a01b0385163b6125995760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610812565b50816112fb565b6112fb83838151156125b55781518083602001fd5b8060405162461bcd60e51b8152600401610812919061264c565b6001600160e01b0319811681146109c1575f80fd5b5f602082840312156125f4575f80fd5b81356109d3816125cf565b5f5b83811015612619578181015183820152602001612601565b50505f910152565b5f81518084526126388160208601602086016125ff565b601f01601f19169290920160200192915050565b602081525f6109d36020830184612621565b5f6020828403121561266e575f80fd5b5035919050565b6001600160a01b03811681146109c1575f80fd5b5f806040838503121561269a575f80fd5b82356126a581612675565b946020939093013593505050565b5f805f606084860312156126c5575f80fd5b83356126d081612675565b925060208401356126e081612675565b929592945050506040919091013590565b5f60208284031215612701575f80fd5b81356109d381612675565b8035801515811461271b575f80fd5b919050565b5f805f60608486031215612732575f80fd5b83356001600160401b0381168114612748575f80fd5b92506020840135915061275d6040850161270c565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112612789575f80fd5b81356001600160401b03808211156127a3576127a3612766565b604051601f8301601f19908116603f011681019082821181831017156127cb576127cb612766565b816040528381528660208588010111156127e3575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f8060408385031215612813575f80fd5b823561281e81612675565b915060208301356001600160401b03811115612838575f80fd5b6128448582860161277a565b9150509250929050565b5f806040838503121561285f575f80fd5b823561286a81612675565b91506128786020840161270c565b90509250929050565b5f8060408385031215612892575f80fd5b823591506128786020840161270c565b5f805f80608085870312156128b5575f80fd5b84356128c081612675565b935060208501356128d081612675565b92506040850135915060608501356001600160401b038111156128f1575f80fd5b6128fd8782880161277a565b91505092959194509250565b5f806040838503121561291a575f80fd5b823561292581612675565b9150602083013561293581612675565b809150509250929050565b5f8083601f840112612950575f80fd5b5081356001600160401b03811115612966575f80fd5b60208301915083602082850101111561297d575f80fd5b9250929050565b5f805f805f805f8060c0898b03121561299b575f80fd5b88356129a681612675565b975060208901356129b681612675565b965060408901356129c681612675565b95506060890135945060808901356001600160401b03808211156129e8575f80fd5b6129f48c838d01612940565b909650945060a08b0135915080821115612a0c575f80fd5b50612a198b828c01612940565b999c989b5096995094979396929594505050565b600181811c90821680612a4157607f821691505b602082108103612a5f57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b5f60208284031215612b9f575f80fd5b5051919050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6832ba3432b932bab69d60b91b81525f8451612c1b8160098501602089016125ff565b600160fe1b6009918401918201528451612c3c81600a8401602089016125ff565b712f746f6b656e5552493f75696e743235363d60701b600a92909101918201528351612c6f81601c8401602088016125ff565b01601c0195945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215612cd7575f80fd5b81516109d381612675565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061252890830184612621565b5f60208284031215612d24575f80fd5b81516109d3816125cf565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106e2576106e2612d2f565b808201808211156106e2576106e2612d2f565b634e487b7160e01b5f52603260045260245ffd5b5f81612d8f57612d8f612d2f565b505f190190565b601f8211156108b357805f5260205f20601f840160051c81016020851015612dbb5750805b601f840160051c820191505b81811015612dda575f8155600101612dc7565b5050505050565b81516001600160401b03811115612dfa57612dfa612766565b612e0e81612e088454612a2d565b84612d96565b602080601f831160018114612e41575f8415612e2a5750858301515b5f19600386901b1c1916600185901b178555612e98565b5f85815260208120601f198616915b82811015612e6f57888601518255948401946001909101908401612e50565b5085821015612e8c57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f8251612eb18184602087016125ff565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207efdc6b34dd83efaffc9eb721f19569d0d8ca99f9dde7e69a857b512dc30653464736f6c63430008180033", + "balance": "0x0" + }, + "0x0167001000000000000000000000000000010098": { + "contractName": "BridgedERC1155", + "storage": {}, + "code": "0x6080604052600436106101e5575f3560e01c8063715018a611610108578063a86f9d9e1161009d578063e30c39781161006d578063e30c39781461056f578063e985e9c51461058c578063ef8c4ae6146105d4578063f242432a146105f3578063f2fde38b14610612575f80fd5b8063a86f9d9e146104d5578063b390c0ab146104f4578063d81d0a1514610513578063e07baba614610532575f80fd5b80638abf6077116100d85780638abf6077146104715780638da5cb5b1461048557806395d89b41146104a2578063a22cb465146104b6575f80fd5b8063715018a61461041557806379ba5097146104295780637cf8ed0d1461043d5780638456cb591461045d575f80fd5b80633ab76e9f1161017e5780634e1273f41161014e5780634e1273f4146103a25780634f1ef286146103ce57806352d1902d146103e15780635c975abb146103f5575f80fd5b80633ab76e9f146103225780633eb6b8cf146103595780633f4ba83a1461037857806349d126051461038c575f80fd5b806326afaadd116101b957806326afaadd1461028a5780632eb2c2d6146102ce5780633075db56146102ef5780633659cfe614610303575f80fd5b8062fdd58e146101e957806301ffc9a71461021b57806306fdde031461024a5780630e89341c1461026b575b5f80fd5b3480156101f4575f80fd5b50610208610203366004612757565b610631565b6040519081526020015b60405180910390f35b348015610226575f80fd5b5061023a610235366004612796565b6106cb565b6040519015158152602001610212565b348015610255575f80fd5b5061025e61070a565b60405161021291906127fe565b348015610276575f80fd5b5061025e610285366004612810565b610797565b348015610295575f80fd5b506102af61015f54610160546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610212565b3480156102d9575f80fd5b506102ed6102e836600461296b565b61082a565b005b3480156102fa575f80fd5b5061023a610876565b34801561030e575f80fd5b506102ed61031d366004612a11565b61088a565b34801561032d575f80fd5b50609754610341906001600160a01b031681565b6040516001600160a01b039091168152602001610212565b348015610364575f80fd5b50610341610373366004612a40565b610951565b348015610383575f80fd5b506102ed610967565b348015610397575f80fd5b506102086101605481565b3480156103ad575f80fd5b506103c16103bc366004612a86565b61097b565b6040516102129190612b86565b6102ed6103dc366004612b98565b610a9a565b3480156103ec575f80fd5b50610208610b53565b348015610400575f80fd5b5061023a60c954610100900460ff1660021490565b348015610420575f80fd5b506102ed610c05565b348015610434575f80fd5b506102ed610c16565b348015610448575f80fd5b5061015f54610341906001600160a01b031681565b348015610468575f80fd5b506102ed610c8d565b34801561047c575f80fd5b50610341610ca0565b348015610490575f80fd5b506033546001600160a01b0316610341565b3480156104ad575f80fd5b5061025e610cae565b3480156104c1575f80fd5b506102ed6104d0366004612bda565b610cbc565b3480156104e0575f80fd5b506103416104ef366004612c0d565b610cc7565b3480156104ff575f80fd5b506102ed61050e366004612c2e565b610cd3565b34801561051e575f80fd5b506102ed61052d366004612c95565b610da1565b34801561053d575f80fd5b5060c954610557906201000090046001600160401b031681565b6040516001600160401b039091168152602001610212565b34801561057a575f80fd5b506065546001600160a01b0316610341565b348015610597575f80fd5b5061023a6105a6366004612d11565b6001600160a01b039182165f90815261012e6020908152604080832093909416825291909152205460ff1690565b3480156105df575f80fd5b506102ed6105ee366004612d85565b610ee1565b3480156105fe575f80fd5b506102ed61060d366004612e2e565b611061565b34801561061d575f80fd5b506102ed61062c366004612a11565b6110a6565b5f6001600160a01b0383166106a05760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b505f81815261012d602090815260408083206001600160a01b03861684529091529020545b92915050565b5f6001600160e01b03198216634d22606360e01b14806106fb57506001600160e01b031982166377c6257360e11b145b806106c557506106c582611117565b610162805461071890612e91565b80601f016020809104026020016040519081016040528092919081815260200182805461074490612e91565b801561078f5780601f106107665761010080835404028352916020019161078f565b820191905f5260205f20905b81548152906001019060200180831161077257829003601f168201915b505050505081565b606061012f80546107a790612e91565b80601f01602080910402602001604051908101604052809291908181526020018280546107d390612e91565b801561081e5780601f106107f55761010080835404028352916020019161081e565b820191905f5260205f20905b81548152906001019060200180831161080157829003601f168201915b50505050509050919050565b6001600160a01b038516331480610846575061084685336105a6565b6108625760405162461bcd60e51b815260040161069790612ec9565b61086f8585858585611166565b5050505050565b5f6002610881611301565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000100981630036108d25760405162461bcd60e51b815260040161069790612f17565b7f00000000000000000000000001670010000000000000000000000000000100986001600160a01b0316610904611340565b6001600160a01b03161461092a5760405162461bcd60e51b815260040161069790612f63565b6109338161135b565b604080515f8082526020820190925261094e91839190611363565b50565b5f61095d8484846114cd565b90505b9392505050565b61096f61151f565b610979335f6115af565b565b606081518351146109e05760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610697565b5f83516001600160401b038111156109fa576109fa612827565b604051908082528060200260200182016040528015610a23578160200160208202803683370190505b5090505f5b8451811015610a9257610a6d858281518110610a4657610a46612faf565b6020026020010151858381518110610a6057610a60612faf565b6020026020010151610631565b828281518110610a7f57610a7f612faf565b6020908102919091010152600101610a28565b509392505050565b6001600160a01b037f0000000000000000000000000167001000000000000000000000000000010098163003610ae25760405162461bcd60e51b815260040161069790612f17565b7f00000000000000000000000001670010000000000000000000000000000100986001600160a01b0316610b14611340565b6001600160a01b031614610b3a5760405162461bcd60e51b815260040161069790612f63565b610b438261135b565b610b4f82826001611363565b5050565b5f306001600160a01b037f00000000000000000000000001670010000000000000000000000000000100981614610bf25760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610697565b505f805160206135938339815191525b90565b610c0d6115b3565b6109795f61160d565b60655433906001600160a01b03168114610c845760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610697565b61094e8161160d565b610c95611626565b6109793360016115af565b5f610ca9611340565b905090565b610161805461071890612e91565b610b4f338383611697565b5f6109604684846114cd565b610ce760c954610100900460ff1660021490565b15610d055760405163bae6e2a960e01b815260040160405180910390fd5b6c195c98cc4c4d4d57dd985d5b1d609a1b610d21816001610cc7565b6001600160a01b0316336001600160a01b031614610d5257604051630d85cccf60e11b815260040160405180910390fd5b6002610d5c611301565b60ff1603610d7d5760405163dfc60d8560e01b815260040160405180910390fd5b610d876002611777565b610d923384846117bf565b610d9c6001611777565b505050565b610db560c954610100900460ff1660021490565b15610dd35760405163bae6e2a960e01b815260040160405180910390fd5b6c195c98cc4c4d4d57dd985d5b1d609a1b610def816001610cc7565b6001600160a01b0316336001600160a01b031614610e2057604051630d85cccf60e11b815260040160405180910390fd5b6002610e2a611301565b60ff1603610e4b5760405163dfc60d8560e01b815260040160405180910390fd5b610e556002611777565b610ecf868686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050604080516020808a028281018201909352898252909350899250889182918501908490808284375f92018290525060408051602081019091529081529250611953915050565b610ed96001611777565b505050505050565b5f54610100900460ff1615808015610eff57505f54600160ff909116105b80610f185750303b158015610f1857505f5460ff166001145b610f7b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610697565b5f805460ff191660011790558015610f9c575f805461ff0019166101001790555b610fa68787611ad5565b610fb08989611b11565b610fd1610fcc888860405180602001604052805f815250611b4b565b611b95565b61015f80546001600160a01b0319166001600160a01b038916179055610160869055610161611001858783613007565b50610162611010838583613007565b508015611056575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6001600160a01b03851633148061107d575061107d85336105a6565b6110995760405162461bcd60e51b815260040161069790612ec9565b61086f8585858585611bc4565b6110ae6115b3565b606580546001600160a01b0383166001600160a01b031990911681179091556110df6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f6001600160e01b03198216636cdb3d1360e11b148061114757506001600160e01b031982166303a24d0760e21b145b806106c557506301ffc9a760e01b6001600160e01b03198316146106c5565b81518351146111875760405162461bcd60e51b8152600401610697906130c0565b6001600160a01b0384166111ad5760405162461bcd60e51b815260040161069790613108565b336111bc818787878787611cf3565b5f5b845181101561129b575f8582815181106111da576111da612faf565b602002602001015190505f8583815181106111f7576111f7612faf565b6020908102919091018101515f84815261012d835260408082206001600160a01b038e1683529093529190912054909150818110156112485760405162461bcd60e51b81526004016106979061314d565b5f83815261012d602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906112879084906131ab565b9091555050600190930192506111be915050565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516112eb9291906131be565b60405180910390a4610ed9818787878787611d33565b5f61130b46611e8d565b1561133657507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020613593833981519152546001600160a01b031690565b61094e6115b3565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561139657610d9c83611eba565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156113f0575060408051601f3d908101601f191682019092526113ed918101906131eb565b60015b6114535760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610697565b5f8051602061359383398151915281146114c15760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610697565b50610d9c838383611f55565b5f6114d88484611f7f565b9050811580156114ef57506001600160a01b038116155b1561096057604051632b0d65db60e01b81526001600160401b038516600482015260248101849052604401610697565b61153360c954610100900460ff1660021490565b6115505760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610b4f5b6033546001600160a01b031633146109795760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610697565b606580546001600160a01b031916905561094e81612029565b61163a60c954610100900460ff1660021490565b156116585760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016115a5565b816001600160a01b0316836001600160a01b03160361170a5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610697565b6001600160a01b038381165f81815261012e6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61178046611e8d565b156117ab57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6001600160a01b0383166118215760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610697565b335f61182c8461207a565b90505f6118388461207a565b905061185683875f858560405180602001604052805f815250611cf3565b5f85815261012d602090815260408083206001600160a01b038a168452909152902054848110156118d55760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610697565b5f86815261012d602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a460408051602081019091525f90525b50505050505050565b6001600160a01b0384166119b35760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610697565b81518351146119d45760405162461bcd60e51b8152600401610697906130c0565b336119e3815f87878787611cf3565b5f5b8451811015611a6f57838181518110611a0057611a00612faf565b602002602001015161012d5f878481518110611a1e57611a1e612faf565b602002602001015181526020019081526020015f205f886001600160a01b03166001600160a01b031681526020019081526020015f205f828254611a6291906131ab565b90915550506001016119e5565b50846001600160a01b03165f6001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611abf9291906131be565b60405180910390a461086f815f87878787611d33565b6001600160a01b0382161580611ae9575080155b80611af357504681145b15610b4f5760405163c118d2f360e01b815260040160405180910390fd5b806001600160a01b038116611b395760405163538ba4f960e01b815260040160405180910390fd5b611b42836120c3565b610d9c82612121565b6060611b61846001600160a01b03166014612191565b611b6a84612326565b83604051602001611b7d93929190613202565b60405160208183030381529060405290509392505050565b5f54610100900460ff16611bbb5760405162461bcd60e51b815260040161069790613286565b61094e816123b5565b6001600160a01b038416611bea5760405162461bcd60e51b815260040161069790613108565b335f611bf58561207a565b90505f611c018561207a565b9050611c11838989858589611cf3565b5f86815261012d602090815260408083206001600160a01b038c16845290915290205485811015611c545760405162461bcd60e51b81526004016106979061314d565b5f87815261012d602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290611c939084906131ab565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611056848a8a8a8a8a6123e4565b611d0760c954610100900460ff1660021490565b15611d255760405163bae6e2a960e01b815260040160405180910390fd5b611d2e8461249e565b610ed9565b6001600160a01b0384163b15610ed95760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611d7790899089908890889088906004016132d1565b6020604051808303815f875af1925050508015611db1575060408051601f3d908101601f19168201909252611dae9181019061332e565b60015b611e5d57611dbd613349565b806308c379a003611df65750611dd1613361565b80611ddc5750611df8565b8060405162461bcd60e51b815260040161069791906127fe565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610697565b6001600160e01b0319811663bc197c8160e01b1461194a5760405162461bcd60e51b8152600401610697906133e9565b5f6001821480611e9e575061426882145b80611eab575062aa36a782145b806106c557506106c5826124c7565b6001600160a01b0381163b611f275760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610697565b5f8051602061359383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611f5e836124de565b5f82511180611f6a5750805b15610d9c57611f79838361251d565b50505050565b6097545f906001600160a01b031680611fab57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015611ffd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120219190613431565b949350505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160018082528183019092526060915f91906020808301908036833701905050905082815f815181106120b2576120b2612faf565b602090810291909101015292915050565b5f54610100900460ff166120e95760405162461bcd60e51b815260040161069790613286565b6120f1612542565b61210f6001600160a01b03821615612109578161160d565b3361160d565b5060c9805461ff001916610100179055565b5f54610100900460ff166121475760405162461bcd60e51b815260040161069790613286565b6001600160401b0346111561216f5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b60605f61219f83600261344c565b6121aa9060026131ab565b6001600160401b038111156121c1576121c1612827565b6040519080825280601f01601f1916602001820160405280156121eb576020820181803683370190505b509050600360fc1b815f8151811061220557612205612faf565b60200101906001600160f81b03191690815f1a905350600f60fb1b8160018151811061223357612233612faf565b60200101906001600160f81b03191690815f1a9053505f61225584600261344c565b6122609060016131ab565b90505b60018111156122d7576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061229457612294612faf565b1a60f81b8282815181106122aa576122aa612faf565b60200101906001600160f81b03191690815f1a90535060049490941c936122d081613463565b9050612263565b5083156109605760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610697565b60605f61233283612568565b60010190505f816001600160401b0381111561235057612350612827565b6040519080825280601f01601f19166020018201604052801561237a576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461238457509392505050565b5f54610100900460ff166123db5760405162461bcd60e51b815260040161069790613286565b61094e8161263f565b6001600160a01b0384163b15610ed95760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906124289089908990889088908890600401613478565b6020604051808303815f875af1925050508015612462575060408051601f3d908101601f1916820190925261245f9181019061332e565b60015b61246e57611dbd613349565b6001600160e01b0319811663f23a6e6160e01b1461194a5760405162461bcd60e51b8152600401610697906133e9565b306001600160a01b0382160361094e57604051630c292c9d60e21b815260040160405180910390fd5b5f617e2c82101580156106c5575050617e90101590565b6124e781611eba565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061096083836040518060600160405280602781526020016135b36027913961264c565b5f54610100900460ff166109795760405162461bcd60e51b815260040161069790613286565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106125a65772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106125d2576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106125f057662386f26fc10000830492506010015b6305f5e1008310612608576305f5e100830492506008015b612710831061261c57612710830492506004015b6064831061262e576064830492506002015b600a83106106c55760010192915050565b61012f610b4f82826134bc565b60605f80856001600160a01b0316856040516126689190613577565b5f60405180830381855af49150503d805f81146126a0576040519150601f19603f3d011682016040523d82523d5f602084013e6126a5565b606091505b50915091506126b6868383876126c0565b9695505050505050565b6060831561272e5782515f03612727576001600160a01b0385163b6127275760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610697565b5081612021565b6120218383815115611ddc5781518083602001fd5b6001600160a01b038116811461094e575f80fd5b5f8060408385031215612768575f80fd5b823561277381612743565b946020939093013593505050565b6001600160e01b03198116811461094e575f80fd5b5f602082840312156127a6575f80fd5b813561096081612781565b5f5b838110156127cb5781810151838201526020016127b3565b50505f910152565b5f81518084526127ea8160208601602086016127b1565b601f01601f19169290920160200192915050565b602081525f61096060208301846127d3565b5f60208284031215612820575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f191681016001600160401b038111828210171561286057612860612827565b6040525050565b5f6001600160401b0382111561287f5761287f612827565b5060051b60200190565b5f82601f830112612898575f80fd5b813560206128a582612867565b6040516128b2828261283b565b80915083815260208101915060208460051b8701019350868411156128d5575f80fd5b602086015b848110156128f157803583529183019183016128da565b509695505050505050565b5f82601f83011261290b575f80fd5b81356001600160401b0381111561292457612924612827565b60405161293b601f8301601f19166020018261283b565b81815284602083860101111561294f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a0868803121561297f575f80fd5b853561298a81612743565b9450602086013561299a81612743565b935060408601356001600160401b03808211156129b5575f80fd5b6129c189838a01612889565b945060608801359150808211156129d6575f80fd5b6129e289838a01612889565b935060808801359150808211156129f7575f80fd5b50612a04888289016128fc565b9150509295509295909350565b5f60208284031215612a21575f80fd5b813561096081612743565b80358015158114612a3b575f80fd5b919050565b5f805f60608486031215612a52575f80fd5b83356001600160401b0381168114612a68575f80fd5b925060208401359150612a7d60408501612a2c565b90509250925092565b5f8060408385031215612a97575f80fd5b82356001600160401b0380821115612aad575f80fd5b818501915085601f830112612ac0575f80fd5b81356020612acd82612867565b604051612ada828261283b565b83815260059390931b8501820192828101915089841115612af9575f80fd5b948201945b83861015612b20578535612b1181612743565b82529482019490820190612afe565b96505086013592505080821115612b35575f80fd5b50612b4285828601612889565b9150509250929050565b5f815180845260208085019450602084015f5b83811015612b7b57815187529582019590820190600101612b5f565b509495945050505050565b602081525f6109606020830184612b4c565b5f8060408385031215612ba9575f80fd5b8235612bb481612743565b915060208301356001600160401b03811115612bce575f80fd5b612b42858286016128fc565b5f8060408385031215612beb575f80fd5b8235612bf681612743565b9150612c0460208401612a2c565b90509250929050565b5f8060408385031215612c1e575f80fd5b82359150612c0460208401612a2c565b5f8060408385031215612c3f575f80fd5b50508035926020909101359150565b5f8083601f840112612c5e575f80fd5b5081356001600160401b03811115612c74575f80fd5b6020830191508360208260051b8501011115612c8e575f80fd5b9250929050565b5f805f805f60608688031215612ca9575f80fd5b8535612cb481612743565b945060208601356001600160401b0380821115612ccf575f80fd5b612cdb89838a01612c4e565b90965094506040880135915080821115612cf3575f80fd5b50612d0088828901612c4e565b969995985093965092949392505050565b5f8060408385031215612d22575f80fd5b8235612d2d81612743565b91506020830135612d3d81612743565b809150509250929050565b5f8083601f840112612d58575f80fd5b5081356001600160401b03811115612d6e575f80fd5b602083019150836020828501011115612c8e575f80fd5b5f805f805f805f8060c0898b031215612d9c575f80fd5b8835612da781612743565b97506020890135612db781612743565b96506040890135612dc781612743565b95506060890135945060808901356001600160401b0380821115612de9575f80fd5b612df58c838d01612d48565b909650945060a08b0135915080821115612e0d575f80fd5b50612e1a8b828c01612d48565b999c989b5096995094979396929594505050565b5f805f805f60a08688031215612e42575f80fd5b8535612e4d81612743565b94506020860135612e5d81612743565b9350604086013592506060860135915060808601356001600160401b03811115612e85575f80fd5b612a04888289016128fc565b600181811c90821680612ea557607f821691505b602082108103612ec357634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b601f821115610d9c57805f5260205f20601f840160051c81016020851015612fe85750805b601f840160051c820191505b8181101561086f575f8155600101612ff4565b6001600160401b0383111561301e5761301e612827565b6130328361302c8354612e91565b83612fc3565b5f601f841160018114613063575f851561304c5750838201355b5f19600387901b1c1916600186901b17835561086f565b5f83815260208120601f198716915b828110156130925786850135825560209485019460019092019101613072565b50868210156130ae575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106c5576106c5613197565b604081525f6131d06040830185612b4c565b82810360208401526131e28185612b4c565b95945050505050565b5f602082840312156131fb575f80fd5b5051919050565b6832ba3432b932bab69d60b91b81525f84516132258160098501602089016127b1565b600160fe1b600991840191820152845161324681600a8401602089016127b1565b712f746f6b656e5552493f75696e743235363d60701b600a9290910191820152835161327981601c8401602088016127b1565b01601c0195945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0386811682528516602082015260a0604082018190525f906132fc90830186612b4c565b828103606084015261330e8186612b4c565b9050828103608084015261332281856127d3565b98975050505050505050565b5f6020828403121561333e575f80fd5b815161096081612781565b5f60033d1115610c025760045f803e505f5160e01c90565b5f60443d101561336e5790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561339d57505050505090565b82850191508151818111156133b55750505050505090565b843d87010160208285010111156133cf5750505050505090565b6133de6020828601018761283b565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b5f60208284031215613441575f80fd5b815161096081612743565b80820281158282048414176106c5576106c5613197565b5f8161347157613471613197565b505f190190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f906134b1908301846127d3565b979650505050505050565b81516001600160401b038111156134d5576134d5612827565b6134e9816134e38454612e91565b84612fc3565b602080601f83116001811461351c575f84156135055750858301515b5f19600386901b1c1916600185901b178555610ed9565b5f85815260208120601f198616915b8281101561354a5788860151825594840194600190910190840161352b565b508582101561356757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f82516135888184602087016127b1565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207df1a30421416503e9d43ee209d6ed960c51dbeb354ca0a6ca458ce1489d8eef64736f6c63430008180033", + "balance": "0x0" + }, + "0x0167001000000000000000000000000000000005": { + "contractName": "SignalServiceImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74" + }, + "code": "0x6080604052600436106101c5575f3560e01c806379ba5097116100f2578063a86f9d9e11610092578063e30c397811610062578063e30c39781461052f578063f09a40161461054c578063f2fde38b1461056b578063fe9fbb801461058a575f80fd5b8063a86f9d9e1461048e578063ce9d0820146104ad578063dfc8ff1d146104cc578063e07baba61461050a575f80fd5b80638da5cb5b116100cd5780638da5cb5b14610414578063910af6ed1461043157806391f3f74b146104505780639b527cfa1461046f575f80fd5b806379ba5097146103d85780638456cb59146103ec5780638abf607714610400575f80fd5b80633eb6b8cf1161016857806352d1902d1161013857806352d1902d146103715780635c975abb1461038557806366ca2bc0146103a5578063715018a6146103c4575f80fd5b80633eb6b8cf146102fe5780633f4ba83a1461031d5780634f1ef286146103315780634f90a67414610344575f80fd5b8063355bcc3d116101a3578063355bcc3d146102325780633659cfe6146102895780633ab76e9f146102a85780633ced0e08146102df575f80fd5b80632d1fb389146101c95780633075db56146101ea57806332676bc614610213575b5f80fd5b3480156101d4575f80fd5b506101e86101e33660046135d5565b6105b8565b005b3480156101f5575f80fd5b506101fe61065e565b60405190151581526020015b60405180910390f35b34801561021e575f80fd5b506101fe61022d366004613608565b610672565b34801561023d575f80fd5b5061027161024c366004613648565b60fb60209081525f92835260408084209091529082529020546001600160401b031681565b6040516001600160401b03909116815260200161020a565b348015610294575f80fd5b506101e86102a3366004613662565b610688565b3480156102b3575f80fd5b506097546102c7906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b3480156102ea575f80fd5b506101fe6102f936600461367d565b610758565b348015610309575f80fd5b506102c76103183660046136be565b61079f565b348015610328575f80fd5b506101e86107b5565b6101e861033f3660046137ce565b6107c9565b34801561034f575f80fd5b5061036361035e36600461367d565b610882565b60405190815260200161020a565b34801561037c575f80fd5b506103636108c8565b348015610390575f80fd5b506101fe60c954610100900460ff1660021490565b3480156103b0575f80fd5b506103636103bf36600461381a565b610979565b3480156103cf575f80fd5b506101e8610985565b3480156103e3575f80fd5b506101e8610996565b3480156103f7575f80fd5b506101e8610a0d565b34801561040b575f80fd5b506102c7610a20565b34801561041f575f80fd5b506033546001600160a01b03166102c7565b34801561043c575f80fd5b5061036361044b366004613831565b610a2e565b34801561045b575f80fd5b5061036361046a3660046138c5565b610afe565b34801561047a575f80fd5b50610363610489366004613901565b610b69565b348015610499575f80fd5b506102c76104a8366004613931565b610b95565b3480156104b8575f80fd5b506101e86104c7366004613831565b610ba1565b3480156104d7575f80fd5b506104eb6104e6366004613901565b610bb7565b604080516001600160401b03909316835260208301919091520161020a565b348015610515575f80fd5b5060c954610271906201000090046001600160401b031681565b34801561053a575f80fd5b506065546001600160a01b03166102c7565b348015610557575f80fd5b506101e8610566366004613952565b610c4b565b348015610576575f80fd5b506101e8610585366004613662565b610d5a565b348015610595575f80fd5b506101fe6105a4366004613662565b60fc6020525f908152604090205460ff1681565b6105c0610dcb565b6001600160a01b0382165f90815260fc602052604090205481151560ff909116151503610600576040516398f26f4560e01b815260040160405180910390fd5b6001600160a01b0382165f81815260fc6020908152604091829020805460ff191685151590811790915591519182527f4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf910160405180910390a25050565b5f6002610669610e25565b60ff1614905090565b5f61067d8383610e64565b151590505b92915050565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000000051630036106d95760405162461bcd60e51b81526004016106d090613989565b60405180910390fd5b7f00000000000000000000000001670010000000000000000000000000000000056001600160a01b031661070b610ec6565b6001600160a01b0316146107315760405162461bcd60e51b81526004016106d0906139d5565b61073a81610ee1565b604080515f8082526020820190925261075591839190610ee9565b50565b5f8180820361077a5760405163ec73295960e01b815260040160405180910390fd5b5f610786878787610b69565b9050836107933083610e64565b14979650505050505050565b5f6107ab848484611053565b90505b9392505050565b6107bd6110a5565b6107c7335f611135565b565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000000051630036108115760405162461bcd60e51b81526004016106d090613989565b7f00000000000000000000000001670010000000000000000000000000000000056001600160a01b0316610843610ec6565b6001600160a01b0316146108695760405162461bcd60e51b81526004016106d0906139d5565b61087282610ee1565b61087e82826001610ee9565b5050565b335f90815260fc602052604081205460ff166108b157604051631f67751f60e01b815260040160405180910390fd5b6108bd8585858561114e565b90505b949350505050565b5f306001600160a01b037f000000000000000000000000016700100000000000000000000000000000000516146109675760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016106d0565b505f80516020613f5883398151915290565b5f610682338384611230565b61098d610dcb565b6107c75f611309565b60655433906001600160a01b03168114610a045760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016106d0565b61075581611309565b610a15611322565b6107c7336001611135565b5f610a29610ec6565b905090565b5f610a4360c954610100900460ff1660021490565b15610a615760405163bae6e2a960e01b815260040160405180910390fd5b6002610a6b610e25565b60ff1603610a8c5760405163dfc60d8560e01b815260040160405180910390fd5b610a966002611393565b5f610aa6878787878760016113db565b90505f5b8151811015610ae957610ad5828281518110610ac857610ac8613a21565b6020026020010151611897565b610adf9084613a49565b9250600101610aaa565b5050610af56001611393565b95945050505050565b6040516514d251d3905360d21b60208201526001600160c01b031960c085901b1660268201526bffffffffffffffffffffffff19606084901b16602e820152604281018290525f906062015b6040516020818303038152906040528051906020012090509392505050565b604080516001600160401b03808616602083015291810184905290821660608201525f90608001610b4a565b5f6107ae468484611053565b610baf85858585855f6113db565b505050505050565b5f80826001600160401b03165f03610bf3576001600160401b038086165f90815260fb6020908152604080832088845290915290205416610bf5565b825b91506001600160401b03821615610c43575f610c12868685610b69565b9050610c1e3082610e64565b91505f829003610c415760405163738afa0560e01b815260040160405180910390fd5b505b935093915050565b5f54610100900460ff1615808015610c6957505f54600160ff909116105b80610c825750303b158015610c8257505f5460ff166001145b610ce55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106d0565b5f805460ff191660011790558015610d06575f805461ff0019166101001790555b610d1083836119db565b8015610d55575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610d62610dcb565b606580546001600160a01b0383166001600160a01b03199091168117909155610d936033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146107c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d0565b5f610e2f46611a15565b15610e5a57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f826001600160a01b038116610e8d5760405163538ba4f960e01b815260040160405180910390fd5b825f819003610eaf5760405163ec73295960e01b815260040160405180910390fd5b5f610ebb468787610afe565b549695505050505050565b5f80516020613f58833981519152546001600160a01b031690565b610755610dcb565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f1c57610d5583611a42565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f76575060408051601f3d908101601f19168201909252610f7391810190613a5c565b60015b610fd95760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016106d0565b5f80516020613f5883398151915281146110475760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016106d0565b50610d55838383611add565b5f61105e8484611b07565b90508115801561107557506001600160a01b038116155b156107ae57604051632b0d65db60e01b81526001600160401b0385166004820152602481018490526044016106d0565b6110b960c954610100900460ff1660021490565b6110d65760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b604051630c2b8f8f60e11b815260040160405180910390fd5b5f61115a858585610b69565b9050611167308284611230565b506001600160401b038581165f90815260fb60209081526040808320888452909152902054818516911610156111d1576001600160401b038581165f90815260fb602090815260408083208884529091529020805467ffffffffffffffff19169185169190911790555b83836001600160401b0316866001600160401b03167fde247c825b1fb2d7ff9e0e771cba6f9e757ad04479fcdc135d88ae91fd50b37d8585604051611220929190918252602082015260400190565b60405180910390a4949350505050565b5f836001600160a01b0381166112595760405163538ba4f960e01b815260040160405180910390fd5b835f81900361127b5760405163ec73295960e01b815260040160405180910390fd5b835f81900361129d5760405163ec73295960e01b815260040160405180910390fd5b6112a8468888610afe565b858155604080516001600160a01b038a16815260208101899052908101829052606081018790529094507f0ad2d108660a211f47bf7fb43a0443cae181624995d3d42b88ee6879d200e9739060800160405180910390a15050509392505050565b606580546001600160a01b031916905561075581611ba9565b61133660c954610100900460ff1660021490565b156113545760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200161112b565b61139c46611a15565b156113c757807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6060856001600160a01b0381166114055760405163538ba4f960e01b815260040160405180910390fd5b855f8190036114275760405163ec73295960e01b815260040160405180910390fd5b5f61143486880188613b22565b905080515f0361145757604051630b92daef60e21b815260040160405180910390fd5b5f600182516114669190613c60565b6001600160401b0381111561147d5761147d6136f7565b6040519080825280602002602001820160405280156114a6578160200160208202803683370190505b50905085156115395781516001600160401b038111156114c8576114c86136f7565b60405190808252806020026020018201604052801561153557816020015b6115226040805160e0810182525f80825260208201819052918101829052606081018290526080810182905260a081018290529060c082015290565b8152602001906001900390816114e65790505b5094505b8a8a8a805f61155a856d7369676e616c5f7365727669636560901b8361079f565b9050306001600160a01b0382160361158557604051637556223560e11b815260040160405180910390fd5b6115bd6040805160c0810182525f80825260208201819052918101829052906060820190815260200160608152602001606081525090565b5f805f805b8b5181101561184b578b81815181106115dd576115dd613a21565b602002602001015194505f5b8181101561164757855f01516001600160401b03168c828151811061161057611610613a21565b60200260200101516001600160401b03160361163f576040516348362c2760e11b815260040160405180910390fd5b6001016115e9565b506116568a8a8a8a898b611bfa565b93508a518114915081156116965784516001600160401b0316461461168e576040516338bf822760e21b815260040160405180910390fd5b309550611741565b845f01518b82815181106116ac576116ac613a21565b6001600160401b03928316602091820292909201015285511615806116da575084516001600160401b031646145b156116f857604051637556223560e11b815260040160405180910390fd5b8451611716906d7369676e616c5f7365727669636560901b5f61079f565b9550306001600160a01b0387160361174157604051637556223560e11b815260040160405180910390fd5b608085015151151592508f156117d5576040518060e00160405280866040015181526020018581526020018b6001600160401b0316815260200186602001516001600160401b0316815260200184151581526020018315158152602001866060015160038111156117b4576117b4613c73565b8152508f82815181106117c9576117c9613a21565b60200260200101819052505b6118308a84611804577fc6cdc4f2acf13acb10f410085b821f7b7113b303e9a4799023f928317396aaf5611826565b7f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da1695b8760200151610b69565b604086015186519b50969950975094955087946001016115c2565b50851580611862575061185e3088610e64565b8614155b156118805760405163738afa0560e01b815260040160405180910390fd5b505050505050505050505050509695505050505050565b5f8060038360c0015160038111156118b1576118b1613c73565b14806118d2575060028360c0015160038111156118d0576118d0613c73565b145b90508080156118e2575082608001515b80156118f057508260a00151155b15611932576001915061193083604001517f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da1698560600151865f015161114e565b505b5f60038460c00151600381111561194b5761194b613c73565b148061196c575060018460c00151600381111561196a5761196a613c73565b145b9050808015611988575083608001518061198857508360a00151155b156119d457611998600184613a49565b92506119d284604001517fc6cdc4f2acf13acb10f410085b821f7b7113b303e9a4799023f928317396aaf58660600151876020015161114e565b505b5050919050565b806001600160a01b038116611a035760405163538ba4f960e01b815260040160405180910390fd5b611a0c83611c99565b610d5582611cf7565b5f6001821480611a26575061426882145b80611a33575062aa36a782145b80610682575061068282611d67565b6001600160a01b0381163b611aaf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016106d0565b5f80516020613f5883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611ae683611d7e565b5f82511180611af25750805b15610d5557611b018383611dbd565b50505050565b6097545f906001600160a01b031680611b3357604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015611b85573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c09190613c87565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f856001600160a01b038116611c235760405163538ba4f960e01b815260040160405180910390fd5b855f819003611c455760405163ec73295960e01b815260040160405180910390fd5b855f819003611c675760405163ec73295960e01b815260040160405180910390fd5b611c8b866040015186611c7b8d8d8d610afe565b8a8a608001518b60a00151611de2565b9a9950505050505050505050565b5f54610100900460ff16611cbf5760405162461bcd60e51b81526004016106d090613ca2565b611cc7611eef565b611ce56001600160a01b03821615611cdf5781611309565b33611309565b5060c9805461ff001916610100179055565b5f54610100900460ff16611d1d5760405162461bcd60e51b81526004016106d090613ca2565b6001600160401b03461115611d455760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c8210158015610682575050617e90101590565b611d8781611a42565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606107ae8383604051806060016040528060278152602001613f7860279139611f15565b5f82515f14611e8a576040516bffffffffffffffffffffffff19606088901b1660208201525f90611e2690603401604051602081830303815290604052858a611f89565b905080515f03611e4957604051630414cd5b60e31b815260040160405180910390fd5b5f611e5382611fa2565b9050611e7881600281518110611e6b57611e6b613a21565b6020026020010151611fb5565b611e8190613ced565b92505050611e8d565b50855b5f611ec486604051602001611ea491815260200190565b60408051601f19818403018152919052611ebd87612034565b8585612047565b905080611ee457604051638d9a4db360e01b815260040160405180910390fd5b509695505050505050565b5f54610100900460ff166107c75760405162461bcd60e51b81526004016106d090613ca2565b60605f80856001600160a01b031685604051611f319190613d35565b5f60405180830381855af49150503d805f8114611f69576040519150601f19603f3d011682016040523d82523d5f602084013e611f6e565b606091505b5091509150611f7f86838387612060565b9695505050505050565b60605f611f95856120d8565b9050610af581858561210a565b6060610682611fb083612977565b6129c9565b60605f805f611fc385612b47565b919450925090505f816001811115611fdd57611fdd613c73565b14611ffb576040516307fe6cb960e21b815260040160405180910390fd5b6120058284613a49565b85511461202557604051630b8aa6f760e31b815260040160405180910390fd5b610af585602001518484612e2a565b606061068261204283612eba565b612fcd565b5f80612052866120d8565b9050611f7f81868686613025565b606083156120ce5782515f036120c7576001600160a01b0385163b6120c75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106d0565b50816108c0565b6108c0838361304b565b606081805190602001206040516020016120f491815260200190565b6040516020818303038152906040529050919050565b60605f8451116121545760405162461bcd60e51b81526020600482015260156024820152744d65726b6c65547269653a20656d707479206b657960581b60448201526064016106d0565b5f61215e84613075565b90505f61216a86613158565b90505f8460405160200161218091815260200190565b60405160208183030381529060405290505f805b8451811015612920575f8582815181106121b0576121b0613a21565b6020026020010151905084518311156122225760405162461bcd60e51b815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201526d0e8c2d840d6caf240d8cadccee8d60931b60648201526084016106d0565b825f036122c0578051805160209182012060405161226f9261224992910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b6122bb5760405162461bcd60e51b815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f74206861736800000060448201526064016106d0565b6123b6565b80515160201161234657805180516020918201206040516122ea9261224992910190815260200190565b6122bb5760405162461bcd60e51b815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e6044820152660c2d840d0c2e6d60cb1b60648201526084016106d0565b8051845160208087019190912082519190920120146123b65760405162461bcd60e51b815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f646044820152650ca40d0c2e6d60d31b60648201526084016106d0565b6123c260106001613a49565b8160200151510361255a57845183036124f4576123ef8160200151601081518110611e6b57611e6b613a21565b96505f8751116124675760405162461bcd60e51b815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e636829000000000060648201526084016106d0565b600186516124759190613c60565b82146124e95760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e63682900000000000060648201526084016106d0565b5050505050506107ae565b5f85848151811061250757612507613a21565b602001015160f81c60f81b60f81c90505f82602001518260ff168151811061253157612531613a21565b60200260200101519050612544816131b9565b9550612551600186613a49565b94505050612917565b6002816020015151036128be575f612571826131dd565b90505f815f8151811061258657612586613a21565b016020015160f81c90505f61259c600283613d64565b6125a7906002613d85565b90505f6125b7848360ff16613200565b90505f6125c48a89613200565b90505f6125d18383613235565b9050808351146126495760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b657900000000000060648201526084016106d0565b60ff85166002148061265e575060ff85166003145b156127fe57808251146126d95760405162461bcd60e51b815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e64657200000060648201526084016106d0565b6126f38760200151600181518110611e6b57611e6b613a21565b9c505f8d511161276b5760405162461bcd60e51b815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c656166290000000000000060648201526084016106d0565b60018c516127799190613c60565b88146127ed5760405162461bcd60e51b815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c65616629000000000000000060648201526084016106d0565b5050505050505050505050506107ae565b60ff85161580612811575060ff85166001145b156128505761283d876020015160018151811061283057612830613a21565b60200260200101516131b9565b9950612849818a613a49565b98506128b3565b60405162461bcd60e51b815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f64652077697468604482015271040c2dc40eadcd6dcdeeedc40e0e4caccd2f60731b60648201526084016106d0565b505050505050612917565b60405162461bcd60e51b815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e706172736561604482015267626c65206e6f646560c01b60648201526084016106d0565b50600101612194565b5060405162461bcd60e51b815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c656044820152646d656e747360d81b60648201526084016106d0565b604080518082019091525f808252602082015281515f036129ab57604051635ab458fb60e01b815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60605f805f6129d785612b47565b9194509250905060018160018111156129f2576129f2613c73565b14612a10576040516325ce355f60e11b815260040160405180910390fd5b8451612a1c8385613a49565b14612a3a57604051630b8aa6f760e31b815260040160405180910390fd5b604080516020808252610420820190925290816020015b604080518082019091525f8082526020820152815260200190600190039081612a515790505093505f835b8651811015612b3b575f80612ac06040518060400160405280858c5f0151612aa49190613c60565b8152602001858c60200151612ab99190613a49565b9052612b47565b509150915060405180604001604052808383612adc9190613a49565b8152602001848b60200151612af19190613a49565b815250888581518110612b0657612b06613a21565b6020908102919091010152612b1c600185613a49565b9350612b288183613a49565b612b329084613a49565b92505050612a7c565b50845250919392505050565b5f805f835f01515f03612b6d57604051635ab458fb60e01b815260040160405180910390fd5b602084015180515f1a607f8111612b8f575f60015f9450945094505050612e23565b60b78111612c24575f612ba3608083613c60565b905080875f015111612bc8576040516366c9448560e01b815260040160405180910390fd5b6001838101516001600160f81b0319169082148015612bf45750600160ff1b6001600160f81b03198216105b15612c125760405163babb01dd60e01b815260040160405180910390fd5b506001955093505f9250612e23915050565b60bf8111612d02575f612c3860b783613c60565b905080875f015111612c5d576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003612c8d5760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111612cbc5760405163babb01dd60e01b815260040160405180910390fd5b612cc68184613a49565b895111612ce6576040516366c9448560e01b815260040160405180910390fd5b612cf1836001613a49565b975095505f9450612e239350505050565b60f78111612d4c575f612d1660c083613c60565b905080875f015111612d3b576040516366c9448560e01b815260040160405180910390fd5b600195509350849250612e23915050565b5f612d5860f783613c60565b905080875f015111612d7d576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003612dad5760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111612ddc5760405163babb01dd60e01b815260040160405180910390fd5b612de68184613a49565b895111612e06576040516366c9448560e01b815260040160405180910390fd5b612e11836001613a49565b9750955060019450612e239350505050565b9193909250565b6060816001600160401b03811115612e4457612e446136f7565b6040519080825280601f01601f191660200182016040528015612e6e576020820181803683370190505b50905081156107ae575f612e828486613a49565b9050602082015f5b84811015612ea2578281015182820152602001612e8a565b84811115612eb0575f858301525b5050509392505050565b60605f82604051602001612ed091815260200190565b60405160208183030381529060405290505f5b6020811015612f1b57818181518110612efe57612efe613a21565b01602001516001600160f81b0319165f03612f1b57600101612ee3565b612f26816020613c60565b6001600160401b03811115612f3d57612f3d6136f7565b6040519080825280601f01601f191660200182016040528015612f67576020820181803683370190505b5092505f5b83518110156119d2578282612f8081613d9e565b935081518110612f9257612f92613a21565b602001015160f81c60f81b848281518110612faf57612faf613a21565b60200101906001600160f81b03191690815f1a905350600101612f6c565b606081516001148015612ff957506080825f81518110612fef57612fef613a21565b016020015160f81c105b15613002575090565b61300e825160806132b8565b826040516020016120f4929190613db6565b919050565b5f6108bd8461303587868661210a565b8051602091820120825192909101919091201490565b81511561305b5781518083602001fd5b8060405162461bcd60e51b81526004016106d09190613de4565b8051606090806001600160401b03811115613092576130926136f7565b6040519080825280602002602001820160405280156130d757816020015b60408051808201909152606080825260208201528152602001906001900390816130b05790505b5091505f5b818110156119d457604051806040016040528085838151811061310157613101613a21565b6020026020010151815260200161313086848151811061312357613123613a21565b6020026020010151611fa2565b81525083828151811061314557613145613a21565b60209081029190910101526001016130dc565b606080604051905082518060011b603f8101601f191683016040528083525060208401602083015f5b838110156131ae578060011b8201818401515f1a8060041c8253600f811660018301535050600101613181565b509295945050505050565b60606020825f0151106131d4576131cf82611fb5565b610682565b6106828261345d565b60606106826131fb83602001515f81518110611e6b57611e6b613a21565b613158565b60608251821061321e575060408051602081019091525f8152610682565b6107ae83838486516132309190613c60565b613471565b5f80825184511061324757825161324a565b83515b90505b80821080156132a1575082828151811061326957613269613a21565b602001015160f81c60f81b6001600160f81b03191684838151811061329057613290613a21565b01602001516001600160f81b031916145b156132b15781600101915061324d565b5092915050565b6060603883101561331c57604080516001808252818301909252906020820181803683370190505090506132ec8284613e16565b60f81b815f8151811061330157613301613a21565b60200101906001600160f81b03191690815f1a905350610682565b5f60015b61332a8186613e2f565b15613350578161333981613d9e565b9250613349905061010082613e42565b9050613320565b61335b826001613a49565b6001600160401b03811115613372576133726136f7565b6040519080825280601f01601f19166020018201604052801561339c576020820181803683370190505b5092506133a98483613e16565b6133b4906037613e16565b60f81b835f815181106133c9576133c9613a21565b60200101906001600160f81b03191690815f1a905350600190505b818111613455576101006133f88284613c60565b61340490610100613f39565b61340e9087613e2f565b6134189190613f44565b60f81b83828151811061342d5761342d613a21565b60200101906001600160f81b03191690815f1a9053508061344d81613d9e565b9150506133e4565b505092915050565b606061068282602001515f845f0151612e2a565b60608182601f0110156134b75760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106d0565b8282840110156134fa5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106d0565b818301845110156135415760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106d0565b60608215801561355f5760405191505f8252602082016040526135a9565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015613598578051835260209283019201613580565b5050858452601f01601f1916604052505b50949350505050565b6001600160a01b0381168114610755575f80fd5b80358015158114613020575f80fd5b5f80604083850312156135e6575f80fd5b82356135f1816135b2565b91506135ff602084016135c6565b90509250929050565b5f8060408385031215613619575f80fd5b8235613624816135b2565b946020939093013593505050565b80356001600160401b0381168114613020575f80fd5b5f8060408385031215613659575f80fd5b61362483613632565b5f60208284031215613672575f80fd5b81356107ae816135b2565b5f805f8060808587031215613690575f80fd5b61369985613632565b9350602085013592506136ae60408601613632565b9396929550929360600135925050565b5f805f606084860312156136d0575f80fd5b6136d984613632565b9250602084013591506136ee604085016135c6565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b038111828210171561372d5761372d6136f7565b60405290565b604051601f8201601f191681016001600160401b038111828210171561375b5761375b6136f7565b604052919050565b5f82601f830112613772575f80fd5b81356001600160401b0381111561378b5761378b6136f7565b61379e601f8201601f1916602001613733565b8181528460208386010111156137b2575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156137df575f80fd5b82356137ea816135b2565b915060208301356001600160401b03811115613804575f80fd5b61381085828601613763565b9150509250929050565b5f6020828403121561382a575f80fd5b5035919050565b5f805f805f60808688031215613845575f80fd5b61384e86613632565b9450602086013561385e816135b2565b93506040860135925060608601356001600160401b0380821115613880575f80fd5b818801915088601f830112613893575f80fd5b8135818111156138a1575f80fd5b8960208285010111156138b2575f80fd5b9699959850939650602001949392505050565b5f805f606084860312156138d7575f80fd5b6138e084613632565b925060208401356138f0816135b2565b929592945050506040919091013590565b5f805f60608486031215613913575f80fd5b61391c84613632565b9250602084013591506136ee60408501613632565b5f8060408385031215613942575f80fd5b823591506135ff602084016135c6565b5f8060408385031215613963575f80fd5b823561396e816135b2565b9150602083013561397e816135b2565b809150509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561068257610682613a35565b5f60208284031215613a6c575f80fd5b5051919050565b5f6001600160401b03821115613a8b57613a8b6136f7565b5060051b60200190565b803560048110613020575f80fd5b5f82601f830112613ab2575f80fd5b81356020613ac7613ac283613a73565b613733565b82815260059290921b84018101918181019086841115613ae5575f80fd5b8286015b84811015611ee45780356001600160401b03811115613b06575f80fd5b613b148986838b0101613763565b845250918301918301613ae9565b5f6020808385031215613b33575f80fd5b82356001600160401b0380821115613b49575f80fd5b818501915085601f830112613b5c575f80fd5b8135613b6a613ac282613a73565b81815260059190911b83018401908481019088831115613b88575f80fd5b8585015b83811015613c5357803585811115613ba2575f80fd5b860160c0818c03601f19011215613bb7575f80fd5b613bbf61370b565b613bca898301613632565b81526040613bd9818401613632565b8a8301526060808401358284015260809150613bf6828501613a95565b9083015260a08381013589811115613c0c575f80fd5b613c1a8f8d83880101613aa3565b838501525060c0840135915088821115613c32575f80fd5b613c408e8c84870101613aa3565b9083015250845250918601918601613b8c565b5098975050505050505050565b8181038181111561068257610682613a35565b634e487b7160e01b5f52602160045260245ffd5b5f60208284031215613c97575f80fd5b81516107ae816135b2565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b80516020808301519190811015613d0d575f198160200360031b1b821691505b50919050565b5f5b83811015613d2d578181015183820152602001613d15565b50505f910152565b5f8251613d46818460208701613d13565b9190910192915050565b634e487b7160e01b5f52601260045260245ffd5b5f60ff831680613d7657613d76613d50565b8060ff84160691505092915050565b60ff828116828216039081111561068257610682613a35565b5f60018201613daf57613daf613a35565b5060010190565b5f8351613dc7818460208801613d13565b835190830190613ddb818360208801613d13565b01949350505050565b602081525f8251806020840152613e02816040850160208701613d13565b601f01601f19169190910160400192915050565b60ff818116838216019081111561068257610682613a35565b5f82613e3d57613e3d613d50565b500490565b808202811582820484141761068257610682613a35565b600181815b80851115613e9357815f1904821115613e7957613e79613a35565b80851615613e8657918102915b93841c9390800290613e5e565b509250929050565b5f82613ea957506001610682565b81613eb557505f610682565b8160018114613ecb5760028114613ed557613ef1565b6001915050610682565b60ff841115613ee657613ee6613a35565b50506001821b610682565b5060208310610133831016604e8410600b8410161715613f14575081810a610682565b613f1e8383613e59565b805f1904821115613f3157613f31613a35565b029392505050565b5f6107ae8383613e9b565b5f82613f5257613f52613d50565b50069056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220033895492bbcc96894ed439cdc50e77125492b24109f25d776924d9b3f6f572164736f6c63430008180033", + "balance": "0x0" + }, + "0x1670010000000000000000000000000000000005": { + "contractName": "SignalService", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670010000000000000000000000000000000006", + "0xe3ad9bc7a782493ccba4f8a469cc3f9e8fb5647c2076401c8a7c4945a999c777": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167001000000000000000000000000000000005" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220745d04b98b3aed6181cb020799fe1baaf079fe0385f5ffea02ae5081898469a064736f6c63430008180033", + "balance": "0x0" + }, + "0x0167001000000000000000000000000000010001": { + "contractName": "TaikoL2Impl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74" + }, + "code": "0x608060405260043610610212575f3560e01c806379ba50971161011e578063b8c7b30c116100a8578063e30c39781161006d578063e30c39781461062c578063e902461a14610649578063f2fde38b14610668578063f940e38514610687578063fd85eb2d146106a6575f80fd5b8063b8c7b30c1461057c578063c3f909d41461059b578063da69d3db146105d3578063dac5df78146105f2578063e07baba614610607575f80fd5b80638da5cb5b116100ee5780638da5cb5b146104b95780639ee512f2146104d6578063a7137c0f146104fb578063a7e022d114610521578063a86f9d9e1461055d575f80fd5b806379ba5097146104525780638456cb59146104665780638551f41e1461047a5780638abf6077146104a5575f80fd5b80633ab76e9f1161019f57806352d1902d1161016f57806352d1902d146103c5578063539b8ade146103d95780635950f9f1146103ff5780635c975abb1461041e578063715018a61461043e575f80fd5b80633ab76e9f146103485780633eb6b8cf1461037f5780633f4ba83a1461039e5780634f1ef286146103b2575f80fd5b80632f980473116101e55780632f980473146102bf5780633075db56146102dd57806333d5ac9b146102f1578063356aec04146103175780633659cfe614610329575f80fd5b806312622e5b14610216578063136dc4a81461025257806319d159761461027157806323ac713614610292575b5f80fd5b348015610221575f80fd5b5060fe54610235906001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b34801561025d575f80fd5b5061023561026c366004612789565b6106c5565b34801561027c575f80fd5b5061029061028b3660046127c9565b6106db565b005b34801561029d575f80fd5b506102b16102ac3660046127c9565b6107cb565b604051908152602001610249565b3480156102ca575f80fd5b505f5b6040519015158152602001610249565b3480156102e8575f80fd5b506102cd610827565b3480156102fc575f80fd5b5060fd5461023590600160401b90046001600160401b031681565b348015610322575f80fd5b505f610235565b348015610334575f80fd5b506102906103433660046127f6565b61083b565b348015610353575f80fd5b50609754610367906001600160a01b031681565b6040516001600160a01b039091168152602001610249565b34801561038a575f80fd5b5061036761039936600461281e565b610902565b3480156103a9575f80fd5b5061029061090e565b6102906103c036600461286f565b610922565b3480156103d0575f80fd5b506102b16109db565b3480156103e4575f80fd5b5060fd5461023590600160801b90046001600160401b031681565b34801561040a575f80fd5b5061029061041936600461292c565b610a8c565b348015610429575f80fd5b506102cd60c954610100900460ff1660021490565b348015610449575f80fd5b50610290610c4e565b34801561045d575f80fd5b50610290610c5f565b348015610471575f80fd5b50610290610cd6565b348015610485575f80fd5b506102b1610494366004612981565b60fb6020525f908152604090205481565b3480156104b0575f80fd5b50610367610ce9565b3480156104c4575f80fd5b506033546001600160a01b0316610367565b3480156104e1575f80fd5b5061036771777735367b36bc9b61c50022d9d0700db4ec81565b348015610506575f80fd5b5060fd5461023590600160c01b90046001600160401b031681565b34801561052c575f80fd5b5061054061053b3660046129ab565b610cf7565b604080519283526001600160401b03909116602083015201610249565b348015610568575f80fd5b506103676105773660046129dc565b610d6d565b348015610587575f80fd5b5060fd54610235906001600160401b031681565b3480156105a6575f80fd5b506105af610d82565b60408051825163ffffffff16815260209283015160ff169281019290925201610249565b3480156105de575f80fd5b506102906105ed366004612a0a565b610db3565b3480156105fd575f80fd5b506102b160fc5481565b348015610612575f80fd5b5060c954610235906201000090046001600160401b031681565b348015610637575f80fd5b506065546001600160a01b0316610367565b348015610654575f80fd5b50610540610663366004612a52565b610e7f565b348015610673575f80fd5b506102906106823660046127f6565b610f61565b348015610692575f80fd5b506102906106a1366004612a9a565b610fd2565b3480156106b1575f80fd5b506102906106c0366004612ac6565b61118d565b5f6106d18484846115f3565b90505b9392505050565b6106e36116ae565b5f54600290610100900460ff1615801561070357505f5460ff8083169116105b6107285760405162461bcd60e51b815260040161071f90612b07565b60405180910390fd5b5f805460fd80546001600160c01b03426001600160401b03908116600160801b0277ffffffffffffffff0000000000000000ffffffffffffffff19909316908816179190911716905561ffff191660ff8316176101001761ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906107bf90839060ff91909116815260200190565b60405180910390a15050565b5f43826001600160401b0316106107e357505f919050565b436107f083610100612b69565b6001600160401b03161061080c57506001600160401b03164090565b506001600160401b03165f90815260fb602052604090205490565b5f6002610832611708565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000100011630036108835760405162461bcd60e51b815260040161071f90612b90565b7f00000000000000000000000001670010000000000000000000000000000100016001600160a01b03166108b5611747565b6001600160a01b0316146108db5760405162461bcd60e51b815260040161071f90612bdc565b6108e481611762565b604080515f808252602082019092526108ff9183919061176a565b50565b5f6106d18484846118d4565b610916611926565b610920335f6119b6565b565b6001600160a01b037f000000000000000000000000016700100000000000000000000000000001000116300361096a5760405162461bcd60e51b815260040161071f90612b90565b7f00000000000000000000000001670010000000000000000000000000000100016001600160a01b031661099c611747565b6001600160a01b0316146109c25760405162461bcd60e51b815260040161071f90612bdc565b6109cb82611762565b6109d78282600161176a565b5050565b5f306001600160a01b037f00000000000000000000000001670010000000000000000000000000000100011614610a7a5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161071f565b505f80516020612e3f83398151915290565b5f54610100900460ff1615808015610aaa57505f54600160ff909116105b80610ac35750303b158015610ac357505f5460ff166001145b610adf5760405162461bcd60e51b815260040161071f90612b07565b5f805460ff191660011790558015610b00575f805461ff0019166101001790555b610b0a85856119be565b6001600160401b0383161580610b28575046836001600160401b0316145b15610b46576040516308279a2560e31b815260040160405180910390fd5b600146111580610b5c57506001600160401b0346115b15610b7a57604051638f972ecb60e01b815260040160405180910390fd5b4315610bc45743600103610bab575f610b94600143612c28565b5f81815260fb602052604090209040905550610bc4565b604051635a0f9e4160e11b815260040160405180910390fd5b60fe80546001600160401b0380861667ffffffffffffffff199283161790925560fd805492851692909116919091179055610bfe436119f8565b5060fc558015610c47575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610c566116ae565b6109205f611a88565b60655433906001600160a01b03168114610ccd5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161071f565b6108ff81611a88565b610cde611aa1565b6109203360016119b6565b5f610cf2611747565b905090565b5f805f610d02610d82565b9050610d61816020015160ff16825f015163ffffffff16610d239190612c3b565b60fd5483516001600160401b038083169263ffffffff90921691610d5091600160401b909104168a612c52565b610d5a9190612c72565b875f611b12565b90969095509350505050565b5f610d794684846118d4565b90505b92915050565b604080518082019091525f8082526020820152610cf260408051808201909152630393870081526008602082015290565b825f819003610dd55760405163ec73295960e01b815260040160405180910390fd5b826001600160401b0316805f03610dff5760405163ec73295960e01b815260040160405180910390fd5b3371777735367b36bc9b61c50022d9d0700db4ec14610e3157604051636494e9f760e01b815260040160405180910390fd5b6002610e3b611708565b60ff1603610e5c5760405163dfc60d8560e01b815260040160405180910390fd5b610e666002611b9b565b604051631799c89b60e01b815260040160405180910390fd5b5f8080610e926060880160408901612cb4565b610ea29063ffffffff1687612c72565b9050610eb460a0880160808901612cb4565b63ffffffff1615801590610ee55750610ed360a0880160808901612cb4565b63ffffffff16816001600160401b0316115b15610f0357610efa60a0880160808901612cb4565b63ffffffff1690505b5f610f116020890189612ccd565b60ff16610f2460608a0160408b01612cb4565b63ffffffff16610f349190612c3b565b9050610f5281878488610f4d60808e0160608f016127c9565b611b12565b93509350505094509492505050565b610f696116ae565b606580546001600160a01b0383166001600160a01b03199091168117909155610f9a6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610fe660c954610100900460ff1660021490565b156110045760405163bae6e2a960e01b815260040160405180910390fd5b693bb4ba34323930bbb2b960b11b6110246033546001600160a01b031690565b6001600160a01b0316336001600160a01b031614158015611061575061104b816001610d6d565b6001600160a01b0316336001600160a01b031614155b1561107f57604051630d85cccf60e11b815260040160405180910390fd5b6002611089611708565b60ff16036110aa5760405163dfc60d8560e01b815260040160405180910390fd5b6110b46002611b9b565b6001600160a01b0382166110db5760405163053fd54760e01b815260040160405180910390fd5b6001600160a01b038316611101576110fc6001600160a01b03831647611be3565b61117e565b6040516370a0823160e01b815230600482015261117e9083906001600160a01b038616906370a0823190602401602060405180830381865afa158015611149573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116d9190612c9d565b6001600160a01b0386169190611bee565b6111886001611b9b565b505050565b825f8190036111af5760405163ec73295960e01b815260040160405180910390fd5b846001600160401b0316805f036111d95760405163ec73295960e01b815260040160405180910390fd5b6111e96060840160408501612cb4565b63ffffffff16805f0361120f5760405163ec73295960e01b815260040160405180910390fd5b61121c6020850185612ccd565b60ff16805f0361123f5760405163ec73295960e01b815260040160405180910390fd5b3371777735367b36bc9b61c50022d9d0700db4ec1461127157604051636494e9f760e01b815260040160405180910390fd5b600261127b611708565b60ff160361129c5760405163dfc60d8560e01b815260040160405180910390fd5b6112a66002611b9b565b5f6112b2600143612c28565b90505f806112bf836119f8565b915091508160fc54146112e55760405163d719258d60e01b815260040160405180910390fd5b60fc55505f6112f76020880188612ccd565b60ff1661130a6060890160408a01612cb4565b63ffffffff1661131a9190612c72565b60fd549091506001600160401b03808316600160c01b90920416146113b55760fd54600160c01b90046001600160401b0316156113945760fd54611372906001600160401b0380821691600160c01b900416836106c5565b60fd805467ffffffffffffffff19166001600160401b03929092169190911790555b60fd80546001600160c01b0316600160c01b6001600160401b038416021790555b5060fd545f9081906113ef9089906113dd90600160801b90046001600160401b031642612c28565b60fd546001600160401b03168c610e7f565b915091506113fa5f90565b1580156114075750814814155b15611425576040516336d54d4f60e11b815260040160405180910390fd5b60fd805467ffffffffffffffff19166001600160401b039283161790819055600160401b90048116908b161115905061154a576114736d7369676e616c5f7365727669636560901b5f610d6d565b60fe546040516313e4299d60e21b81526001600160401b0391821660048201527f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da1696024820152908b166044820152606481018a90526001600160a01b039190911690634f90a674906084016020604051808303815f875af11580156114fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151e9190612c9d565b5060fd80546fffffffffffffffff00000000000000001916600160401b6001600160401b038c16021790555b5f81815260fb60205260409081902082409081905560fd80546001600160401b03428116600160801b0267ffffffffffffffff60801b1983168117909355935192937f41c3f410f5c8ac36bb46b1dccef0de0f964087c9e688795fa02ecfa2c20b3fe4936115d5938693908316921691909117909182526001600160401b0316602082015260400190565b60405180910390a150506115e96001611b9b565b5050505050505050565b5f826001600160401b03165f0361160b5750806106d4565b670de0b6b3a76400005f6001600160401b038086169061162d90861684612c3b565b6116379190612d01565b90506001600160ff1b0381111561166157604051636296f1b960e11b815260040160405180910390fd5b5f61166b82611c40565b90505f828802828702015f81126001811461168a57858204925061168e565b5f92505b506116a29050816001600160401b03611e5d565b98975050505050505050565b6033546001600160a01b031633146109205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071f565b5f61171246611e71565b1561173d57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020612e3f833981519152546001600160a01b031690565b6108ff6116ae565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561179d5761118883611e9e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156117f7575060408051601f3d908101601f191682019092526117f491810190612c9d565b60015b61185a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161071f565b5f80516020612e3f83398151915281146118c85760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161071f565b50611188838383611f39565b5f6118df8484611f63565b9050811580156118f657506001600160a01b038116155b156106d457604051632b0d65db60e01b81526001600160401b03851660048201526024810184905260440161071f565b61193a60c954610100900460ff1660021490565b6119575760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6109d76116ae565b806001600160a01b0381166119e65760405163538ba4f960e01b815260040160405180910390fd5b6119ef8361200d565b6111888261206b565b5f80611a0261274e565b5f5b60ff81108015611a175750806001018510155b15611a48575f198186030180408360ff83066101008110611a3a57611a3a612d14565b602002015250600101611a04565b5046611fe082015261200081209250834081611a6560ff87612d28565b6101008110611a7657611a76612d14565b60200201526120009020919391925050565b606580546001600160a01b03191690556108ff816120db565b611ab560c954610100900460ff1660021490565b15611ad35760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016119ac565b5f8080611b2e63ffffffff86166001600160401b038916612d3b565b9050856001600160401b03168111611b47576001611b5a565b611b5a6001600160401b03871682612c28565b9050611b796001600160401b03611b738387831661212c565b90611e5d565b9150611b8e826001600160401b031689612141565b9250509550959350505050565b611ba446611e71565b15611bcf57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6109d782825a612170565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526111889084906121b3565b6fffffffffffffffffffffffffffffffff811160071b81811c6001600160401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b175f8213611c9c57631615e6385f526004601cfd5b7ff8f9f9faf9fdfafbf9fdfcfdfafbfcfef9fafdfafcfcfbfefafafcfbffffffff6f8421084210842108cc6318c6db6d54be83831c1c601f161a1890811b609f90811c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d6c8c3f38e95a6b1ff2ab1c3b343619018302821d6d02384773bdf1ac5676facced60901901830290911d6cb9a025d814b29c212b8b1a07cd1901909102780a09507084cc699bb0e71ea869ffffffffffffffffffffffff190105711340daa0d5f769dba1915cef59f0815a5506029190037d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b302017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d90565b5f818311611e6b5782610d79565b50919050565b5f6001821480611e82575061426882145b80611e8f575062aa36a782145b80610d7c5750610d7c82612286565b6001600160a01b0381163b611f0b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161071f565b5f80516020612e3f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611f428361229d565b5f82511180611f4e5750805b1561118857611f5d83836122dc565b50505050565b6097545f906001600160a01b031680611f8f57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0385166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015611fe1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120059190612d4e565b949350505050565b5f54610100900460ff166120335760405162461bcd60e51b815260040161071f90612d69565b61203b612301565b6120596001600160a01b038216156120535781611a88565b33611a88565b5060c9805461ff001916610100179055565b5f54610100900460ff166120915760405162461bcd60e51b815260040161071f90612d69565b6001600160401b034611156120b95760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f81831161213a5781610d79565b5090919050565b5f808261214e8585612327565b6121589190612d01565b905080156121665780612005565b5060019392505050565b815f0361217c57505050565b61219683838360405180602001604052805f8152506123a1565b61118857604051634c67134d60e11b815260040160405180910390fd5b5f612207826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166123de9092919063ffffffff16565b905080515f14806122275750808060200190518101906122279190612db4565b6111885760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161071f565b5f617e2c8210158015610d7c575050617e90101590565b6122a681611e9e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610d798383604051806060016040528060278152602001612e5f602791396123ec565b5f54610100900460ff166109205760405162461bcd60e51b815260040161071f90612d69565b5f815f0361234857604051636296f1b960e11b815260040160405180910390fd5b5f8261235c85670de0b6b3a7640000612c3b565b6123669190612d01565b9050680755bf798b4a1bf1e48111156123855750680755bf798b4a1bf1e45b670de0b6b3a764000061239782612460565b6120059190612d01565b5f6001600160a01b0385166123c957604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b60606106d184845f856125da565b60605f80856001600160a01b0316856040516124089190612df1565b5f60405180830381855af49150503d805f8114612440576040519150601f19603f3d011682016040523d82523d5f602084013e612445565b606091505b5091509150612456868383876126b1565b9695505050505050565b5f68023f2fa8f6da5b9d2819821361247757919050565b680755bf798b4a1bf1e582126124945763a37bfec95f526004601cfd5b6503782dace9d9604e83901b0591505f60606bb17217f7d1cf79abc9e3b39884821b056001605f1b01901d6bb17217f7d1cf79abc9e3b39881029093036c240c330e9fb2d9cbaf0fd5aafb1981018102606090811d6d0277594991cfc85f6e2461837cd9018202811d6d1a521255e34f6a5061b25ef1c9c319018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d6e02c72388d9f74f51a9331fed693f1419018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084016d01d3967ed30fc4f89c02bab5708119010290911d6e0587f503bb6ea29d25fcb740196450019091026d360d7aeea093263ecc6e0ecb291760621b010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b60608247101561263b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161071f565b5f80866001600160a01b031685876040516126569190612df1565b5f6040518083038185875af1925050503d805f8114612690576040519150601f19603f3d011682016040523d82523d5f602084013e612695565b606091505b50915091506126a6878383876126b1565b979650505050505050565b6060831561271f5782515f03612718576001600160a01b0385163b6127185760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161071f565b5081612005565b61200583838151156127345781518083602001fd5b8060405162461bcd60e51b815260040161071f9190612e0c565b604051806120000160405280610100906020820280368337509192915050565b80356001600160401b0381168114612784575f80fd5b919050565b5f805f6060848603121561279b575f80fd5b6127a48461276e565b92506127b26020850161276e565b91506127c06040850161276e565b90509250925092565b5f602082840312156127d9575f80fd5b610d798261276e565b6001600160a01b03811681146108ff575f80fd5b5f60208284031215612806575f80fd5b81356106d4816127e2565b80151581146108ff575f80fd5b5f805f60608486031215612830575f80fd5b6128398461276e565b925060208401359150604084013561285081612811565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215612880575f80fd5b823561288b816127e2565b915060208301356001600160401b03808211156128a6575f80fd5b818501915085601f8301126128b9575f80fd5b8135818111156128cb576128cb61285b565b604051601f8201601f19908116603f011681019083821181831017156128f3576128f361285b565b8160405282815288602084870101111561290b575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f805f806080858703121561293f575f80fd5b843561294a816127e2565b9350602085013561295a816127e2565b92506129686040860161276e565b91506129766060860161276e565b905092959194509250565b5f60208284031215612991575f80fd5b5035919050565b803563ffffffff81168114612784575f80fd5b5f80604083850312156129bc575f80fd5b6129c58361276e565b91506129d360208401612998565b90509250929050565b5f80604083850312156129ed575f80fd5b8235915060208301356129ff81612811565b809150509250929050565b5f805f8060808587031215612a1d575f80fd5b8435935060208501359250612a346040860161276e565b915061297660608601612998565b5f60a08284031215611e6b575f80fd5b5f805f806101008587031215612a66575f80fd5b612a708686612a42565b9350612a7e60a0860161276e565b9250612a8c60c0860161276e565b915061297660e08601612998565b5f8060408385031215612aab575f80fd5b8235612ab6816127e2565b915060208301356129ff816127e2565b5f805f806101008587031215612ada575f80fd5b612ae38561276e565b935060208501359250612af860408601612998565b91506129768660608701612a42565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b03818116838216019080821115612b8957612b89612b55565b5092915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b81810381811115610d7c57610d7c612b55565b8082028115828204841417610d7c57610d7c612b55565b6001600160401b03828116828216039080821115612b8957612b89612b55565b6001600160401b03818116838216028082169190828114612c9557612c95612b55565b505092915050565b5f60208284031215612cad575f80fd5b5051919050565b5f60208284031215612cc4575f80fd5b610d7982612998565b5f60208284031215612cdd575f80fd5b813560ff811681146106d4575f80fd5b634e487b7160e01b5f52601260045260245ffd5b5f82612d0f57612d0f612ced565b500490565b634e487b7160e01b5f52603260045260245ffd5b5f82612d3657612d36612ced565b500690565b80820180821115610d7c57610d7c612b55565b5f60208284031215612d5e575f80fd5b81516106d4816127e2565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f60208284031215612dc4575f80fd5b81516106d481612811565b5f5b83811015612de9578181015183820152602001612dd1565b50505f910152565b5f8251612e02818460208701612dcf565b9190910192915050565b602081525f8251806020840152612e2a816040850160208701612dcf565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200799956cb69e79bd6197a07a0e35cd8219505de08d49a0ef97608b0b73844c7c64736f6c63430008180033", + "balance": "0x0" + }, + "0x1670010000000000000000000000000000010001": { + "contractName": "TaikoL2", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670010000000000000000000000000000010002", + "0x00000000000000000000000000000000000000000000000000000000000000fe": "0x0000000000000000000000000000000000000000000000000000000000007e7e", + "0x00000000000000000000000000000000000000000000000000000000000000fd": "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000000000000000000000000000000000000000000fc": "0xf167b245aa70c0a5e2f44cd65a94f2b1c5c9e8c8ab059940e4bf1c47d7a39557", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167001000000000000000000000000000010001" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220745d04b98b3aed6181cb020799fe1baaf079fe0385f5ffea02ae5081898469a064736f6c63430008180033", + "balance": "0x0" + }, + "0x0167001000000000000000000000000000010002": { + "contractName": "RollupAddressManagerImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74" + }, + "code": "0x608060405260043610610126575f3560e01c80635c975abb116100a85780638da5cb5b1161006d5780638da5cb5b14610301578063a86f9d9e1461031e578063d8f4648f1461033d578063e07baba61461035c578063e30c39781461039b578063f2fde38b146103b8575f80fd5b80635c975abb14610291578063715018a6146102b157806379ba5097146102c55780638456cb59146102d95780638abf6077146102ed575f80fd5b80633ab76e9f116100ee5780633ab76e9f1461020a5780633eb6b8cf146102295780633f4ba83a146102485780634f1ef2861461025c57806352d1902d1461026f575f80fd5b8063069489a21461012a57806319ab453c1461014057806328f713cc1461015f5780633075db56146101c75780633659cfe6146101eb575b5f80fd5b348015610135575f80fd5b5061013e6103d7565b005b34801561014b575f80fd5b5061013e61015a366004611193565b610487565b34801561016a575f80fd5b506101aa6101793660046111ca565b67ffffffffffffffff919091165f90815260fb6020908152604080832093835292905220546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101d2575f80fd5b506101db61055f565b60405190151581526020016101be565b3480156101f6575f80fd5b5061013e610205366004611193565b610573565b348015610215575f80fd5b506097546101aa906001600160a01b031681565b348015610234575f80fd5b506101aa610243366004611201565b61063a565b348015610253575f80fd5b5061013e610650565b61013e61026a36600461124e565b610664565b34801561027a575f80fd5b50610283610719565b6040519081526020016101be565b34801561029c575f80fd5b506101db60c954610100900460ff1660021490565b3480156102bc575f80fd5b5061013e6107ca565b3480156102d0575f80fd5b5061013e6107db565b3480156102e4575f80fd5b5061013e610852565b3480156102f8575f80fd5b506101aa610865565b34801561030c575f80fd5b506033546001600160a01b03166101aa565b348015610329575f80fd5b506101aa61033836600461130c565b610873565b348015610348575f80fd5b5061013e610357366004611336565b61087f565b348015610367575f80fd5b5060c9546103829062010000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101be565b3480156103a6575f80fd5b506065546001600160a01b03166101aa565b3480156103c3575f80fd5b5061013e6103d2366004611193565b61095d565b6103df6109ce565b5f54600290610100900460ff161580156103ff57505f5460ff8083169116105b6104245760405162461bcd60e51b815260040161041b90611373565b60405180910390fd5b5f8054609780546001600160a01b0319163017905561ffff191660ff83169081176101001761ff0019169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b5f54610100900460ff16158080156104a557505f54600160ff909116105b806104be5750303b1580156104be57505f5460ff166001145b6104da5760405162461bcd60e51b815260040161041b90611373565b5f805460ff1916600117905580156104fb575f805461ff0019166101001790555b61050482610a28565b609780546001600160a01b03191630179055801561055b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b5f600261056a610a86565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000100021630036105bb5760405162461bcd60e51b815260040161041b906113c1565b7f00000000000000000000000001670010000000000000000000000000000100026001600160a01b03166105ed610ac5565b6001600160a01b0316146106135760405162461bcd60e51b815260040161041b9061140d565b61061c81610ae0565b604080515f8082526020820190925261063791839190610ae8565b50565b5f610646848484610c57565b90505b9392505050565b610658610caa565b610662335f610d3b565b565b6001600160a01b037f00000000000000000000000001670010000000000000000000000000000100021630036106ac5760405162461bcd60e51b815260040161041b906113c1565b7f00000000000000000000000001670010000000000000000000000000000100026001600160a01b03166106de610ac5565b6001600160a01b0316146107045760405162461bcd60e51b815260040161041b9061140d565b61070d82610ae0565b61055b82826001610ae8565b5f306001600160a01b037f000000000000000000000000016700100000000000000000000000000001000216146107b85760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161041b565b505f8051602061154683398151915290565b6107d26109ce565b6106625f610d54565b60655433906001600160a01b031681146108495760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161041b565b61063781610d54565b61085a610d6d565b610662336001610d3b565b5f61086e610ac5565b905090565b5f610649468484610c57565b6108876109ce565b67ffffffffffffffff83165f90815260fb602090815260408083208584529091529020546001600160a01b039081169082168190036108d95760405163a883089360e01b815260040160405180910390fd5b67ffffffffffffffff84165f81815260fb6020908152604080832087845282529182902080546001600160a01b0319166001600160a01b038781169182179092558351908152908516918101919091528592917f500dcd607a98daece9bccc2511bf6032471252929de73caf507aae0e082f8453910160405180910390a350505050565b6109656109ce565b606580546001600160a01b0383166001600160a01b031990911681179091556109966033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146106625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161041b565b5f54610100900460ff16610a4e5760405162461bcd60e51b815260040161041b90611459565b610a56610dde565b610a746001600160a01b03821615610a6e5781610d54565b33610d54565b5060c9805461ff001916610100179055565b5f610a9046610e04565b15610abb57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020611546833981519152546001600160a01b031690565b6106376109ce565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610b2057610b1b83610e37565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610b7a575060408051601f3d908101601f19168201909252610b77918101906114a4565b60015b610bdd5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161041b565b5f805160206115468339815191528114610c4b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161041b565b50610b1b838383610ed2565b5f610c628484610efc565b905081158015610c7957506001600160a01b038116155b1561064957604051632b0d65db60e01b815267ffffffffffffffff851660048201526024810184905260440161041b565b610cbe60c954610100900460ff1660021490565b610cdb5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff0019909116620100004267ffffffffffffffff1602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b604051630c2b8f8f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561063781610fa7565b610d8160c954610100900460ff1660021490565b15610d9f5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610d31565b5f54610100900460ff166106625760405162461bcd60e51b815260040161041b90611459565b5f6001821480610e15575061426882145b80610e22575062aa36a782145b80610e315750610e3182610ff8565b92915050565b6001600160a01b0381163b610ea45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161041b565b5f8051602061154683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610edb8361100f565b5f82511180610ee75750805b15610b1b57610ef6838361104e565b50505050565b6097545f906001600160a01b031680610f2857604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b815267ffffffffffffffff85166004820152602481018490526001600160a01b038216906328f713cc90604401602060405180830381865afa158015610f7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9f91906114bb565b949350505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f617e2c8210158015610e31575050617e90101590565b61101881610e37565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061064983836040518060600160405280602781526020016115666027913960605f80856001600160a01b03168560405161108a91906114f8565b5f60405180830381855af49150503d805f81146110c2576040519150601f19603f3d011682016040523d82523d5f602084013e6110c7565b606091505b50915091506110d8868383876110e2565b9695505050505050565b606083156111505782515f03611149576001600160a01b0385163b6111495760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161041b565b5081610f9f565b610f9f83838151156111655781518083602001fd5b8060405162461bcd60e51b815260040161041b9190611513565b6001600160a01b0381168114610637575f80fd5b5f602082840312156111a3575f80fd5b81356106498161117f565b803567ffffffffffffffff811681146111c5575f80fd5b919050565b5f80604083850312156111db575f80fd5b6111e4836111ae565b946020939093013593505050565b803580151581146111c5575f80fd5b5f805f60608486031215611213575f80fd5b61121c846111ae565b925060208401359150611231604085016111f2565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561125f575f80fd5b823561126a8161117f565b9150602083013567ffffffffffffffff80821115611286575f80fd5b818501915085601f830112611299575f80fd5b8135818111156112ab576112ab61123a565b604051601f8201601f19908116603f011681019083821181831017156112d3576112d361123a565b816040528281528860208487010111156112eb575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f806040838503121561131d575f80fd5b8235915061132d602084016111f2565b90509250929050565b5f805f60608486031215611348575f80fd5b611351846111ae565b92506020840135915060408401356113688161117f565b809150509250925092565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f602082840312156114b4575f80fd5b5051919050565b5f602082840312156114cb575f80fd5b81516106498161117f565b5f5b838110156114f05781810151838201526020016114d8565b50505f910152565b5f82516115098184602087016114d6565b9190910192915050565b602081525f82518060208401526115318160408501602087016114d6565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bfe7dc08ce4aced156fa889d420c17e2880bc25c953f1c68c4fd3102128e53e064736f6c63430008180033", + "balance": "0x0" + }, + "0x1670010000000000000000000000000000010002": { + "contractName": "RollupAddressManager", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000ab707cb80e7de7c75d815b1a653433f3eec44c74", + "0xd8268ac552cc4e7bd87f3f4b36d055f134549289cc2d68715bd581a06ffb2631": "0x0000000000000000000000001670010000000000000000000000000000010001", + "0xc64d73fae391b0ac595df47d373c227e7f86156e3d98ea2db53384d097ed1368": "0x0000000000000000000000001670010000000000000000000000000000000001", + "0x30e0422248fc90822e500074357003173b9f5edac82e6cc3679f5f9b5ae0843a": "0x0000000000000000000000001670010000000000000000000000000000000005", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167001000000000000000000000000000010002" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea2646970667358221220745d04b98b3aed6181cb020799fe1baaf079fe0385f5ffea02ae5081898469a064736f6c63430008180033", + "balance": "0x0" + }, + "0x5dADBb58A8ACfCaec475a08bBB4054F8874A3A8b": { + "contractName": "LibNetwork", + "storage": {}, + "code": "0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212209ca375e9c01325522b8d4ada1c7ca37217b0596856aab70ba0ad8b855f6f45ea64736f6c63430008180033", + "balance": "0x0" + }, + "0x0167001000000000000000000000000000010099": { + "contractName": "RegularERC20", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x526567756c617245524332300000000000000000000000000000000000000018", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x52474c0000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000002710000", + "0x723077b8a1b173adc35e5f0e7e3662fd1208212cb629f9c128551ea7168da722": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x14e04a66bf74771820a7400ff6cf065175b3d7eb25805a5bd1633b161af5d101": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x215be5d23550ceb1beff54fb579a765903ba2ccc85b6f79bcf9bda4e8cb86034": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x6d1035fce6503985ab075a4ff3f7ce2e57cd5a9c5e6a0589dccacfea7bcb0af4": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x2a95ee547cef07a2fff0a68144824a0d9ded35ed87da118a53e1cda4aca8b944": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x7fcecd2a720442e9bc0cf1a8a6976f9fbddf6b996dc0d78af7e94dadf360d579": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x18bbf5fcf8fe870ecff419c4677497c08b2e6a5431bb94541d06c9da3f308e55": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x6e3431b4e42570cb9e3d926eb26f9e54de2df536ae0741ae16350d17a6c16ddc": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xdb302bf24b1ad5f23949da8e6b05747dc699499a995361a7bf40ec7204696d6f": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xa1d47ef1a6916dfbe65888f77739da164feb3a9a6afc95ee57e8b3e85ea5e955": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x454340b1295f9ff1c0fb9192166d0215d33f84dc5f2dc3f3e5732a4b557186bf": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x6a3bb1dada7c82a99b4a02d16da3fda07cb31d8887b9b99ec829ab67fd7a817e": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x2fe2844d12634f5dce1e2be5be96b2ea1c573f8f25171997e2f4bd943dd32f92": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x3836a017087644fbf6925ae1aca14201ce898a35434d9dea9ebd03cea44e049a": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x1c7a29f5a750951acb14fdf82a876085914eb17f15a162b054a3d2f8c92e2451": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x271927a243b678b7a071f19b4051ef93b16e397066e3fdef5bba26527e34a1a1": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x4663d660b5d810c9ab2f6dc64af7ff84ebae28a72342391622649a7fe87c93d4": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x352c3281a58937f04ef7cc7b88f3456b6ffd47f52a321c253dc083fb53a3a114": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x6d5faa5f4e671e6fe47b0eab51c62f8cebf354e21e8fdccf8cdfc0293dd341a3": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x673de83553dc3a2c0f59aa7193de392a4530feb73b9d6cd4fcef68802b8195c1": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x8b6a7148182c39c1ca0b052292befa83d09344947c23e47b300314fa8c2b8f7d": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xed4a23b4a030ee0d64ef69b276dee81d493e5efca01c0fa514e0c38f882af152": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x45124dfaa1716b8d229f646ff926377e17b887c2b2eab6a87ab0348ee1689eac": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x40f9c2870c16301e8614e56453fc5b838c4a153eb0b18c4c050efbf4f786518a": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xbd55c9294669a294e0c8fd07e2c07738e95be0123b62b752d782fe317f25ca97": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x52c0eeeba21034a69ad7cfa70f75c6fd127acd4084a4da80f30cc7540bdf990b": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x843a9befd317bdcee99c42a3adf6d00b789224beda1485c7f6e7bf327755328e": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xea09b20615ffad342fb450741e59ea6ba180fa93b8701b31fa639ef9ff50d2b0": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x39cd5e5ec54ce41a5f5b2c13ce7133998dfef654caacfb44d5c517700c217d36": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xd46a4409ebc9fc47afedecdadc89dbc0d6f46be6bdb49fd822d5143daedc83f0": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x5735d6fad3ea4f2328a1557ff1be7570df3d4c2630b448c1b7fe2781d018beb0": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x509c640066f1872118ec768fcb985c7bf4476690788ac7e112ab072ca82ab219": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xf9982658df503b792c55f860aefa42588712c9069523324d4b9ce4d9a10e2e9c": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x87d11160035f8424b7163a397fc780b278af3de5a6caa2cb71bb2b46825ce159": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x1dde801acf032acf4b3151b5edb82e0e4d872a54d9efbf3809d75efcbfa2bf8f": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x01aad34cdf9f8f5fca811e2fab1411b08778be71f547894fa0d9fafa5c1f60b2": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x65cee0cf3d643c3f3402a40ddebed72cec3dd6bac66974bff967dc0ef9e2faed": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xaf6cadccd3f046eeb282ec0b08e44adbe45784a23f41d76b096ccb8e7f238e2b": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x2589e1958c4e4f4a5f777b0b92a3170cc21771a8d3580331a71232f8624f7628": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x1f27de92fedf410197c8a09d0f2f03372d92b75c9889a6a61cf491395877fbcf": "0x00000000000000000000000000000000000000000000000000000000000fa000" + }, + "code": "0x608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011f57806370a082311461013257806395d89b411461015a578063a457c2d714610162578063a9059cbb14610175578063dd62ed3e14610188575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100eb57806323b872dd146100fd578063313ce56714610110575b5f80fd5b6100b261019b565b6040516100bf919061068a565b60405180910390f35b6100db6100d63660046106f1565b61022b565b60405190151581526020016100bf565b6002545b6040519081526020016100bf565b6100db61010b366004610719565b610244565b604051601281526020016100bf565b6100db61012d3660046106f1565b610267565b6100ef610140366004610752565b6001600160a01b03165f9081526020819052604090205490565b6100b2610288565b6100db6101703660046106f1565b610297565b6100db6101833660046106f1565b610316565b6100ef610196366004610772565b610323565b6060600380546101aa906107a3565b80601f01602080910402602001604051908101604052809291908181526020018280546101d6906107a3565b80156102215780601f106101f857610100808354040283529160200191610221565b820191905f5260205f20905b81548152906001019060200180831161020457829003601f168201915b5050505050905090565b5f3361023881858561034d565b60019150505b92915050565b5f33610251858285610470565b61025c8585856104e8565b506001949350505050565b5f336102388185856102798383610323565b61028391906107db565b61034d565b6060600480546101aa906107a3565b5f33816102a48286610323565b9050838110156103095760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61025c828686840361034d565b5f336102388185856104e8565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610300565b6001600160a01b0382166104105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610300565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61047b8484610323565b90505f1981146104e257818110156104d55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610300565b6104e2848484840361034d565b50505050565b6001600160a01b03831661054c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610300565b6001600160a01b0382166105ae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610300565b6001600160a01b0383165f90815260208190526040902054818110156106255760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610300565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104e2565b5f602080835283518060208501525f5b818110156106b65785810183015185820160400152820161069a565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146106ec575f80fd5b919050565b5f8060408385031215610702575f80fd5b61070b836106d6565b946020939093013593505050565b5f805f6060848603121561072b575f80fd5b610734846106d6565b9250610742602085016106d6565b9150604084013590509250925092565b5f60208284031215610762575f80fd5b61076b826106d6565b9392505050565b5f8060408385031215610783575f80fd5b61078c836106d6565b915061079a602084016106d6565b90509250929050565b600181811c908216806107b757607f821691505b6020821081036107d557634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561023e57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220f269869f3d09c21a17de099d84f8aaa403365b852ebc4eff5d63f9971d8639eb64736f6c63430008180033", + "balance": "0x0" + } +} \ No newline at end of file diff --git a/crates/chainspec/res/genesis/taiko/internal_l2b.json b/crates/chainspec/res/genesis/taiko/internal_l2b.json new file mode 100644 index 000000000000..ef88668af6d4 --- /dev/null +++ b/crates/chainspec/res/genesis/taiko/internal_l2b.json @@ -0,0 +1,369 @@ +{ + "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266": { + "balance": "0x3782dace9d90000000" + }, + "0x70997970C51812dc3A010C7d01b50e0d17dc79C8": { + "balance": "0x3782dace9d90000000" + }, + "0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC": { + "balance": "0x3782dace9d90000000" + }, + "0x90F79bf6EB2c4f870365E785982E1f101E93b906": { + "balance": "0x3782dace9d90000000" + }, + "0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65": { + "balance": "0x3782dace9d90000000" + }, + "0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc": { + "balance": "0x3782dace9d90000000" + }, + "0x976EA74026E726554dB657fA54763abd0C3a0aa9": { + "balance": "0x3782dace9d90000000" + }, + "0x14dC79964da2C08b23698B3D3cc7Ca32193d9955": { + "balance": "0x3782dace9d90000000" + }, + "0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f": { + "balance": "0x3782dace9d90000000" + }, + "0xa0Ee7A142d267C1f36714E4a8F75612F20a79720": { + "balance": "0x3782dace9d90000000" + }, + "0xBcd4042DE499D14e55001CcbB24a551F3b954096": { + "balance": "0x3782dace9d90000000" + }, + "0x71bE63f3384f5fb98995898A86B02Fb2426c5788": { + "balance": "0x3782dace9d90000000" + }, + "0xFABB0ac9d68B0B445fB7357272Ff202C5651694a": { + "balance": "0x3782dace9d90000000" + }, + "0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec": { + "balance": "0x3782dace9d90000000" + }, + "0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097": { + "balance": "0x3782dace9d90000000" + }, + "0xcd3B766CCDd6AE721141F452C550Ca635964ce71": { + "balance": "0x3782dace9d90000000" + }, + "0x2546BcD3c84621e976D8185a91A922aE77ECEc30": { + "balance": "0x3782dace9d90000000" + }, + "0xbDA5747bFD65F08deb54cb465eB87D40e51B197E": { + "balance": "0x3782dace9d90000000" + }, + "0xdD2FD4581271e230360230F9337D5c0430Bf44C0": { + "balance": "0x3782dace9d90000000" + }, + "0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199": { + "balance": "0x3782dace9d90000000" + }, + "0x7D86687F980A56b832e9378952B738b614A99dc6": { + "balance": "0x3782dace9d90000000" + }, + "0x11e8F3eA3C6FcF12EcfF2722d75CEFC539c51a1C": { + "balance": "0x3782dace9d90000000" + }, + "0x9eAF5590f2c84912A08de97FA28d0529361Deb9E": { + "balance": "0x3782dace9d90000000" + }, + "0x1003ff39d25F2Ab16dBCc18EcE05a9B6154f65F4": { + "balance": "0x3782dace9d90000000" + }, + "0x4779d18931B35540F84b0cd0e9633855B84df7b8": { + "balance": "0x3782dace9d90000000" + }, + "0x1c87Bb9234aeC6aDc580EaE6C8B59558A4502220": { + "balance": "0x3782dace9d90000000" + }, + "0x0d803cdeEe5990f22C2a8DF10A695D2312dA26CC": { + "balance": "0x3782dace9d90000000" + }, + "0xAb707cb80e7de7C75d815B1A653433F3EEc44c74": { + "balance": "0x3782dace9d90000000" + }, + "0xe8B1ff302A740fD2C6e76B620d45508dAEc2DDFf": { + "balance": "0x3782dace9d90000000" + }, + "0xa0EC9eE47802CeB56eb58ce80F3E41630B771b04": { + "balance": "0x3782dace9d90000000" + }, + "0x042a63149117602129B6922ecFe3111168C2C323": { + "balance": "0x3782dace9d90000000" + }, + "0xA1196426b41627ae75Ea7f7409E074BE97367da2": { + "balance": "0x3782dace9d90000000" + }, + "0xE74cEf90b6CF1a77FEfAd731713e6f53e575C183": { + "balance": "0x3782dace9d90000000" + }, + "0x7Df8Efa6d6F1CB5C4f36315e0AcB82b02Ae8BA40": { + "balance": "0x3782dace9d90000000" + }, + "0x9E126C57330FA71556628e0aabd6B6B6783d99fA": { + "balance": "0x3782dace9d90000000" + }, + "0xcBDc0F9a4C38f1e010bD3B6e43598A55D1868c23": { + "balance": "0x3782dace9d90000000" + }, + "0xBc5BdceE96b1BC47822C74e6f64186fbA7d686be": { + "balance": "0x3782dace9d90000000" + }, + "0x0536896a5e38BbD59F3F369FF3682677965aBD19": { + "balance": "0x3782dace9d90000000" + }, + "0xFE0f143FcAD5B561b1eD2AC960278A2F23559Ef9": { + "balance": "0x3782dace9d90000000" + }, + "0x98D08079928FcCB30598c6C6382ABfd7dbFaA1cD": { + "balance": "0x3782dace9d90000000" + }, + "0x0167002000000000000000000000000000000006": { + "contractName": "SharedAddressManagerImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff" + }, + "code": "0x608060405260043610610126575f3560e01c80635c975abb116100a85780638da5cb5b1161006d5780638da5cb5b146102d5578063a86f9d9e146102f2578063d8f4648f14610311578063e07baba614610330578063e30c39781461036f578063f2fde38b1461038c575f80fd5b80635c975abb14610265578063715018a61461028557806379ba5097146102995780638456cb59146102ad5780638abf6077146102c1575f80fd5b80633ab76e9f116100ee5780633ab76e9f146101de5780633eb6b8cf146101fd5780633f4ba83a1461021c5780634f1ef2861461023057806352d1902d14610243575f80fd5b8063069489a21461012a57806319ab453c1461014057806328f713cc1461015f5780633075db561461019b5780633659cfe6146101bf575b5f80fd5b348015610135575f80fd5b5061013e6103ab565b005b34801561014b575f80fd5b5061013e61015a36600461118f565b61045b565b34801561016a575f80fd5b5061017e6101793660046111c6565b610533565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101a6575f80fd5b506101af610567565b6040519015158152602001610192565b3480156101ca575f80fd5b5061013e6101d936600461118f565b61057b565b3480156101e9575f80fd5b5060975461017e906001600160a01b031681565b348015610208575f80fd5b5061017e6102173660046111fd565b610642565b348015610227575f80fd5b5061013e610656565b61013e61023e36600461124a565b61066a565b34801561024e575f80fd5b5061025761071f565b604051908152602001610192565b348015610270575f80fd5b506101af60c954610100900460ff1660021490565b348015610290575f80fd5b5061013e6107d0565b3480156102a4575f80fd5b5061013e6107e1565b3480156102b8575f80fd5b5061013e610858565b3480156102cc575f80fd5b5061017e61086b565b3480156102e0575f80fd5b506033546001600160a01b031661017e565b3480156102fd575f80fd5b5061017e61030c366004611308565b610879565b34801561031c575f80fd5b5061013e61032b366004611332565b61088c565b34801561033b575f80fd5b5060c9546103569062010000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610192565b34801561037a575f80fd5b506065546001600160a01b031661017e565b348015610397575f80fd5b5061013e6103a636600461118f565b61096a565b6103b36109db565b5f54600290610100900460ff161580156103d357505f5460ff8083169116105b6103f85760405162461bcd60e51b81526004016103ef9061136f565b60405180910390fd5b5f8054609780546001600160a01b0319163017905561ffff191660ff83169081176101001761ff0019169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b5f54610100900460ff161580801561047957505f54600160ff909116105b806104925750303b15801561049257505f5460ff166001145b6104ae5760405162461bcd60e51b81526004016103ef9061136f565b5f805460ff1916600117905580156104cf575f805461ff0019166101001790555b6104d882610a35565b609780546001600160a01b03191630179055801561052f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b67ffffffffffffffff82165f90815260fb602090815260408083208484529091529020546001600160a01b03165b92915050565b5f6002610572610a93565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670020000000000000000000000000000000061630036105c35760405162461bcd60e51b81526004016103ef906113bd565b7f00000000000000000000000001670020000000000000000000000000000000066001600160a01b03166105f5610ad2565b6001600160a01b03161461061b5760405162461bcd60e51b81526004016103ef90611409565b61062481610aed565b604080515f8082526020820190925261063f91839190610af5565b50565b5f61064e848484610c64565b949350505050565b61065e610d57565b610668335f610de8565b565b6001600160a01b037f00000000000000000000000001670020000000000000000000000000000000061630036106b25760405162461bcd60e51b81526004016103ef906113bd565b7f00000000000000000000000001670020000000000000000000000000000000066001600160a01b03166106e4610ad2565b6001600160a01b03161461070a5760405162461bcd60e51b81526004016103ef90611409565b61071382610aed565b61052f82826001610af5565b5f306001600160a01b037f000000000000000000000000016700200000000000000000000000000000000616146107be5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103ef565b505f8051602061154283398151915290565b6107d86109db565b6106685f610e01565b60655433906001600160a01b0316811461084f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016103ef565b61063f81610e01565b610860610e1a565b610668336001610de8565b5f610874610ad2565b905090565b5f610885468484610c64565b9392505050565b6108946109db565b67ffffffffffffffff83165f90815260fb602090815260408083208584529091529020546001600160a01b039081169082168190036108e65760405163a883089360e01b815260040160405180910390fd5b67ffffffffffffffff84165f81815260fb6020908152604080832087845282529182902080546001600160a01b0319166001600160a01b038781169182179092558351908152908516918101919091528592917f500dcd607a98daece9bccc2511bf6032471252929de73caf507aae0e082f8453910160405180910390a350505050565b6109726109db565b606580546001600160a01b0383166001600160a01b031990911681179091556109a36033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146106685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ef565b5f54610100900460ff16610a5b5760405162461bcd60e51b81526004016103ef90611455565b610a63610e8b565b610a816001600160a01b03821615610a7b5781610e01565b33610e01565b5060c9805461ff001916610100179055565b5f610a9d46610eb1565b15610ac857507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020611542833981519152546001600160a01b031690565b61063f6109db565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610b2d57610b2883610ede565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610b87575060408051601f3d908101601f19168201909252610b84918101906114a0565b60015b610bea5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016103ef565b5f805160206115428339815191528114610c585760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016103ef565b50610b28838383610f79565b6097545f906001600160a01b031680610c9057604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa158015610ce3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0791906114b7565b915082158015610d1e57506001600160a01b038216155b15610d4f57604051632b0d65db60e01b815267ffffffffffffffff86166004820152602481018590526044016103ef565b509392505050565b610d6b60c954610100900460ff1660021490565b610d885760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff0019909116620100004267ffffffffffffffff1602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b604051630c2b8f8f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561063f81610fa3565b610e2e60c954610100900460ff1660021490565b15610e4c5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610dde565b5f54610100900460ff166106685760405162461bcd60e51b81526004016103ef90611455565b5f6001821480610ec2575061426882145b80610ecf575062aa36a782145b80610561575061056182610ff4565b6001600160a01b0381163b610f4b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016103ef565b5f8051602061154283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610f828361100b565b5f82511180610f8e5750805b15610b2857610f9d838361104a565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f617e2c8210158015610561575050617e90101590565b61101481610ede565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061088583836040518060600160405280602781526020016115626027913960605f80856001600160a01b03168560405161108691906114f4565b5f60405180830381855af49150503d805f81146110be576040519150601f19603f3d011682016040523d82523d5f602084013e6110c3565b606091505b50915091506110d4868383876110de565b9695505050505050565b6060831561114c5782515f03611145576001600160a01b0385163b6111455760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ef565b508161064e565b61064e83838151156111615781518083602001fd5b8060405162461bcd60e51b81526004016103ef919061150f565b6001600160a01b038116811461063f575f80fd5b5f6020828403121561119f575f80fd5b81356108858161117b565b803567ffffffffffffffff811681146111c1575f80fd5b919050565b5f80604083850312156111d7575f80fd5b6111e0836111aa565b946020939093013593505050565b803580151581146111c1575f80fd5b5f805f6060848603121561120f575f80fd5b611218846111aa565b92506020840135915061122d604085016111ee565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561125b575f80fd5b82356112668161117b565b9150602083013567ffffffffffffffff80821115611282575f80fd5b818501915085601f830112611295575f80fd5b8135818111156112a7576112a7611236565b604051601f8201601f19908116603f011681019083821181831017156112cf576112cf611236565b816040528281528860208487010111156112e7575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f8060408385031215611319575f80fd5b82359150611329602084016111ee565b90509250929050565b5f805f60608486031215611344575f80fd5b61134d846111aa565b92506020840135915060408401356113648161117b565b809150509250925092565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f602082840312156114b0575f80fd5b5051919050565b5f602082840312156114c7575f80fd5b81516108858161117b565b5f5b838110156114ec5781810151838201526020016114d4565b50505f910152565b5f82516115058184602087016114d2565b9190910192915050565b602081525f825180602084015261152d8160408501602087016114d2565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220546acba5cf9d5840aa28144a5c5b7154e1fbe167d06f40edc368d12eba1367a264736f6c63430008180033", + "balance": "0x0" + }, + "0x1670020000000000000000000000000000000006": { + "contractName": "SharedAddressManager", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff", + "0x1f6e8365b88965465679d131196095b3fe883fdeef8915a26d29cc80b5f57057": "0x0000000000000000000000001670020000000000000000000000000000000001", + "0x0a87a91d9f9742da2223c4d7ea323675defd4b6d878704dfb528468917dd7a9f": "0x0000000000000000000000001670020000000000000000000000000000000002", + "0x5c77c4c9bda7d7357953d00d5467a266bbf8a8e5374fe1eff42e9d30c6943054": "0x0000000000000000000000001670020000000000000000000000000000000003", + "0x63e5ffdf4c63931cdc18ccbe3f3ebca577ee9db6108b67086c0d098399f355c2": "0x0000000000000000000000001670020000000000000000000000000000000004", + "0x3bd77107e0102c8f1a54b812ae852bf834e4d7d2e163cd6ad85e7fb146b8946b": "0x0000000000000000000000001670020000000000000000000000000000000005", + "0xeb65558d30a30fdaf6ae0b122d4f7aa1aed26bbd4b5edca1d270c0296c859470": "0x0000000000000000000000000167002000000000000000000000000000010096", + "0xcd245fd144e9bd59b0e5c99ce9e407ab75ef654d032e6d2b4224a9dd9bfba6be": "0x0000000000000000000000000167002000000000000000000000000000010097", + "0xe4837dd39c893816c7a5c63deb4bba91722c5f6088e3c198b8e24fb37a9591a3": "0x0000000000000000000000000167002000000000000000000000000000010098", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167002000000000000000000000000000000006" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167002000000000000000000000000000000001": { + "contractName": "BridgeImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff" + }, + "code": "0x608060405260043610610215575f3560e01c806382b5e8891161011e578063b8acae0e116100a8578063e07baba61161006d578063e07baba61461065e578063e30c39781461069b578063eefbf17e146106b8578063f09a4016146106de578063f2fde38b146106fd575f80fd5b8063b8acae0e146105a2578063be880c81146105c1578063c012fa77146105d7578063d0496d6a146105f6578063d1aaa5df1461063e575f80fd5b80638e3881a9116100ee5780638e3881a9146104f1578063913b16cb1461052f5780639efc7a2e1461054e578063a730cdfb1461056d578063a86f9d9e14610583575f80fd5b806382b5e8891461048d5780638456cb59146104ac5780638abf6077146104c05780638da5cb5b146104d4575f80fd5b80633f4ba83a1161019f5780635c975abb1161016f5780635c975abb146103e857806360620c6b14610408578063715018a61461042757806379ba50971461043b5780637cbadfaa1461044f575f80fd5b80633f4ba83a146103805780634f1ef2861461039457806352d1902d146103a75780635862f6e1146103c9575f80fd5b80633075db56116101e55780633075db56146102ac5780633659cfe6146102d05780633ab76e9f146102ef5780633c6cf473146103265780633eb6b8cf14610361575f80fd5b80630432873c14610220578063069489a2146102415780631bdb0037146102555780632035065e1461027f575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023f61023a3660046130a8565b61071c565b005b34801561024c575f80fd5b5061023f6109b3565b6102686102633660046130f6565b610a6a565b604051610276929190613277565b60405180910390f35b34801561028a575f80fd5b5061029e61029936600461328f565b610e1d565b604051610276929190613345565b3480156102b7575f80fd5b506102c06112f7565b6040519015158152602001610276565b3480156102db575f80fd5b5061023f6102ea366004613394565b61130b565b3480156102fa575f80fd5b5060975461030e906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b348015610331575f80fd5b506103546103403660046133af565b60fc6020525f908152604090205460ff1681565b60405161027691906133c6565b34801561036c575f80fd5b5061030e61037b3660046133ea565b6113d2565b34801561038b575f80fd5b5061023f6113e8565b61023f6103a23660046134ec565b6113fc565b3480156103b2575f80fd5b506103bb6114b5565b604051908152602001610276565b3480156103d4575f80fd5b506102c06103e336600461328f565b611567565b3480156103f3575f80fd5b506102c060c954610100900460ff1660021490565b348015610413575f80fd5b506102c06104223660046130f6565b6115d2565b348015610432575f80fd5b5061023f6116a0565b348015610446575f80fd5b5061023f6116b1565b34801561045a575f80fd5b506104786104693660046133af565b6101000160041c620c35000190565b60405163ffffffff9091168152602001610276565b348015610498575f80fd5b5061023f6104a7366004613394565b611728565b3480156104b7575f80fd5b5061023f6117a8565b3480156104cb575f80fd5b5061030e6117bb565b3480156104df575f80fd5b506033546001600160a01b031661030e565b3480156104fc575f80fd5b5061051061050b366004613538565b6117c9565b6040805192151583526001600160a01b03909116602083015201610276565b34801561053a575f80fd5b5061023f6105493660046130f6565b6117f5565b348015610559575f80fd5b5061023f61056836600461328f565b6119e0565b348015610578575f80fd5b506104786201d4c081565b34801561058e575f80fd5b5061030e61059d366004613551565b611cd9565b3480156105ad575f80fd5b506102c06105bc36600461328f565b611ce5565b3480156105cc575f80fd5b50610478620c350081565b3480156105e2575f80fd5b506103bb6105f1366004613673565b611d46565b348015610601575f80fd5b5061060a611d75565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610276565b348015610649575f80fd5b506103bb6106583660046133af565b60031890565b348015610669575f80fd5b5060c954610683906201000090046001600160401b031681565b6040516001600160401b039091168152602001610276565b3480156106a6575f80fd5b506065546001600160a01b031661030e565b3480156106c3575f80fd5b5060fb5461068390600160401b90046001600160401b031681565b3480156106e9575f80fd5b5061023f6106f83660046136a4565b611dc9565b348015610708575f80fd5b5061023f610717366004613394565b611e90565b61072c60e0830160c08401613538565b46816001600160401b03161461075557604051631c6c777560e31b815260040160405180910390fd5b61076560a0840160808501613538565b6001600160401b0381161580610783575046816001600160401b0316145b156107a157604051631c6c777560e31b815260040160405180910390fd5b6107b560c954610100900460ff1660021490565b156107d35760405163bae6e2a960e01b815260040160405180910390fd5b60026107dd611f01565b60ff16036107fe5760405163dfc60d8560e01b815260040160405180910390fd5b6108086002611f40565b5f6108156105f1866136d0565b9050610822816001611f88565b610830856101200135611fda565b61084d576040516335856fbd60e21b815260040160405180910390fd5b5f61085f610100870160e08801613394565b6001600160a01b0316336001600160a01b0316146108c65761088760608701604088016136db565b63ffffffff1615806108965750845b156108b4576040516372b6e1c360e11b815260040160405180910390fd5b6108bf86600161207b565b90506108ca565b5a90505b6108d586838361210d565b156108ea576108e58260026121e0565b6109a1565b8415610988576108fb8260036121e0565b6109166d7369676e616c5f7365727669636560901b5f611cd9565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af115801561095e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098291906136f4565b506109a1565b60405163161e3ead60e01b815260040160405180910390fd5b50506109ad6001611f40565b50505050565b6109bb61229d565b5f54600290610100900460ff161580156109db57505f5460ff8083169116105b610a005760405162461bcd60e51b81526004016109f79061370b565b60405180910390fd5b5f805460fb805467ffffffffffffffff1916905560ff82815561010083815561ff001991851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820152610ad060c0840160a08501613394565b6001600160a01b038116610af75760405163538ba4f960e01b815260040160405180910390fd5b610b08610100850160e08601613394565b6001600160a01b038116610b2f5760405163538ba4f960e01b815260040160405180910390fd5b610b3f60e0860160c08701613538565b6001600160401b0381161580610b5d575046816001600160401b0316145b15610b7b57604051631c6c777560e31b815260040160405180910390fd5b610b8f60c954610100900460ff1660021490565b15610bad5760405163bae6e2a960e01b815260040160405180910390fd5b6002610bb7611f01565b60ff1603610bd85760405163dfc60d8560e01b815260040160405180910390fd5b610be26002611f40565b610bf260608701604088016136db565b63ffffffff165f03610c3a57610c0e6040870160208801613538565b6001600160401b031615610c355760405163c9f5178760e01b815260040160405180910390fd5b610c63565b610c44865f61207b565b5f03610c63576040516308c2ad5360e01b815260040160405180910390fd5b5f610c7761050b60e0890160c08a01613538565b50905080610c9857604051631c6c777560e31b815260040160405180910390fd5b34610ca96040890160208a01613538565b610cc1906001600160401b03166101208a013561376d565b14610cdf57604051634ac2abdf60e11b815260040160405180910390fd5b610ce8876136d0565b60fb8054919650600160401b9091046001600160401b0316906008610d0c83613780565b82546101009290920a6001600160401b03818102199093169183160217909155908116865233606087015246166080860152610d4785611d46565b9550857fe33fd33b4f45b95b1c196242240c5b5233129d724b578f95b66ce8d8aae9351786604051610d7991906137a5565b60405180910390a2610d9c6d7369676e616c5f7365727669636560901b5f611cd9565b6001600160a01b03166366ca2bc0876040518263ffffffff1660e01b8152600401610dc991815260200190565b6020604051808303815f875af1158015610de5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e0991906136f4565b5050610e156001611f40565b505050915091565b5f80610e3360c954610100900460ff1660021490565b15610e515760405163bae6e2a960e01b815260040160405180910390fd5b6002610e5b611f01565b60ff1603610e7c5760405163dfc60d8560e01b815260040160405180910390fd5b610e866002611f40565b5f5a905046610e9b60e0880160c08901613538565b6001600160401b031614610ec257604051631c6c777560e31b815260040160405180910390fd5b610ed260a0870160808801613538565b6001600160401b03161580610efe575046610ef360a0880160808901613538565b6001600160401b0316145b15610f1c57604051631c6c777560e31b815260040160405180910390fd5b610f2c60608701604088016136db565b63ffffffff16158015610f615750610f4b610100870160e08801613394565b6001600160a01b0316336001600160a01b031614155b15610f7f576040516372b6e1c360e11b815260040160405180910390fd5b5f610f8c6105f1886136d0565b9050610f98815f611f88565b5f610fb46d7369676e616c5f7365727669636560901b5f611cd9565b604080516060810182525f8082529181019190915263ffffffff88166020820152909150610ff48284610fed60a08d0160808e01613538565b8b8b6122f7565b63ffffffff1660408083019190915261103390611016908b0160208c01613538565b61102e906001600160401b03166101208c013561376d565b611fda565b611086576110486101008a0160e08b01613394565b6001600160a01b0316336001600160a01b031614611079576040516335856fbd60e21b815260040160405180910390fd5b600195506003945061129d565b5f6110918a846123a2565b156110aa5750600295506001945061012089013561110f565b5f6110bc6101008c0160e08d01613394565b6001600160a01b0316336001600160a01b0316146110e4576110df8b600161207b565b6110e6565b5a5b90506110f38b868361210d565b1561110457600297505f965061110d565b60019750600296505b505b61111f60408b0160208c01613538565b6001600160401b0316156112735761113d60408b0160208c01613538565b611150906001600160401b03168261376d565b90506111636101008b0160e08c01613394565b6001600160a01b0316336001600160a01b031614158015611198575061118f60608b0160408c016136db565b63ffffffff1615155b1561127357604082015163ffffffff16614e20025a86036201d4c00163ffffffff9081168085525f9183916111d09183919061249916565b0390505f6111e460608e0160408f016136db565b63ffffffff168d60200160208101906111fd9190613538565b6001600160401b0316830281611215576112156137b7565b0490505f48830290505f6112598f60200160208101906112359190613538565b6001600160401b0316848410156112515784840160011c611253565b845b906124ae565b9586900395905061126d33826188b86124c2565b50505050505b61129b816188b861128b6101008e0160e08f01613394565b6001600160a01b031691906124c2565b505b6112a783876121e0565b827fdaa934be05606f60ac49cd6e2ca4fbb3a5c15680dd3304880ea6abb590486e3d8a836040516112d992919061395e565b60405180910390a2505050506112ef6001611f40565b935093915050565b5f6002611302611f01565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670020000000000000000000000000000000011630036113535760405162461bcd60e51b81526004016109f7906139a0565b7f00000000000000000000000001670020000000000000000000000000000000016001600160a01b0316611385612505565b6001600160a01b0316146113ab5760405162461bcd60e51b81526004016109f7906139ec565b6113b481612520565b604080515f808252602082019092526113cf91839190612528565b50565b5f6113de848484612692565b90505b9392505050565b6113f0612783565b6113fa335f612813565b565b6001600160a01b037f00000000000000000000000001670020000000000000000000000000000000011630036114445760405162461bcd60e51b81526004016109f7906139a0565b7f00000000000000000000000001670020000000000000000000000000000000016001600160a01b0316611476612505565b6001600160a01b03161461149c5760405162461bcd60e51b81526004016109f7906139ec565b6114a582612520565b6114b182826001612528565b5050565b5f306001600160a01b037f000000000000000000000000016700200000000000000000000000000000000116146115545760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016109f7565b505f80516020613c118339815191525b90565b5f4661157960a0860160808701613538565b6001600160401b03161461158e57505f6113e1565b6113de6115ac6d7369676e616c5f7365727669636560901b5f611cd9565b6115bb6106586105f1886136d0565b6115cb60e0880160c08901613538565b86866128c0565b5f466115e460a0840160808501613538565b6001600160401b0316146115f957505f919050565b6116146d7369676e616c5f7365727669636560901b5f611cd9565b6001600160a01b03166332676bc63061162f6105f1866136d0565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015611676573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061169a9190613a38565b92915050565b6116a861229d565b6113fa5f612942565b60655433906001600160a01b0316811461171f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016109f7565b6113cf81612942565b806001600160a01b0381166117505760405163538ba4f960e01b815260040160405180910390fd5b6040516317066a5760e21b81523060048201526001600160a01b03831690635c19a95c906024015f604051808303815f87803b15801561178e575f80fd5b505af11580156117a0573d5f803e3d5ffd5b505050505050565b6117b061295b565b6113fa336001612813565b5f6117c4612505565b905090565b5f806117e0836562726964676560d01b60016113d2565b6001600160a01b038116151594909350915050565b61180560e0820160c08301613538565b46816001600160401b03161461182e57604051631c6c777560e31b815260040160405180910390fd5b61183e60a0830160808401613538565b6001600160401b038116158061185c575046816001600160401b0316145b1561187a57604051631c6c777560e31b815260040160405180910390fd5b61188e60c954610100900460ff1660021490565b156118ac5760405163bae6e2a960e01b815260040160405180910390fd5b60026118b6611f01565b60ff16036118d75760405163dfc60d8560e01b815260040160405180910390fd5b6118e16002611f40565b6118f2610100840160e08501613394565b6001600160a01b0316336001600160a01b031614611923576040516372b6e1c360e11b815260040160405180910390fd5b5f6119306105f1856136d0565b905061193d816001611f88565b6119488160036121e0565b6119636d7369676e616c5f7365727669636560901b5f611cd9565b60405163019b28af60e61b81526003831860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156119ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119cf91906136f4565b50506119db6001611f40565b505050565b6119f060a0840160808501613538565b46816001600160401b031614611a1957604051631c6c777560e31b815260040160405180910390fd5b611a2960e0850160c08601613538565b6001600160401b0381161580611a47575046816001600160401b0316145b15611a6557604051631c6c777560e31b815260040160405180910390fd5b611a7960c954610100900460ff1660021490565b15611a975760405163bae6e2a960e01b815260040160405180910390fd5b6002611aa1611f01565b60ff1603611ac25760405163dfc60d8560e01b815260040160405180910390fd5b611acc6002611f40565b5f611ad96105f1876136d0565b9050611ae5815f611f88565b5f611b016d7369676e616c5f7365727669636560901b5f611cd9565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611b4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b719190613a38565b611b8e5760405163ab035ad560e01b815260040160405180910390fd5b611bad8160038418611ba660e08b0160c08c01613538565b89896122f7565b50611bb98260046121e0565b611bc7876101200135611fda565b611be4576040516335856fbd60e21b815260040160405180910390fd5b611c0d62bc399d60e11b611bfe60808a0160608b01613394565b6001600160a01b0316906129cc565b15611caa57611c2c8230611c2760a08b0160808c01613538565b612a59565b611c3c6080880160608901613394565b6001600160a01b0316630178733a88610120013589856040518463ffffffff1660e01b8152600401611c6f929190613a53565b5f604051808303818588803b158015611c86575f80fd5b505af1158015611c98573d5f803e3d5ffd5b5050505050611ca5612b2a565b611cc6565b611cc66101208801356188b861128b60c08b0160a08c01613394565b5050611cd26001611f40565b5050505050565b5f6113e1468484612692565b5f46611cf760e0860160c08701613538565b6001600160401b031614611d0c57505f6113e1565b6113de611d2a6d7369676e616c5f7365727669636560901b5f611cd9565b611d366105f1876136d0565b6115cb60a0880160808901613538565b5f81604051602001611d589190613a74565b604051602081830303815290604052805190602001209050919050565b604080516060810182525f8082526020820181905291810191909152611d99612b4f565b80519091501580611dab575080515f19145b1561156457604051635ceed17360e01b815260040160405180910390fd5b5f54610100900460ff1615808015611de757505f54600160ff909116105b80611e005750303b158015611e0057505f5460ff166001145b611e1c5760405162461bcd60e51b81526004016109f79061370b565b5f805460ff191660011790558015611e3d575f805461ff0019166101001790555b611e478383612c49565b80156119db575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b611e9861229d565b606580546001600160a01b0383166001600160a01b03199091168117909155611ec96033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f611f0b46612c83565b15611f3657507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b611f4946612c83565b15611f7457807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b806004811115611f9a57611f9a61331d565b5f83815260fc602052604090205460ff166004811115611fbc57611fbc61331d565b146114b1576040516319d893ad60e21b815260040160405180910390fd5b5f80611ff76c38bab7ba30afb6b0b730b3b2b960991b6001611cd9565b90506001600160a01b0381166120105750600192915050565b6040516315c638fb60e31b81525f6004820152602481018490526001600160a01b0382169063ae31c7d8906044015f604051808303815f87803b158015612055575f80fd5b505af1925050508015612066575060015b61207257505f92915050565b50600192915050565b5f8061209f61208e610140860186613aaa565b6101000160041c620c350001919050565b63ffffffff169050806120d06120bb60608701604088016136db565b63ffffffff168361249990919063ffffffff16565b039150508180156120ef57508060065a6120eb90603f613aec565b901c105b1561169a57604051635fbdff7360e01b815260040160405180910390fd5b5f3061211f6080860160608701613394565b6001600160a01b03160361213557612135613b03565b815f0361214357505f6113e1565b612167836121576080870160608801613394565b611c2760a0880160808901613538565b6121d66101208501358361217f610140880188613aaa565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121c59250505061012089016101008a01613394565b6001600160a01b0316929190612cb0565b90506113e1612b2a565b8060048111156121f2576121f261331d565b5f83815260fc602052604090205460ff1660048111156122145761221461331d565b03612232576040516319d893ad60e21b815260040160405180910390fd5b5f82815260fc60205260409020805482919060ff1916600183600481111561225c5761225c61331d565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b25756348260405161229191906133c6565b60405180910390a25050565b6033546001600160a01b031633146113fa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109f7565b5f856001600160a01b031663910af6ed8561231c876562726964676560d01b5f6113d2565b8887876040518663ffffffff1660e01b815260040161233f959493929190613b17565b6020604051808303815f875af1925050508015612379575060408051601f3d908101601f19168201909252612376918101906136f4565b60015b612396576040516314504c7360e31b815260040160405180910390fd5b90505b95945050505050565b5f806123b661012085016101008601613394565b6001600160a01b0316036123cc5750600161169a565b306123df61012085016101008601613394565b6001600160a01b0316036123f55750600161169a565b6001600160a01b03821661241161012085016101008601613394565b6001600160a01b0316036124275750600161169a565b6004612437610140850185613aaa565b90501015801561246e5750637f07c94760e01b612458610140850185613aaa565b61246191613b4d565b6001600160e01b03191614155b80156113e157506113e161248a61012085016101008601613394565b6001600160a01b03163b151590565b5f8183116124a757816113e1565b5090919050565b5f8183116124bc57826113e1565b50919050565b815f036124ce57505050565b6124e883838360405180602001604052805f815250612cb0565b6119db57604051634c67134d60e11b815260040160405180910390fd5b5f80516020613c11833981519152546001600160a01b031690565b6113cf61229d565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561255b576119db83612ced565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156125b5575060408051601f3d908101601f191682019092526125b2918101906136f4565b60015b6126185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016109f7565b5f80516020613c1183398151915281146126865760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016109f7565b506119db838383612d88565b6097545f906001600160a01b0316806126be57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa158015612710573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127349190613b7d565b91508215801561274b57506001600160a01b038216155b1561277b57604051632b0d65db60e01b81526001600160401b0386166004820152602481018590526044016109f7565b509392505050565b61279760c954610100900460ff1660021490565b6127b45760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6033546001600160a01b038381169116148061285b57506128466d636861696e5f7761746368646f6760901b6001611cd9565b6001600160a01b0316826001600160a01b0316145b15612864575050565b80801561289e57506128896e6272696467655f7761746368646f6760881b6001611cd9565b6001600160a01b0316826001600160a01b0316145b156128a7575050565b604051630d85cccf60e11b815260040160405180910390fd5b5f856001600160a01b031663ce9d0820856128e5876562726964676560d01b5f6113d2565b8887876040518663ffffffff1660e01b8152600401612908959493929190613b17565b5f6040518083038186803b15801561291e575f80fd5b505afa92505050801561292f575060015b61293a57505f612399565b506001612399565b606580546001600160a01b03191690556113cf81612dac565b61296f60c954610100900460ff1660021490565b1561298d5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001612809565b5f6001600160a01b0383163b6129e357505f61169a565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015612a4d575060408051601f3d908101601f19168201909252612a4a91810190613a38565b60015b1561169a579392505050565b612a6246612c83565b15612ad557827fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2b95d817fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2ba5d807fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2bb5d505050565b604080516060810182528481526001600160a01b0393909316602084018190526001600160401b0392909216920182905260fd9290925560fe80546001600160e01b031916909217600160a01b909102179055565b612b3346612c83565b15612b43576113fa5f8080612a59565b6113fa5f198080612a59565b604080516060810182525f8082526020820181905291810191909152612b7446612c83565b15612c0d5750604080516060810182527fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2b95c81526001600160a01b037fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2ba5c1660208201526001600160401b037fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2bb5c169181019190915290565b506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b806001600160a01b038116612c715760405163538ba4f960e01b815260040160405180910390fd5b612c7a83612dfd565b6119db82612e5b565b5f6001821480612c94575061426882145b80612ca1575062aa36a782145b8061169a575061169a82612ecb565b5f6001600160a01b038516612cd857604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b6001600160a01b0381163b612d5a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016109f7565b5f80516020613c1183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612d9183612ee2565b5f82511180612d9d5750805b156119db576109ad8383612f21565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612e235760405162461bcd60e51b81526004016109f790613b98565b612e2b612f46565b612e496001600160a01b03821615612e435781612942565b33612942565b5060c9805461ff001916610100179055565b5f54610100900460ff16612e815760405162461bcd60e51b81526004016109f790613b98565b6001600160401b03461115612ea95760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c821015801561169a575050617e90101590565b612eeb81612ced565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606113e18383604051806060016040528060278152602001613c3160279139612f6c565b5f54610100900460ff166113fa5760405162461bcd60e51b81526004016109f790613b98565b60605f80856001600160a01b031685604051612f889190613be3565b5f60405180830381855af49150503d805f8114612fc0576040519150601f19603f3d011682016040523d82523d5f602084013e612fc5565b606091505b5091509150612fd686838387612fe0565b9695505050505050565b6060831561304e5782515f03613047576001600160a01b0385163b6130475760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109f7565b5081613058565b6130588383613060565b949350505050565b8151156130705781518083602001fd5b8060405162461bcd60e51b81526004016109f79190613bfe565b5f61016082840312156124bc575f80fd5b80151581146113cf575f80fd5b5f80604083850312156130b9575f80fd5b82356001600160401b038111156130ce575f80fd5b6130da8582860161308a565b92505060208301356130eb8161309b565b809150509250929050565b5f60208284031215613106575f80fd5b81356001600160401b0381111561311b575f80fd5b6130588482850161308a565b5f5b83811015613141578181015183820152602001613129565b50505f910152565b5f8151808452613160816020860160208601613127565b601f01601f19169290920160200192915050565b80516001600160401b031682525f610160602083015161319f60208601826001600160401b03169052565b5060408301516131b7604086018263ffffffff169052565b5060608301516131d260608601826001600160a01b03169052565b5060808301516131ed60808601826001600160401b03169052565b5060a083015161320860a08601826001600160a01b03169052565b5060c083015161322360c08601826001600160401b03169052565b5060e083015161323e60e08601826001600160a01b03169052565b50610100838101516001600160a01b031690850152610120808401519085015261014080840151818601839052612fd683870182613149565b828152604060208201525f6113de6040830184613174565b5f805f604084860312156132a1575f80fd5b83356001600160401b03808211156132b7575f80fd5b6132c38783880161308a565b945060208601359150808211156132d8575f80fd5b818601915086601f8301126132eb575f80fd5b8135818111156132f9575f80fd5b87602082850101111561330a575f80fd5b6020830194508093505050509250925092565b634e487b7160e01b5f52602160045260245ffd5b600581106133415761334161331d565b9052565b604081016133538285613331565b600483106133635761336361331d565b8260208301529392505050565b6001600160a01b03811681146113cf575f80fd5b803561338f81613370565b919050565b5f602082840312156133a4575f80fd5b81356113e181613370565b5f602082840312156133bf575f80fd5b5035919050565b6020810161169a8284613331565b80356001600160401b038116811461338f575f80fd5b5f805f606084860312156133fc575f80fd5b613405846133d4565b925060208401359150604084013561341c8161309b565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b038111828210171561345e5761345e613427565b60405290565b5f82601f830112613473575f80fd5b81356001600160401b038082111561348d5761348d613427565b604051601f8301601f19908116603f011681019082821181831017156134b5576134b5613427565b816040528381528660208588010111156134cd575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f80604083850312156134fd575f80fd5b823561350881613370565b915060208301356001600160401b03811115613522575f80fd5b61352e85828601613464565b9150509250929050565b5f60208284031215613548575f80fd5b6113e1826133d4565b5f8060408385031215613562575f80fd5b8235915060208301356130eb8161309b565b803563ffffffff8116811461338f575f80fd5b5f6101608284031215613598575f80fd5b6135a061343b565b90506135ab826133d4565b81526135b9602083016133d4565b60208201526135ca60408301613574565b60408201526135db60608301613384565b60608201526135ec608083016133d4565b60808201526135fd60a08301613384565b60a082015261360e60c083016133d4565b60c082015261361f60e08301613384565b60e0820152610100613632818401613384565b908201526101208281013590820152610140808301356001600160401b0381111561365b575f80fd5b61366785828601613464565b82840152505092915050565b5f60208284031215613683575f80fd5b81356001600160401b03811115613698575f80fd5b61305884828501613587565b5f80604083850312156136b5575f80fd5b82356136c081613370565b915060208301356130eb81613370565b5f61169a3683613587565b5f602082840312156136eb575f80fd5b6113e182613574565b5f60208284031215613704575f80fd5b5051919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561169a5761169a613759565b5f6001600160401b0380831681810361379b5761379b613759565b6001019392505050565b602081525f6113e16020830184613174565b634e487b7160e01b5f52601260045260245ffd5b5f808335601e198436030181126137e0575f80fd5b83016020810192503590506001600160401b038111156137fe575f80fd5b80360382131561380c575f80fd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f6101606138598461384c856133d4565b6001600160401b03169052565b613865602084016133d4565b6001600160401b0316602085015261387f60408401613574565b63ffffffff16604085015261389660608401613384565b6001600160a01b031660608501526138b0608084016133d4565b6001600160401b031660808501526138ca60a08401613384565b6001600160a01b031660a08501526138e460c084016133d4565b6001600160401b031660c08501526138fe60e08401613384565b6001600160a01b031660e085015261010061391a848201613384565b6001600160a01b0316908501526101208381013590850152610140613941818501856137cb565b83838801526139538488018284613813565b979650505050505050565b608081525f613970608083018561383b565b905063ffffffff808451166020840152806020850151166040840152806040850151166060840152509392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215613a48575f80fd5b81516113e18161309b565b604081525f613a65604083018561383b565b90508260208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f6113e16080830184613174565b5f808335601e19843603018112613abf575f80fd5b8301803591506001600160401b03821115613ad8575f80fd5b60200191503681900382131561380c575f80fd5b808202811582820484141761169a5761169a613759565b634e487b7160e01b5f52600160045260245ffd5b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f613953608083018486613813565b6001600160e01b03198135818116916004851015613b755780818660040360031b1b83161692505b505092915050565b5f60208284031215613b8d575f80fd5b81516113e181613370565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613bf4818460208701613127565b9190910192915050565b602081525f6113e1602083018461314956fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207cc9e2508719d94667269f3155fedd535bcad411958303bab5a16f1f90b69fdb64736f6c63430008180033", + "balance": "0x0" + }, + "0x1670020000000000000000000000000000000001": { + "contractName": "Bridge", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670020000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167002000000000000000000000000000000001" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x033b258556117b43a1e00000" + }, + "0x0167002000000000000000000000000000000002": { + "contractName": "ERC20VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff" + }, + "code": "0x608060405260043610620001df575f3560e01c8063715018a61162000106578063a86f9d9e116200009e578063e07baba6116200006a578063e07baba61462000567578063e30c397814620005a7578063f09a401614620005c6578063f2fde38b14620005ea575f80fd5b8063a86f9d9e14620004d2578063b84d9ffe14620004f6578063caec3e4e146200051c578063d56ad7ac146200054f575f80fd5b80638456cb5911620000de5780638456cb59146200044e5780638abf607714620004655780638da5cb5b146200047c5780639aa8605c146200049b575f80fd5b8063715018a6146200040957806379ba509714620004205780637f07c9471462000437575f80fd5b80633ab76e9f116200017a5780634f1ef28611620001525780634f1ef286146200037557806352d1902d146200038c5780635c975abb14620003a357806367090ccf14620003c5575f80fd5b80633ab76e9f14620003195780633eb6b8cf146200033a5780633f4ba83a146200035e575f80fd5b806306fdde0311620001ba57806306fdde03146200027f5780630ecd8be914620002a15780633075db5614620002de5780633659cfe614620002f5575f80fd5b80630178733a14620001e357806301ffc9a714620001fc578063066fe7b41462000235575b5f80fd5b620001fa620001f436600462003578565b6200060e565b005b34801562000208575f80fd5b50620002206200021a366004620035c1565b620007b6565b60405190151581526020015b60405180910390f35b34801562000241575f80fd5b506200027062000253366004620035ff565b61013060209081525f928352604080842090915290825290205481565b6040519081526020016200022c565b3480156200028b575f80fd5b506a195c98cc8c17dd985d5b1d60aa1b62000270565b348015620002ad575f80fd5b50620002c5620002bf36600462003630565b62000808565b6040516001600160a01b0390911681526020016200022c565b348015620002ea575f80fd5b506200022062000ef8565b34801562000301575f80fd5b50620001fa620003133660046200367c565b62000f0e565b34801562000325575f80fd5b50609754620002c5906001600160a01b031681565b34801562000346575f80fd5b50620002c562000358366004620036bd565b62000fea565b3480156200036a575f80fd5b50620001fa62001002565b620001fa620003863660046200381a565b6200101a565b34801562000398575f80fd5b5062000270620010db565b348015620003af575f80fd5b506200022060c954610100900460ff1660021490565b348015620003d1575f80fd5b50620002c5620003e3366004620035ff565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b34801562000415575f80fd5b50620001fa6200118f565b3480156200042c575f80fd5b50620001fa620011a4565b620001fa620004483660046200386c565b6200121f565b3480156200045a575f80fd5b50620001fa6200137f565b34801562000471575f80fd5b50620002c562001396565b34801562000488575f80fd5b506033546001600160a01b0316620002c5565b348015620004a7575f80fd5b50620004bf620004b93660046200367c565b620013a6565b6040516200022c9594939291906200392d565b348015620004de575f80fd5b50620002c5620004f03660046200398a565b6200150b565b6200050d62000507366004620039b0565b62001519565b6040516200022c9190620039c7565b34801562000528575f80fd5b50620002206200053a3660046200367c565b61012f6020525f908152604090205460ff1681565b3480156200055b575f80fd5b50620002706276a70081565b34801562000573575f80fd5b5060c9546200058e906201000090046001600160401b031681565b6040516001600160401b0390911681526020016200022c565b348015620005b3575f80fd5b506065546001600160a01b0316620002c5565b348015620005d2575f80fd5b50620001fa620005e436600462003ac8565b62001939565b348015620005f6575f80fd5b50620001fa620006083660046200367c565b62001a51565b6200062360c954610100900460ff1660021490565b15620006425760405163bae6e2a960e01b815260040160405180910390fd5b60026200064e62001ac5565b60ff1603620006705760405163dfc60d8560e01b815260040160405180910390fd5b6200067c600262001b07565b6200068662001b52565b505f6200069861014084018462003ae7565b620006a891600490829062003b33565b810190620006b7919062003b5c565b90505f8082806020019051810190620006d1919062003c10565b9350505091505f620006f9838760a0016020810190620006f291906200367c565b8462001c4f565b9050620007276101208701356200071760c0890160a08a016200367c565b6001600160a01b03169062001d01565b6200073960c0870160a088016200367c565b6001600160a01b0316857f3dea0f5955b148debf6212261e03bd80eaf8534bee43780452d16637dcc22dd5856020015184866040516200079a939291906001600160a01b039384168152919092166020820152604081019190915260600190565b60405180910390a350505050620007b2600162001b07565b5050565b5f6001600160e01b0319821662bc399d60e11b1480620007e657506001600160e01b03198216637f07c94760e01b145b806200080257506001600160e01b031982166301ffc9a760e01b145b92915050565b5f6200081362001d0e565b60026200081f62001ac5565b60ff1603620008415760405163dfc60d8560e01b815260040160405180910390fd5b6200084d600262001b07565b6001600160a01b03821615806200088457506001600160a01b038281165f90815261012d6020526040902054600160401b90041615155b15620008a35760405163dc63f98760e01b815260040160405180910390fd5b6001600160a01b0382165f90815261012f602052604090205460ff1615620008de576040516375c42fc160e01b815260040160405180910390fd5b5f61013081620008f2602087018762003d0f565b6001600160401b031681526020019081526020015f205f8560200160208101906200091e91906200367c565b6001600160a01b0316815260208101919091526040015f20549050620009486276a7008262003d41565b421015620009695760405163231d35fb60e11b815260040160405180910390fd5b61012e5f6200097c602087018762003d0f565b6001600160401b031681526020019081526020015f205f856020016020810190620009a891906200367c565b6001600160a01b03908116825260208201929092526040015f2054169150811562000d32576001600160a01b038281165f90815261012d60209081526040808320815160a08101835281546001600160401b0381168252600160401b810490961693810193909352600160e01b90940460ff16908201526001830180549293919260608401919062000a3a9062003d57565b80601f016020809104026020016040519081016040528092919081815260200182805462000a689062003d57565b801562000ab75780601f1062000a8d5761010080835404028352916020019162000ab7565b820191905f5260205f20905b81548152906001019060200180831162000a9957829003601f168201915b5050505050815260200160028201805462000ad29062003d57565b80601f016020809104026020016040519081016040528092919081815260200182805462000b009062003d57565b801562000b4f5780601f1062000b255761010080835404028352916020019162000b4f565b820191905f5260205f20905b81548152906001019060200180831162000b3157829003601f168201915b50505050508152505090508060405160200162000b6d919062003df7565b604051602081830303815290604052805190602001208560405160200162000b96919062003e84565b604051602081830303815290604052805190602001201462000bcb57604051632f9d1d7b60e11b815260040160405180910390fd5b6001600160a01b0383165f90815261012d6020526040812080546001600160e81b03191681559062000c01600183018262003518565b62000c10600283015f62003518565b50506001600160a01b0383165f81815261012f60205260409020805460ff1916600117905562000c489063b8f2e0c560e01b62001d6a565b801562000c6c575062000c6c6001600160a01b03851663b8f2e0c560e01b62001d6a565b1562000d305760405163b8f2e0c560e01b81526001600160a01b0385811660048301525f602483015284169063b8f2e0c5906044015f604051808303815f87803b15801562000cb9575f80fd5b505af115801562000ccc573d5f803e3d5ffd5b505060405163b8f2e0c560e01b81526001600160a01b038681166004830152600160248301528716925063b8f2e0c591506044015f604051808303815f87803b15801562000d18575f80fd5b505af115801562000d2b573d5f803e3d5ffd5b505050505b505b6001600160a01b0383165f90815261012d60205260409020849062000d58828262004046565b5083905061012e5f62000d6f602088018862003d0f565b6001600160401b031681526020019081526020015f205f86602001602081019062000d9b91906200367c565b6001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550426101305f865f01602081019062000df6919062003d0f565b6001600160401b031681526020019081526020015f205f86602001602081019062000e2291906200367c565b6001600160a01b03166001600160a01b031681526020019081526020015f208190555083602001602081019062000e5a91906200367c565b6001600160a01b031662000e72602086018662003d0f565b6001600160401b03167f031d68e1805917560c34a5f55a7dd91bef98f911190ed02cdbb53caedae6c39d848662000ead60608a018a62003ae7565b62000ebc60808c018c62003ae7565b62000ece60608e0160408f016200411b565b60405162000ee3979695949392919062004139565b60405180910390a35062000802600162001b07565b5f600262000f0562001ac5565b60ff1614905090565b6001600160a01b037f000000000000000000000000016700200000000000000000000000000000000216300362000f625760405162461bcd60e51b815260040162000f599062004194565b60405180910390fd5b7f00000000000000000000000001670020000000000000000000000000000000026001600160a01b031662000f9662001dfd565b6001600160a01b03161462000fbf5760405162461bcd60e51b815260040162000f5990620041e0565b62000fca8162001e19565b604080515f8082526020820190925262000fe79183919062001e23565b50565b5f62000ff884848462001f9a565b90505b9392505050565b6200100c62002092565b62001018335f62002124565b565b6001600160a01b037f0000000000000000000000000167002000000000000000000000000000000002163003620010655760405162461bcd60e51b815260040162000f599062004194565b7f00000000000000000000000001670020000000000000000000000000000000026001600160a01b03166200109962001dfd565b6001600160a01b031614620010c25760405162461bcd60e51b815260040162000f5990620041e0565b620010cd8262001e19565b620007b28282600162001e23565b5f306001600160a01b037f000000000000000000000000016700200000000000000000000000000000000216146200117c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000f59565b505f8051602062004d1883398151915290565b6200119962001d0e565b620010185f6200212e565b60655433906001600160a01b03168114620012145760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840162000f59565b62000fe7816200212e565b6200123460c954610100900460ff1660021490565b15620012535760405163bae6e2a960e01b815260040160405180910390fd5b60026200125f62001ac5565b60ff1603620012815760405163dfc60d8560e01b815260040160405180910390fd5b6200128d600262001b07565b5f8080806200129f8587018762004239565b93509350935093505f620012b262002149565b9050620012bf8362002271565b5f620012cd86858562001c4f565b9050620012e46001600160a01b0385163462001d01565b836001600160a01b0316856001600160a01b0316835f01517f75a051823424fc80e92556c41cb0ad977ae1dcb09c68a9c38acab86b11a69f8985604001518a6020015186896040516200136594939291906001600160401b039490941684526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a4505050505050620007b2600162001b07565b62001389620022af565b6200101833600162002124565b5f620013a162001dfd565b905090565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b84046001600160a01b031693600160e01b900460ff16929091620013f09062003d57565b80601f01602080910402602001604051908101604052809291908181526020018280546200141e9062003d57565b80156200146d5780601f1062001443576101008083540402835291602001916200146d565b820191905f5260205f20905b8154815290600101906020018083116200144f57829003601f168201915b505050505090806002018054620014849062003d57565b80601f0160208091040260200160405190810160405280929190818152602001828054620014b29062003d57565b8015620015015780601f10620014d75761010080835404028352916020019162001501565b820191905f5260205f20905b815481529060010190602001808311620014e357829003601f168201915b5050505050905085565b5f62000ffb46848462001f9a565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201929092526101408101919091526200158860c954610100900460ff1660021490565b15620015a75760405163bae6e2a960e01b815260040160405180910390fd5b6002620015b362001ac5565b60ff1603620015d55760405163dfc60d8560e01b815260040160405180910390fd5b620015e1600262001b07565b8160c001355f036200160657604051634299323b60e11b815260040160405180910390fd5b5f6200161960a08401608085016200367c565b6001600160a01b03160362001641576040516303f8a7d360e01b815260040160405180910390fd5b61012f5f6200165760a08501608086016200367c565b6001600160a01b0316815260208101919091526040015f205460ff161562001692576040516375c42fc160e01b815260040160405180910390fd5b5f805f620016a08562002323565b6040805161016081019091525f808252939650919450925060208101620016ce6080890160608a0162003d0f565b6001600160401b03168152602001620016ee60c0890160a08a016200434a565b63ffffffff1681525f60208083018290526040830191909152336060830152608090910190620017219089018962003d0f565b6001600160401b031681526020015f6001600160a01b03168860200160208101906200174e91906200367c565b6001600160a01b03160362001764573362001776565b620017766040890160208a016200367c565b6001600160a01b03168152602090810190620017b1906200179a908a018a62003d0f565b6a195c98cc8c17dd985d5b1d60aa1b5b5f62000fea565b6001600160a01b03168152602001620017d16080890160608a0162003d0f565b620017e6906001600160401b03163462004368565b815260200185905290505f620018066562726964676560d01b826200150b565b6001600160a01b0316631bdb003734846040518363ffffffff1660e01b8152600401620018349190620039c7565b5f6040518083038185885af115801562001850573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f191682016040526200187a91908101906200438b565b965090506200189060608801604089016200367c565b60a08701516001600160a01b039182169116827feb8a69f21b7a981e25f90d9f1e2ab7fa5bdbfddbc0ac160344145fc5caa6ddd2620018d360208c018c62003d0f565b6020890151620018ea60a08e0160808f016200367c565b604080516001600160401b0390941684526001600160a01b0392831660208501529116908201526060810188905260800160405180910390a4505050505062001934600162001b07565b919050565b5f54610100900460ff16158080156200195857505f54600160ff909116105b80620019735750303b1580156200197357505f5460ff166001145b620019d85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000f59565b5f805460ff191660011790558015620019fa575f805461ff0019166101001790555b62001a068383620027f9565b801562001a4c575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b62001a5b62001d0e565b606580546001600160a01b0383166001600160a01b0319909116811790915562001a8d6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f62001ad14662002838565b1562001afd57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b62001b124662002838565b1562001b3e57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b62001b858160016200150b565b6001600160a01b0316336001600160a01b03161462001bb757604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001bf4573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001c1a9190620044c0565b60208101519092506001600160a01b0316331462001c4b57604051632583296b60e01b815260040160405180910390fd5b5090565b5f46845f01516001600160401b03160362001c865750602083015162001c806001600160a01b03821684846200286a565b62001cf5565b62001c9184620028cf565b6040516340c10f1960e01b81526001600160a01b03858116600483015260248201859052919250908216906340c10f19906044015f604051808303815f87803b15801562001cdd575f80fd5b505af115801562001cf0573d5f803e3d5ffd5b505050505b62000ffb818362002914565b620007b282825a620029a8565b6033546001600160a01b03163314620010185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000f59565b5f6001600160a01b0383163b62001d8357505f62000802565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa92505050801562001df0575060408051601f3d908101601f1916820190925262001ded918101906200452e565b60015b1562000802579392505050565b5f8051602062004d18833981519152546001600160a01b031690565b62000fe762001d0e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001e595762001a4c83620029ef565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001eb6575060408051601f3d908101601f1916820190925262001eb3918101906200454c565b60015b62001f1b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000f59565b5f8051602062004d18833981519152811462001f8c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000f59565b5062001a4c83838362002a8d565b6097545f906001600160a01b03168062001fc757604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa1580156200201a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002040919062004564565b9150821580156200205857506001600160a01b038216155b156200208a57604051632b0d65db60e01b81526001600160401b03861660048201526024810185905260440162000f59565b509392505050565b620020a760c954610100900460ff1660021490565b620020c55760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b620007b262001d0e565b606580546001600160a01b031916905562000fe78162002abd565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b6200217c8160016200150b565b6001600160a01b0316336001600160a01b031614620021ae57604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015620021eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620022119190620044c0565b91505f620022338360400151620017aa6a195c98cc8c17dd985d5b1d60aa1b90565b9050806001600160a01b031683602001516001600160a01b0316146200226c57604051632583296b60e01b815260040160405180910390fd5b505090565b6001600160a01b03811615806200229057506001600160a01b03811630145b1562000fe757604051635b50f3f960e01b815260040160405180910390fd5b620022c460c954610100900460ff1660021490565b15620022e35760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016200211a565b6040805160a0810182525f8082526020820181905291810191909152606081810181905260808201819052905f8061012d816200236760a08801608089016200367c565b6001600160a01b03908116825260208201929092526040015f208054909250600160401b90041615620025b7576040805160a08101825282546001600160401b0381168252600160401b81046001600160a01b03166020830152600160e01b900460ff169181019190915260018201805483916060840191620023ea9062003d57565b80601f0160208091040260200160405190810160405280929190818152602001828054620024189062003d57565b8015620024675780601f106200243d5761010080835404028352916020019162002467565b820191905f5260205f20905b8154815290600101906020018083116200244957829003601f168201915b50505050508152602001600282018054620024829062003d57565b80601f0160208091040260200160405190810160405280929190818152602001828054620024b09062003d57565b8015620024ff5780601f10620024d557610100808354040283529160200191620024ff565b820191905f5260205f20905b815481529060010190602001808311620024e157829003601f168201915b50505050508152505092506200253c33308760c001358860800160208101906200252a91906200367c565b6001600160a01b031692919062002b0e565b6200254e60a08601608087016200367c565b604051630852cd8d60e31b815260c087013560048201526001600160a01b0391909116906342966c68906024015f604051808303815f87803b15801562002593575f80fd5b505af1158015620025a6573d5f803e3d5ffd5b505050508460c00135915062002773565b6040518060a00160405280466001600160401b03168152602001866080016020810190620025e691906200367c565b6001600160a01b03168152602001620026106200260a60a0890160808a016200367c565b62002b48565b60ff168152602001620026346200262e60a0890160808a016200367c565b62002c0d565b8152602001620026556200264f60a0890160808a016200367c565b62002cbf565b905292505f6200266c60a08701608088016200367c565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa158015620026b4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620026da91906200454c565b9050620026f76001600160a01b038316333060c08b013562002b0e565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa1580156200273c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200276291906200454c565b6200276e919062004368565b935050505b30637f07c94784336200278d60608a0160408b016200367c565b86604051602001620027a3949392919062004582565b60408051601f1981840301815290829052620027c291602401620045b9565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050509350509193909250565b806001600160a01b038116620028225760405163538ba4f960e01b815260040160405180910390fd5b6200282d8362002d07565b62001a4c8262002d6e565b5f60018214806200284a575061426882145b8062002858575062aa36a782145b80620008025750620008028262002de2565b6040516001600160a01b03831660248201526044810182905262001a4c90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262002dfa565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b03908116855292529091205416806200193457620008028262002ed4565b5f620029326c38bab7ba30afb6b0b730b3b2b960991b60016200150b565b90506001600160a01b0381161562001a4c576040516315c638fb60e31b81526001600160a01b0384811660048301526024820184905282169063ae31c7d8906044015f604051808303815f87803b1580156200298c575f80fd5b505af11580156200299f573d5f803e3d5ffd5b50505050505050565b815f03620029b557505050565b620029d183838360405180602001604052805f815250620030e6565b62001a4c57604051634c67134d60e11b815260040160405180910390fd5b6001600160a01b0381163b62002a5e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000f59565b5f8051602062004d1883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b62002a988362003124565b5f8251118062002aa55750805b1562001a4c5762002ab7838362003165565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040516001600160a01b038085166024830152831660448201526064810182905262002ab79085906323b872dd60e01b9060840162002897565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290515f91829182916001600160a01b0386169162002b8f9190620045cd565b5f60405180830381855afa9150503d805f811462002bc9576040519150601f19603f3d011682016040523d82523d5f602084013e62002bce565b606091505b509150915081801562002be2575080516020145b62002bef57601262002c05565b8080602001905181019062002c059190620045ea565b949350505050565b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b17905290516060915f9182916001600160a01b0386169162002c559190620045cd565b5f60405180830381855afa9150503d805f811462002c8f576040519150601f19603f3d011682016040523d82523d5f602084013e62002c94565b606091505b50915091508162002cb45760405180602001604052805f81525062002c05565b62002c05816200318d565b60408051600481526024810182526020810180516001600160e01b03166306fdde0360e01b17905290516060915f9182916001600160a01b0386169162002c559190620045cd565b5f54610100900460ff1662002d305760405162461bcd60e51b815260040162000f599062004608565b62002d3a620032e0565b62002d5c6001600160a01b0382161562002d5557816200212e565b336200212e565b5060c9805461ff001916610100179055565b5f54610100900460ff1662002d975760405162461bcd60e51b815260040162000f599062004608565b6001600160401b0346111562002dc05760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c821015801562000802575050617e90101590565b5f62002e50826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620033099092919063ffffffff16565b905080515f148062002e7357508080602001905181019062002e7391906200452e565b62001a4c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000f59565b5f8062002ee96033546001600160a01b031690565b60975460208501518551604080880151606089015160808a0151925162002f2197966001600160a01b03169594939060240162004653565b60408051601f198184030181529190526020810180516001600160e01b031663bb86ef9360e01b179052905062002f696c0627269646765645f657263323609c1b5f6200150b565b8160405162002f789062003554565b62002f85929190620046c2565b604051809103905ff08015801562002f9f573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d602090815260409182902087518154928901519389015160ff16600160e01b0260ff60e01b1994909516600160401b026001600160e01b03199093166001600160401b03909116179190911791909116919091178155606085015191935084916001820190620030239082620046e7565b50608082015160028201906200303a9082620046e7565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b0319168885169081179091559151885160608a015160808b0151848c01519451959850929095169516937fb6b427556e8cb0ebf9175da4bc48c64c4f56e44cfaf8c3ab5ebf8e2ea130907993620030d89391929190620047b3565b60405180910390a450919050565b5f6001600160a01b0385166200310f57604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b6200312f81620029ef565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000ffb838360405180606001604052806027815260200162004d386027913962003319565b60606040825110620031af5781806020019051810190620008029190620047ef565b8151602003620032cd575f5b602081108015620031ee5750828181518110620031dc57620031dc62004824565b01602001516001600160f81b03191615155b156200320757620031ff8162004838565b9050620031bb565b805f036200322457505060408051602081019091525f8152919050565b5f816001600160401b0381111562003240576200324062003701565b6040519080825280601f01601f1916602001820160405280156200326b576020820181803683370190505b5090505f5b828110156200208a578481815181106200328e576200328e62004824565b602001015160f81c60f81b828281518110620032ae57620032ae62004824565b60200101906001600160f81b03191690815f1a90535060010162003270565b505060408051602081019091525f815290565b5f54610100900460ff16620010185760405162461bcd60e51b815260040162000f599062004608565b606062000ff884845f8562003393565b60605f80856001600160a01b031685604051620033379190620045cd565b5f60405180830381855af49150503d805f811462003371576040519150601f19603f3d011682016040523d82523d5f602084013e62003376565b606091505b5091509150620033898683838762003472565b9695505050505050565b606082471015620033f65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000f59565b5f80866001600160a01b03168587604051620034139190620045cd565b5f6040518083038185875af1925050503d805f81146200344f576040519150601f19603f3d011682016040523d82523d5f602084013e62003454565b606091505b5091509150620034678783838762003472565b979650505050505050565b60608315620034e55782515f03620034dd576001600160a01b0385163b620034dd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000f59565b508162002c05565b62002c058383815115620034fc5781518083602001fd5b8060405162461bcd60e51b815260040162000f599190620045b9565b508054620035269062003d57565b5f825580601f1062003536575050565b601f0160209004905f5260205f209081019062000fe7919062003562565b6104c4806200485483390190565b5b8082111562001c4b575f815560010162003563565b5f80604083850312156200358a575f80fd5b82356001600160401b03811115620035a0575f80fd5b83016101608186031215620035b3575f80fd5b946020939093013593505050565b5f60208284031215620035d2575f80fd5b81356001600160e01b03198116811462000ffb575f80fd5b6001600160a01b038116811462000fe7575f80fd5b5f806040838503121562003611575f80fd5b8235915060208301356200362581620035ea565b809150509250929050565b5f806040838503121562003642575f80fd5b82356001600160401b0381111562003658575f80fd5b830160a081860312156200366a575f80fd5b915060208301356200362581620035ea565b5f602082840312156200368d575f80fd5b813562000ffb81620035ea565b6001600160401b038116811462000fe7575f80fd5b801515811462000fe7575f80fd5b5f805f60608486031215620036d0575f80fd5b8335620036dd816200369a565b9250602084013591506040840135620036f681620036af565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b03811182821017156200373a576200373a62003701565b60405290565b60405161016081016001600160401b03811182821017156200373a576200373a62003701565b604051601f8201601f191681016001600160401b038111828210171562003791576200379162003701565b604052919050565b5f6001600160401b03821115620037b457620037b462003701565b50601f01601f191660200190565b5f82601f830112620037d2575f80fd5b8135620037e9620037e38262003799565b62003766565b818152846020838601011115620037fe575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156200382c575f80fd5b82356200383981620035ea565b915060208301356001600160401b0381111562003854575f80fd5b6200386285828601620037c2565b9150509250929050565b5f80602083850312156200387e575f80fd5b82356001600160401b038082111562003895575f80fd5b818501915085601f830112620038a9575f80fd5b813581811115620038b8575f80fd5b866020828501011115620038ca575f80fd5b60209290920196919550909350505050565b5f5b83811015620038f8578181015183820152602001620038de565b50505f910152565b5f815180845262003919816020860160208601620038dc565b601f01601f19169290920160200192915050565b6001600160401b03861681526001600160a01b038516602082015260ff8416604082015260a0606082018190525f906200396a9083018562003900565b82810360808401526200397e818562003900565b98975050505050505050565b5f80604083850312156200399c575f80fd5b8235915060208301356200362581620036af565b5f60e08284031215620039c1575f80fd5b50919050565b60208152620039e26020820183516001600160401b03169052565b5f6020830151620039fe60408401826001600160401b03169052565b50604083015163ffffffff811660608401525060608301516001600160a01b03811660808401525060808301516001600160401b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160401b03811660e08401525060e083015161010062003a82818501836001600160a01b03169052565b840151905061012062003a9f848201836001600160a01b03169052565b8401516101408481019190915284015161016080850152905062002c0561018084018262003900565b5f806040838503121562003ada575f80fd5b82356200366a81620035ea565b5f808335601e1984360301811262003afd575f80fd5b8301803591506001600160401b0382111562003b17575f80fd5b60200191503681900382131562003b2c575f80fd5b9250929050565b5f808585111562003b42575f80fd5b8386111562003b4f575f80fd5b5050820193919092039150565b5f6020828403121562003b6d575f80fd5b81356001600160401b0381111562003b83575f80fd5b62002c0584828501620037c2565b805162001934816200369a565b80516200193481620035ea565b60ff8116811462000fe7575f80fd5b8051620019348162003bab565b5f82601f83011262003bd7575f80fd5b815162003be8620037e38262003799565b81815284602083860101111562003bfd575f80fd5b62002c05826020830160208701620038dc565b5f805f806080858703121562003c24575f80fd5b84516001600160401b038082111562003c3b575f80fd5b9086019060a0828903121562003c4f575f80fd5b62003c5962003715565b825162003c66816200369a565b8152602083015162003c7881620035ea565b602082015262003c8b6040840162003bba565b604082015260608301518281111562003ca2575f80fd5b62003cb08a82860162003bc7565b60608301525060808301518281111562003cc8575f80fd5b62003cd68a82860162003bc7565b608083015250955062003cef9150506020860162003b9e565b925062003cff6040860162003b9e565b6060959095015193969295505050565b5f6020828403121562003d20575f80fd5b813562000ffb816200369a565b634e487b7160e01b5f52601160045260245ffd5b8082018082111562000802576200080262003d2d565b600181811c9082168062003d6c57607f821691505b602082108103620039c157634e487b7160e01b5f52602260045260245ffd5b6001600160401b03815116825260018060a01b03602082015116602083015260ff60408201511660408301525f606082015160a0606085015262003dd360a085018262003900565b90506080830151848203608086015262003dee828262003900565b95945050505050565b602081525f62000ffb602083018462003d8b565b8035620019348162003bab565b5f808335601e1984360301811262003e2e575f80fd5b83016020810192503590506001600160401b0381111562003e4d575f80fd5b80360382131562003b2c575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f823562003e96816200369a565b6001600160401b038116602084015250602083013562003eb681620035ea565b6001600160a01b031660408381019190915283013562003ed68162003bab565b60ff811660608401525062003eef606084018462003e18565b60a0608085015262003f0660c08501828462003e5c565b91505062003f18608085018562003e18565b848303601f190160a08601526200338983828462003e5c565b601f82111562001a4c57805f5260205f20601f840160051c8101602085101562003f585750805b601f840160051c820191505b8181101562003f79575f815560010162003f64565b5050505050565b6001600160401b0383111562003f9a5762003f9a62003701565b62003fb28362003fab835462003d57565b8362003f31565b5f601f84116001811462003fe6575f851562003fce5750838201355b5f19600387901b1c1916600186901b17835562003f79565b5f83815260208120601f198716915b8281101562004017578685013582556020948501946001909201910162003ff5565b508682101562004034575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b813562004053816200369a565b6001600160401b03811690508154816001600160401b0319821617835560208401356200408081620035ea565b68010000000000000000600160e01b03604091821b166001600160e01b0319831684178117855590850135620040b68162003bab565b60ff60e01b8160e01b1660ff60e01b19851662ffffff60e81b851617831717855550505050620040ea606083018362003ae7565b620040fa81836001860162003f80565b50506200410b608083018362003ae7565b62002ab781836002860162003f80565b5f602082840312156200412c575f80fd5b813562000ffb8162003bab565b6001600160a01b0388811682528716602082015260a0604082018190525f9062004167908301878962003e5c565b82810360608401526200417c81868862003e5c565b91505060ff8316608083015298975050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80356200193481620035ea565b5f805f80608085870312156200424d575f80fd5b84356001600160401b038082111562004264575f80fd5b9086019060a0828903121562004278575f80fd5b6200428262003715565b82356200428f816200369a565b81526020830135620042a181620035ea565b6020820152620042b46040840162003e0b565b6040820152606083013582811115620042cb575f80fd5b620042d98a828601620037c2565b606083015250608083013582811115620042f1575f80fd5b620042ff8a828601620037c2565b608083015250955062004318915050602086016200422c565b925062004328604086016200422c565b9396929550929360600135925050565b63ffffffff8116811462000fe7575f80fd5b5f602082840312156200435b575f80fd5b813562000ffb8162004338565b8181038181111562000802576200080262003d2d565b8051620019348162004338565b5f80604083850312156200439d575f80fd5b8251915060208301516001600160401b0380821115620043bb575f80fd5b908401906101608287031215620043d0575f80fd5b620043da62003740565b620043e58362003b91565b8152620043f56020840162003b91565b602082015262004408604084016200437e565b60408201526200441b6060840162003b9e565b60608201526200442e6080840162003b91565b60808201526200444160a0840162003b9e565b60a08201526200445460c0840162003b91565b60c08201526200446760e0840162003b9e565b60e08201526101006200447c81850162003b9e565b90820152610120838101519082015261014080840151838111156200449f575f80fd5b620044ad8982870162003bc7565b8284015250508093505050509250929050565b5f60608284031215620044d1575f80fd5b604051606081018181106001600160401b0382111715620044f657620044f662003701565b6040528251815260208301516200450d81620035ea565b6020820152604083015162004522816200369a565b60408201529392505050565b5f602082840312156200453f575f80fd5b815162000ffb81620036af565b5f602082840312156200455d575f80fd5b5051919050565b5f6020828403121562004575575f80fd5b815162000ffb81620035ea565b608081525f62004596608083018762003d8b565b6001600160a01b0395861660208401529390941660408201526060015292915050565b602081525f62000ffb602083018462003900565b5f8251620045e0818460208701620038dc565b9190910192915050565b5f60208284031215620045fb575f80fd5b815162000ffb8162003bab565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0388811682528781166020830152861660408201526001600160401b038516606082015260ff8416608082015260e060a082018190525f90620046a09083018562003900565b82810360c0840152620046b4818562003900565b9a9950505050505050505050565b6001600160a01b03831681526040602082018190525f9062000ff89083018462003900565b81516001600160401b0381111562004703576200470362003701565b6200471b8162004714845462003d57565b8462003f31565b602080601f83116001811462004751575f8415620047395750858301515b5f19600386901b1c1916600185901b178555620047ab565b5f85815260208120601f198616915b82811015620047815788860151825594840194600190910190840162004760565b50858210156200479f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b606081525f620047c7606083018662003900565b8281036020840152620047db818662003900565b91505060ff83166040830152949350505050565b5f6020828403121562004800575f80fd5b81516001600160401b0381111562004816575f80fd5b62002c058482850162003bc7565b634e487b7160e01b5f52603260045260245ffd5b5f600182016200484c576200484c62003d2d565b506001019056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ea36dcba768a52059ed0ed48fee13b0a8043b482e8915ed094ab8c2cf570450964736f6c63430008180033", + "balance": "0x0" + }, + "0x1670020000000000000000000000000000000002": { + "contractName": "ERC20Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000201", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670020000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167002000000000000000000000000000000002" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167002000000000000000000000000000000003": { + "contractName": "ERC721VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff" + }, + "code": "0x6080604052600436106200019b575f3560e01c806367090ccf11620000de5780638da5cb5b1162000092578063e07baba6116200006a578063e07baba614620004bd578063e30c397814620004fd578063f09a4016146200051c578063f2fde38b1462000540575f80fd5b80638da5cb5b14620004445780639aa8605c1462000463578063a86f9d9e1462000499575f80fd5b806367090ccf146200038d578063715018a614620003d157806379ba509714620003e85780637f07c94714620003ff5780638456cb5914620004165780638abf6077146200042d575f80fd5b80633659cfe611620001525780633f4ba83a116200012a5780633f4ba83a14620003265780634f1ef286146200033d57806352d1902d14620003545780635c975abb146200036b575f80fd5b80633659cfe614620002a45780633ab76e9f14620002c85780633eb6b8cf1462000302575f80fd5b80630178733a146200019f57806301ffc9a714620001b857806306fdde0314620001f1578063150b7a02146200021e5780631f59a83014620002675780633075db56146200028d575b5f80fd5b620001b6620001b036600462002b7d565b62000564565b005b348015620001c4575f80fd5b50620001dc620001d636600462002bc6565b62000736565b60405190151581526020015b60405180910390f35b348015620001fd575f80fd5b506b195c98cdcc8c57dd985d5b1d60a21b5b604051908152602001620001e8565b3480156200022a575f80fd5b506200024d6200023c36600462002c58565b630a85bd0160e11b95945050505050565b6040516001600160e01b03199091168152602001620001e8565b6200027e6200027836600462002ccd565b62000788565b604051620001e8919062002d58565b34801562000299575f80fd5b50620001dc62000c14565b348015620002b0575f80fd5b50620001b6620002c236600462002e59565b62000c2a565b348015620002d4575f80fd5b50609754620002e9906001600160a01b031681565b6040516001600160a01b039091168152602001620001e8565b3480156200030e575f80fd5b50620002e96200032036600462002ea7565b62000d06565b34801562000332575f80fd5b50620001b662000d1e565b620001b66200034e3660046200302a565b62000d36565b34801562000360575f80fd5b506200020f62000df7565b34801562000377575f80fd5b50620001dc60c954610100900460ff1660021490565b34801562000399575f80fd5b50620002e9620003ab3660046200307c565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b348015620003dd575f80fd5b50620001b662000eab565b348015620003f4575f80fd5b50620001b662000ec0565b620001b662000410366004620030ad565b62000f3b565b34801562000422575f80fd5b50620001b6620010b9565b34801562000439575f80fd5b50620002e9620010d0565b34801562000450575f80fd5b506033546001600160a01b0316620002e9565b3480156200046f575f80fd5b50620004876200048136600462002e59565b620010e0565b604051620001e89493929190620030ef565b348015620004a5575f80fd5b50620002e9620004b736600462003142565b6200123b565b348015620004c9575f80fd5b5060c954620004e4906201000090046001600160401b031681565b6040516001600160401b039091168152602001620001e8565b34801562000509575f80fd5b506065546001600160a01b0316620002e9565b34801562000528575f80fd5b50620001b66200053a36600462003168565b62001249565b3480156200054c575f80fd5b50620001b66200055e36600462002e59565b62001361565b6200057960c954610100900460ff1660021490565b15620005985760405163bae6e2a960e01b815260040160405180910390fd5b6002620005a4620013d5565b60ff1603620005c65760405163dfc60d8560e01b815260040160405180910390fd5b620005d2600262001417565b620005dc62001462565b505f620005ee61014084018462003199565b620005fe916004908290620031de565b8101906200060d919062003207565b90505f808280602001905181019062000627919062003332565b9350505091505f6200064f838760a001602081019062000648919062002e59565b846200155f565b90506200067d6101208701356200066d60c0890160a08a0162002e59565b6001600160a01b031690620016e9565b6200068f60c0870160a0880162002e59565b6001600160a01b0316857fe48bef18455e47bca14864ab6e82dffa29df148b051c09de95aec44ecf13598c8560200151848687516001600160401b03811115620006dd57620006dd62002eeb565b60405190808252806020026020018201604052801562000707578160200160208202803683370190505b506040516200071a949392919062003478565b60405180910390a35050505062000732600162001417565b5050565b5f6001600160e01b0319821662bc399d60e11b14806200076657506001600160e01b03198216637f07c94760e01b145b806200078257506001600160e01b031982166301ffc9a760e01b145b92915050565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820192909252610140810191909152620007f760c954610100900460ff1660021490565b15620008165760405163bae6e2a960e01b815260040160405180910390fd5b62000821826200353b565b8060e00151518160c0015151146200084c5760405163196e8a4160e31b815260040160405180910390fd5b60808101516001600160a01b031662000878576040516303f8a7d360e01b815260040160405180910390fd5b600262000884620013d5565b60ff1603620008a65760405163dfc60d8560e01b815260040160405180910390fd5b620008b2600262001417565b5f5b620008c360c08501856200361f565b90508110156200091f57620008dc60e08501856200361f565b82818110620008ef57620008ef62003667565b905060200201355f146200091657604051634299323b60e11b815260040160405180910390fd5b600101620008b4565b506200094e6380ac58cd60e01b6200093e60a086016080870162002e59565b6001600160a01b031690620016f6565b6200096c57604051633ee915f560e11b815260040160405180910390fd5b5f80620009798562001789565b6040805161016081019091525f80825292945090925060208101620009a56080890160608a016200367b565b6001600160401b03168152602001620009c560c0890160a08a0162003699565b63ffffffff1681525f60208083018290526040830191909152336060830152608090910190620009f8908901896200367b565b6001600160401b031681526020015f6001600160a01b031688602001602081019062000a25919062002e59565b6001600160a01b03160362000a3b573362000a4d565b62000a4d6040890160208a0162002e59565b6001600160a01b0316815260209081019062000a899062000a71908a018a6200367b565b6b195c98cdcc8c57dd985d5b1d60a21b5b5f62000d06565b6001600160a01b0316815260200162000aa96080890160608a016200367b565b62000abe906001600160401b031634620036cb565b815260200184905290505f62000ade6562726964676560d01b826200123b565b6001600160a01b0316631bdb003734846040518363ffffffff1660e01b815260040162000b0c919062002d58565b5f6040518083038185885af115801562000b28573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f1916820160405262000b529190810190620036ee565b9650905062000b68606088016040890162002e59565b6001600160a01b03168660a001516001600160a01b0316827fabbf62a1459339f9ac59136d313a5ccd83d2706cc6d4c04d90642520169144dc8960c0015187602001518c608001602081019062000bc0919062002e59565b62000bcf60c08f018f6200361f565b8f8060e0019062000be191906200361f565b60405162000bf6979695949392919062003854565b60405180910390a45050505062000c0e600162001417565b50919050565b5f600262000c21620013d5565b60ff1614905090565b6001600160a01b037f000000000000000000000000016700200000000000000000000000000000000316300362000c7e5760405162461bcd60e51b815260040162000c7590620038b4565b60405180910390fd5b7f00000000000000000000000001670020000000000000000000000000000000036001600160a01b031662000cb262001cb5565b6001600160a01b03161462000cdb5760405162461bcd60e51b815260040162000c759062003900565b62000ce68162001cd1565b604080515f8082526020820190925262000d039183919062001cdb565b50565b5f62000d1484848462001e52565b90505b9392505050565b62000d2862001f42565b62000d34335f62001fd4565b565b6001600160a01b037f000000000000000000000000016700200000000000000000000000000000000316300362000d815760405162461bcd60e51b815260040162000c7590620038b4565b7f00000000000000000000000001670020000000000000000000000000000000036001600160a01b031662000db562001cb5565b6001600160a01b03161462000dde5760405162461bcd60e51b815260040162000c759062003900565b62000de98262001cd1565b620007328282600162001cdb565b5f306001600160a01b037f0000000000000000000000000167002000000000000000000000000000000003161462000e985760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000c75565b505f805160206200439383398151915290565b62000eb562001fd9565b62000d345f62002035565b60655433906001600160a01b0316811462000f305760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840162000c75565b62000d038162002035565b62000f5060c954610100900460ff1660021490565b1562000f6f5760405163bae6e2a960e01b815260040160405180910390fd5b600262000f7b620013d5565b60ff160362000f9d5760405163dfc60d8560e01b815260040160405180910390fd5b62000fa9600262001417565b5f80808062000fbb858701876200394c565b93509350935093505f62000fce62002050565b905062000fdb8362002179565b5f62000fe98685856200155f565b9050620010006001600160a01b03851634620016e9565b836001600160a01b0316856001600160a01b0316835f01517f895f73e418d1bbbad2a311d085fad00e5d98a960e9f2afa4b942071d39bec43a85604001518a6020015186898a516001600160401b0381111562001061576200106162002eeb565b6040519080825280602002602001820160405280156200108b578160200160208202803683370190505b506040516200109f95949392919062003a4a565b60405180910390a450505050505062000732600162001417565b620010c3620021b7565b62000d3433600162001fd4565b5f620010db62001cb5565b905090565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b9093046001600160a01b0316929190620011209062003aa6565b80601f01602080910402602001604051908101604052809291908181526020018280546200114e9062003aa6565b80156200119d5780601f1062001173576101008083540402835291602001916200119d565b820191905f5260205f20905b8154815290600101906020018083116200117f57829003601f168201915b505050505090806002018054620011b49062003aa6565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e29062003aa6565b8015620012315780601f10620012075761010080835404028352916020019162001231565b820191905f5260205f20905b8154815290600101906020018083116200121357829003601f168201915b5050505050905084565b5f62000d1746848462001e52565b5f54610100900460ff16158080156200126857505f54600160ff909116105b80620012835750303b1580156200128357505f5460ff166001145b620012e85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000c75565b5f805460ff1916600117905580156200130a575f805461ff0019166101001790555b6200131683836200222b565b80156200135c575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6200136b62001fd9565b606580546001600160a01b0383166001600160a01b031990911681179091556200139d6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f620013e1466200226a565b156200140d57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b62001422466200226a565b156200144e57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b620014958160016200123b565b6001600160a01b0316336001600160a01b031614620014c757604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001504573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200152a919062003ada565b60208101519092506001600160a01b031633146200155b57604051632583296b60e01b815260040160405180910390fd5b5090565b5f46845f01516001600160401b0316036200162e575060208301515f5b82518110156200162757816001600160a01b03166342842e0e3086868581518110620015ac57620015ac62003667565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064015f604051808303815f87803b15801562001604575f80fd5b505af115801562001617573d5f803e3d5ffd5b505050508060010190506200157c565b5062000d17565b62001639846200229c565b90505f5b8251811015620016e157816001600160a01b03166340c10f19858584815181106200166c576200166c62003667565b60200260200101516040518363ffffffff1660e01b8152600401620016a69291906001600160a01b03929092168252602082015260400190565b5f604051808303815f87803b158015620016be575f80fd5b505af1158015620016d1573d5f803e3d5ffd5b505050508060010190506200163d565b509392505050565b6200073282825a620022e6565b5f6001600160a01b0383163b6200170f57505f62000782565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa9250505080156200177c575060408051601f3d908101601f19168201909252620017799181019062003b48565b60015b1562000782579392505050565b604080516080810182525f808252602082015260609181018290528082018290525f61012d81620017c160a087016080880162002e59565b6001600160a01b03908116825260208201929092526040015f208054909250600160401b9004161562001acb576040805160808101825282546001600160401b0381168252600160401b90046001600160a01b03166020820152600183018054919284929084019190620018359062003aa6565b80601f0160208091040260200160405190810160405280929190818152602001828054620018639062003aa6565b8015620018b25780601f106200188857610100808354040283529160200191620018b2565b820191905f5260205f20905b8154815290600101906020018083116200189457829003601f168201915b50505050508152602001600282018054620018cd9062003aa6565b80601f0160208091040260200160405190810160405280929190818152602001828054620018fb9062003aa6565b80156200194a5780601f1062001920576101008083540402835291602001916200194a565b820191905f5260205f20905b8154815290600101906020018083116200192c57829003601f168201915b50505050508152505091505f5b6200196660c08601866200361f565b905081101562001ac4576200198260a086016080870162002e59565b6001600160a01b03166342842e0e3330620019a160c08a018a6200361f565b86818110620019b457620019b462003667565b6040516001600160e01b031960e088901b1681526001600160a01b039586166004820152949093166024850152506020909102013560448201526064015f604051808303815f87803b15801562001a09575f80fd5b505af115801562001a1c573d5f803e3d5ffd5b5062001a339250505060a086016080870162002e59565b6001600160a01b03166342966c6862001a5060c08801886200361f565b8481811062001a635762001a6362003667565b905060200201356040518263ffffffff1660e01b815260040162001a8991815260200190565b5f604051808303815f87803b15801562001aa1575f80fd5b505af115801562001ab4573d5f803e3d5ffd5b5050505080600101905062001957565b5062001c22565b6040518060800160405280466001600160401b0316815260200185608001602081019062001afa919062002e59565b6001600160a01b0316815260200162001b2462001b1e60a088016080890162002e59565b6200232d565b815260200162001b4562001b3f60a088016080890162002e59565b620023e7565b905291505f5b62001b5a60c08601866200361f565b905081101562001c205762001b7660a086016080870162002e59565b6001600160a01b03166342842e0e333062001b9560c08a018a6200361f565b8681811062001ba85762001ba862003667565b6040516001600160e01b031960e088901b1681526001600160a01b039586166004820152949093166024850152506020909102013560448201526064015f604051808303815f87803b15801562001bfd575f80fd5b505af115801562001c10573d5f803e3d5ffd5b5050505080600101905062001b4b565b505b5030637f07c947823362001c3d606088016040890162002e59565b62001c4c60c08901896200361f565b60405160200162001c6295949392919062003b66565b60408051601f198184030181529082905262001c819160240162003bf6565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050509150915091565b5f8051602062004393833981519152546001600160a01b031690565b62000d0362001fd9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001d11576200135c836200242f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001d6e575060408051601f3d908101601f1916820190925262001d6b9181019062003c0a565b60015b62001dd35760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000c75565b5f8051602062004393833981519152811462001e445760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000c75565b506200135c838383620024cd565b6097545f906001600160a01b03168062001e7f57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa15801562001ed2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001ef8919062003c22565b91508215801562001f1057506001600160a01b038216155b15620016e157604051632b0d65db60e01b81526001600160401b03861660048201526024810185905260440162000c75565b62001f5760c954610100900460ff1660021490565b62001f755760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b620007325b6033546001600160a01b0316331462000d345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000c75565b606580546001600160a01b031916905562000d0381620024fd565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b620020838160016200123b565b6001600160a01b0316336001600160a01b031614620020b557604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015620020f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002118919062003ada565b91505f6200213b836040015162000a826b195c98cdcc8c57dd985d5b1d60a21b90565b9050806001600160a01b031683602001516001600160a01b0316146200217457604051632583296b60e01b815260040160405180910390fd5b505090565b6001600160a01b03811615806200219857506001600160a01b03811630145b1562000d0357604051635b50f3f960e01b815260040160405180910390fd5b620021cc60c954610100900460ff1660021490565b15620021eb5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200162001fca565b806001600160a01b038116620022545760405163538ba4f960e01b815260040160405180910390fd5b6200225f836200254e565b6200135c82620025b5565b5f60018214806200227c575061426882145b806200228a575062aa36a782145b80620007825750620007828262002629565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b0390811685529252909120541680620022e157620007828262002641565b919050565b815f03620022f357505050565b6200230f83838360405180602001604052805f8152506200282c565b6200135c57604051634c67134d60e11b815260040160405180910390fd5b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b17905290516060915f9182916001600160a01b0386169162002375919062003c40565b5f60405180830381855afa9150503d805f8114620023af576040519150601f19603f3d011682016040523d82523d5f602084013e620023b4565b606091505b509150915081620023d45760405180602001604052805f815250620023df565b620023df816200286a565b949350505050565b60408051600481526024810182526020810180516001600160e01b03166306fdde0360e01b17905290516060915f9182916001600160a01b0386169162002375919062003c40565b6001600160a01b0381163b6200249e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000c75565b5f805160206200439383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b620024d883620029bd565b5f82511180620024e55750805b156200135c57620024f78383620029fe565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16620025775760405162461bcd60e51b815260040162000c759062003c5d565b6200258162002a26565b620025a36001600160a01b038216156200259c578162002035565b3362002035565b5060c9805461ff001916610100179055565b5f54610100900460ff16620025de5760405162461bcd60e51b815260040162000c759062003c5d565b6001600160401b03461115620026075760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c821015801562000782575050617e90101590565b5f80620026566033546001600160a01b031690565b60975460208501518551604080880151606089015191516200268996956001600160a01b03169493929060240162003ca8565b60408051601f198184030181529190526020810180516001600160e01b03166377c6257360e11b1790529050620026d26d627269646765645f65726337323160901b5f6200123b565b81604051620026e19062002b6f565b620026ee92919062003d0d565b604051809103905ff08015801562002708573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d60209081526040918290208751815492890151909416600160401b026001600160e01b03199092166001600160401b0390941693909317178255850151919350849160018201906200276e908262003d81565b506060820151600282019062002785908262003d81565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b03191688851690811790915591518851828a015160608b01519351949750919094169493909316927f44977f2d30fe1e3aee2c1476f2f95aaacaf34e44b9359c403da01fcc93fd751b926200281e929062003e4d565b60405180910390a450919050565b5f6001600160a01b0385166200285557604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b606060408251106200288c578180602001905181019062000782919062003e7e565b8151602003620029aa575f5b602081108015620028cb5750828181518110620028b957620028b962003667565b01602001516001600160f81b03191615155b15620028e457620028dc8162003eb3565b905062002898565b805f036200290157505060408051602081019091525f8152919050565b5f816001600160401b038111156200291d576200291d62002eeb565b6040519080825280601f01601f19166020018201604052801562002948576020820181803683370190505b5090505f5b82811015620016e1578481815181106200296b576200296b62003667565b602001015160f81c60f81b8282815181106200298b576200298b62003667565b60200101906001600160f81b03191690815f1a9053506001016200294d565b505060408051602081019091525f815290565b620029c8816200242f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000d178383604051806060016040528060278152602001620043b36027913962002a4f565b5f54610100900460ff1662000d345760405162461bcd60e51b815260040162000c759062003c5d565b60605f80856001600160a01b03168560405162002a6d919062003c40565b5f60405180830381855af49150503d805f811462002aa7576040519150601f19603f3d011682016040523d82523d5f602084013e62002aac565b606091505b509150915062002abf8683838762002ac9565b9695505050505050565b6060831562002b3c5782515f0362002b34576001600160a01b0385163b62002b345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000c75565b5081620023df565b620023df838381511562002b535781518083602001fd5b8060405162461bcd60e51b815260040162000c75919062003bf6565b6104c48062003ecf83390190565b5f806040838503121562002b8f575f80fd5b82356001600160401b0381111562002ba5575f80fd5b8301610160818603121562002bb8575f80fd5b946020939093013593505050565b5f6020828403121562002bd7575f80fd5b81356001600160e01b03198116811462000d17575f80fd5b6001600160a01b038116811462000d03575f80fd5b8035620022e18162002bef565b5f8083601f84011262002c22575f80fd5b5081356001600160401b0381111562002c39575f80fd5b60208301915083602082850101111562002c51575f80fd5b9250929050565b5f805f805f6080868803121562002c6d575f80fd5b853562002c7a8162002bef565b9450602086013562002c8c8162002bef565b93506040860135925060608601356001600160401b0381111562002cae575f80fd5b62002cbc8882890162002c11565b969995985093965092949392505050565b5f6020828403121562002cde575f80fd5b81356001600160401b0381111562002cf4575f80fd5b8201610100818503121562000d17575f80fd5b5f5b8381101562002d2357818101518382015260200162002d09565b50505f910152565b5f815180845262002d4481602086016020860162002d07565b601f01601f19169290920160200192915050565b6020815262002d736020820183516001600160401b03169052565b5f602083015162002d8f60408401826001600160401b03169052565b50604083015163ffffffff811660608401525060608301516001600160a01b03811660808401525060808301516001600160401b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160401b03811660e08401525060e083015161010062002e13818501836001600160a01b03169052565b840151905061012062002e30848201836001600160a01b03169052565b84015161014084810191909152840151610160808501529050620023df61018084018262002d2b565b5f6020828403121562002e6a575f80fd5b813562000d178162002bef565b6001600160401b038116811462000d03575f80fd5b8035620022e18162002e77565b801515811462000d03575f80fd5b5f805f6060848603121562002eba575f80fd5b833562002ec78162002e77565b925060208401359150604084013562002ee08162002e99565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b038111828210171562002f245762002f2462002eeb565b60405290565b60405161010081016001600160401b038111828210171562002f245762002f2462002eeb565b60405161016081016001600160401b038111828210171562002f245762002f2462002eeb565b604051601f8201601f191681016001600160401b038111828210171562002fa15762002fa162002eeb565b604052919050565b5f6001600160401b0382111562002fc45762002fc462002eeb565b50601f01601f191660200190565b5f82601f83011262002fe2575f80fd5b813562002ff962002ff38262002fa9565b62002f76565b8181528460208386010111156200300e575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156200303c575f80fd5b8235620030498162002bef565b915060208301356001600160401b0381111562003064575f80fd5b620030728582860162002fd2565b9150509250929050565b5f80604083850312156200308e575f80fd5b823591506020830135620030a28162002bef565b809150509250929050565b5f8060208385031215620030bf575f80fd5b82356001600160401b03811115620030d5575f80fd5b620030e38582860162002c11565b90969095509350505050565b6001600160401b03851681526001600160a01b03841660208201526080604082018190525f90620031239083018562002d2b565b828103606084015262003137818562002d2b565b979650505050505050565b5f806040838503121562003154575f80fd5b823591506020830135620030a28162002e99565b5f80604083850312156200317a575f80fd5b8235620031878162002bef565b91506020830135620030a28162002bef565b5f808335601e19843603018112620031af575f80fd5b8301803591506001600160401b03821115620031c9575f80fd5b60200191503681900382131562002c51575f80fd5b5f8085851115620031ed575f80fd5b83861115620031fa575f80fd5b5050820193919092039150565b5f6020828403121562003218575f80fd5b81356001600160401b038111156200322e575f80fd5b620023df8482850162002fd2565b8051620022e18162002e77565b8051620022e18162002bef565b5f82601f83011262003266575f80fd5b81516200327762002ff38262002fa9565b8181528460208386010111156200328c575f80fd5b620023df82602083016020870162002d07565b5f6001600160401b03821115620032ba57620032ba62002eeb565b5060051b60200190565b5f82601f830112620032d4575f80fd5b81516020620032e762002ff3836200329f565b8083825260208201915060208460051b87010193508684111562003309575f80fd5b602086015b848110156200332757805183529183019183016200330e565b509695505050505050565b5f805f806080858703121562003346575f80fd5b84516001600160401b03808211156200335d575f80fd5b908601906080828903121562003371575f80fd5b6200337b62002eff565b8251620033888162002e77565b815260208301516200339a8162002bef565b6020820152604083015182811115620033b1575f80fd5b620033bf8a82860162003256565b604083015250606083015182811115620033d7575f80fd5b620033e58a82860162003256565b6060830152509550620033fb6020880162003249565b94506200340b6040880162003249565b9350606087015191508082111562003421575f80fd5b506200343087828801620032c4565b91505092959194509250565b5f815180845260208085019450602084015f5b838110156200346d578151875295820195908201906001016200344f565b509495945050505050565b6001600160a01b038581168252841660208201526080604082018190525f90620034a5908301856200343c565b82810360608401526200313781856200343c565b63ffffffff8116811462000d03575f80fd5b8035620022e181620034b9565b5f82601f830112620034e8575f80fd5b81356020620034fb62002ff3836200329f565b8083825260208201915060208460051b8701019350868411156200351d575f80fd5b602086015b8481101562003327578035835291830191830162003522565b5f61010082360312156200354d575f80fd5b6200355762002f2a565b620035628362002e8c565b8152620035726020840162002c04565b6020820152620035856040840162002c04565b6040820152620035986060840162002e8c565b6060820152620035ab6080840162002c04565b6080820152620035be60a08401620034cb565b60a082015260c08301356001600160401b0380821115620035dd575f80fd5b620035eb36838701620034d8565b60c084015260e085013591508082111562003604575f80fd5b506200361336828601620034d8565b60e08301525092915050565b5f808335601e1984360301811262003635575f80fd5b8301803591506001600160401b038211156200364f575f80fd5b6020019150600581901b360382131562002c51575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156200368c575f80fd5b813562000d178162002e77565b5f60208284031215620036aa575f80fd5b813562000d1781620034b9565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620007825762000782620036b7565b8051620022e181620034b9565b5f806040838503121562003700575f80fd5b8251915060208301516001600160401b03808211156200371e575f80fd5b90840190610160828703121562003733575f80fd5b6200373d62002f50565b62003748836200323c565b815262003758602084016200323c565b60208201526200376b60408401620036e1565b60408201526200377e6060840162003249565b606082015262003791608084016200323c565b6080820152620037a460a0840162003249565b60a0820152620037b760c084016200323c565b60c0820152620037ca60e0840162003249565b60e0820152610100620037df81850162003249565b908201526101208381015190820152610140808401518381111562003802575f80fd5b620038108982870162003256565b8284015250508093505050509250929050565b8183525f6001600160fb1b038311156200383b575f80fd5b8260051b80836020870137939093016020019392505050565b6001600160401b03881681526001600160a01b0387811660208301528616604082015260a0606082018190525f9062003891908301868862003823565b8281036080840152620038a681858762003823565b9a9950505050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f805f806080858703121562003960575f80fd5b84356001600160401b038082111562003977575f80fd5b90860190608082890312156200398b575f80fd5b6200399562002eff565b8235620039a28162002e77565b81526020830135620039b48162002bef565b6020820152604083013582811115620039cb575f80fd5b620039d98a82860162002fd2565b604083015250606083013582811115620039f1575f80fd5b620039ff8a82860162002fd2565b606083015250955062003a156020880162002c04565b945062003a256040880162002c04565b9350606087013591508082111562003a3b575f80fd5b506200343087828801620034d8565b6001600160401b03861681526001600160a01b0385811660208301528416604082015260a0606082018190525f9062003a86908301856200343c565b828103608084015262003a9a81856200343c565b98975050505050505050565b600181811c9082168062003abb57607f821691505b60208210810362000c0e57634e487b7160e01b5f52602260045260245ffd5b5f6060828403121562003aeb575f80fd5b604051606081018181106001600160401b038211171562003b105762003b1062002eeb565b60405282518152602083015162003b278162002bef565b6020820152604083015162003b3c8162002e77565b60408201529392505050565b5f6020828403121562003b59575f80fd5b815162000d178162002e99565b608080825286516001600160401b03168282015260208701516001600160a01b0390811660a0840152604088015160c08401929092525f919062003baf61010085018362002d2b565b91506060890151607f198584030160e086015262003bce838262002d2b565b89831660208701529188166040860152508381036060850152905062003a9a81858762003823565b602081525f62000d17602083018462002d2b565b5f6020828403121562003c1b575f80fd5b5051919050565b5f6020828403121562003c33575f80fd5b815162000d178162002bef565b5f825162003c5381846020870162002d07565b9190910192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0387811682528681166020830152851660408201526001600160401b038416606082015260c0608082018190525f9062003cec9083018562002d2b565b82810360a084015262003d00818562002d2b565b9998505050505050505050565b6001600160a01b03831681526040602082018190525f9062000d149083018462002d2b565b601f8211156200135c57805f5260205f20601f840160051c8101602085101562003d595750805b601f840160051c820191505b8181101562003d7a575f815560010162003d65565b5050505050565b81516001600160401b0381111562003d9d5762003d9d62002eeb565b62003db58162003dae845462003aa6565b8462003d32565b602080601f83116001811462003deb575f841562003dd35750858301515b5f19600386901b1c1916600185901b17855562003e45565b5f85815260208120601f198616915b8281101562003e1b5788860151825594840194600190910190840162003dfa565b508582101562003e3957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b604081525f62003e61604083018562002d2b565b828103602084015262003e75818562002d2b565b95945050505050565b5f6020828403121562003e8f575f80fd5b81516001600160401b0381111562003ea5575f80fd5b620023df8482850162003256565b5f6001820162003ec75762003ec7620036b7565b506001019056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220b74901e552064099b775b843720858dd3b59cf2dcea297bf896118a92af85cd064736f6c63430008180033", + "balance": "0x0" + }, + "0x1670020000000000000000000000000000000003": { + "contractName": "ERC721Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670020000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167002000000000000000000000000000000003" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167002000000000000000000000000000000004": { + "contractName": "ERC1155VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff" + }, + "code": "0x608060405260043610620001b7575f3560e01c8063715018a611620000fa578063a86f9d9e1162000092578063e30c3978116200006a578063e30c3978146200051d578063f09a4016146200053c578063f23a6e611462000560578063f2fde38b1462000590575f80fd5b8063a86f9d9e146200046d578063bc197c811462000491578063e07baba614620004dd575f80fd5b80638456cb5911620000d25780638456cb5914620003ea5780638abf607714620004015780638da5cb5b14620004185780639aa8605c1462000437575f80fd5b8063715018a614620003a557806379ba509714620003bc5780637f07c94714620003d3575f80fd5b80633ab76e9f116200016e5780634f1ef28611620001465780634f1ef286146200031157806352d1902d14620003285780635c975abb146200033f57806367090ccf1462000361575f80fd5b80633ab76e9f146200029c5780633eb6b8cf14620002d65780633f4ba83a14620002fa575f80fd5b80630178733a14620001bb57806301ffc9a714620001d457806306fdde03146200020d5780631f59a830146200023b5780633075db5614620002615780633659cfe61462000278575b5f80fd5b620001d2620001cc36600462002b04565b620005b4565b005b348015620001e0575f80fd5b50620001f8620001f236600462002b4d565b62000745565b60405190151581526020015b60405180910390f35b34801562000219575f80fd5b506c195c98cc4c4d4d57dd985d5b1d609a1b5b60405190815260200162000204565b620002526200024c36600462002b76565b62000769565b60405162000204919062002c01565b3480156200026d575f80fd5b50620001f862000bf6565b34801562000284575f80fd5b50620001d26200029636600462002d24565b62000c0c565b348015620002a8575f80fd5b50609754620002bd906001600160a01b031681565b6040516001600160a01b03909116815260200162000204565b348015620002e2575f80fd5b50620002bd620002f436600462002d72565b62000ce8565b34801562000306575f80fd5b50620001d262000cfe565b620001d26200032236600462002ef5565b62000d16565b34801562000334575f80fd5b506200022c62000dd7565b3480156200034b575f80fd5b50620001f860c954610100900460ff1660021490565b3480156200036d575f80fd5b50620002bd6200037f36600462002f47565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b348015620003b1575f80fd5b50620001d262000e8b565b348015620003c8575f80fd5b50620001d262000ea0565b620001d2620003e436600462002fbf565b62000f1b565b348015620003f6575f80fd5b50620001d262001058565b3480156200040d575f80fd5b50620002bd6200106f565b34801562000424575f80fd5b506033546001600160a01b0316620002bd565b34801562000443575f80fd5b506200045b6200045536600462002d24565b6200107f565b60405162000204949392919062003001565b34801562000479575f80fd5b50620002bd6200048b36600462003054565b620011da565b3480156200049d575f80fd5b50620004c3620004af366004620030bd565b63bc197c8160e01b98975050505050505050565b6040516001600160e01b0319909116815260200162000204565b348015620004e9575f80fd5b5060c95462000504906201000090046001600160401b031681565b6040516001600160401b03909116815260200162000204565b34801562000529575f80fd5b506065546001600160a01b0316620002bd565b34801562000548575f80fd5b50620001d26200055a36600462003181565b620011ef565b3480156200056c575f80fd5b50620004c36200057e366004620031b2565b63f23a6e6160e01b9695505050505050565b3480156200059c575f80fd5b50620001d2620005ae36600462002d24565b62001311565b620005c960c954610100900460ff1660021490565b15620005e85760405163bae6e2a960e01b815260040160405180910390fd5b6002620005f462001385565b60ff1603620006165760405163dfc60d8560e01b815260040160405180910390fd5b620006226002620013c7565b6200062c62001412565b505f6200063e61014084018462003230565b6200064e91600490829062003275565b8101906200065d91906200329e565b90505f805f83806020019051810190620006789190620033c9565b94509450505092505f620006a3848860a00160208101906200069b919062002d24565b85856200150f565b9050620006d1610120880135620006c160c08a0160a08b0162002d24565b6001600160a01b0316906200160a565b620006e360c0880160a0890162002d24565b6001600160a01b0316867fe48bef18455e47bca14864ab6e82dffa29df148b051c09de95aec44ecf13598c866020015184878760405162000728949392919062003535565b60405180910390a35050505050620007416001620013c7565b5050565b5f620007518262001617565b80620007635750620007638262001668565b92915050565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820192909252610140810191909152620007d860c954610100900460ff1660021490565b15620007f75760405163bae6e2a960e01b815260040160405180910390fd5b6200080282620035f8565b8060e00151518160c0015151146200082d5760405163196e8a4160e31b815260040160405180910390fd5b60808101516001600160a01b031662000859576040516303f8a7d360e01b815260040160405180910390fd5b60026200086562001385565b60ff1603620008875760405163dfc60d8560e01b815260040160405180910390fd5b620008936002620013c7565b5f5b620008a460e0850185620036dc565b90508110156200090057620008bd60e0850185620036dc565b82818110620008d057620008d062003724565b905060200201355f03620008f757604051634299323b60e11b815260040160405180910390fd5b60010162000895565b506200092f636cdb3d1360e11b6200091f60a086016080870162002d24565b6001600160a01b0316906200169e565b6200094d57604051633ee915f560e11b815260040160405180910390fd5b5f806200095a8562001731565b6040805161016081019091525f80825292945090925060208101620009866080890160608a0162003738565b6001600160401b03168152602001620009a660c0890160a08a0162003756565b63ffffffff1681525f60208083018290526040830191909152336060830152608090910190620009d99089018962003738565b6001600160401b031681526020015f6001600160a01b031688602001602081019062000a06919062002d24565b6001600160a01b03160362000a1c573362000a2e565b62000a2e6040890160208a0162002d24565b6001600160a01b0316815260209081019062000a6b9062000a52908a018a62003738565b6c195c98cc4c4d4d57dd985d5b1d609a1b5b5f62000ce8565b6001600160a01b0316815260200162000a8b6080890160608a0162003738565b62000aa0906001600160401b03163462003788565b815260200184905290505f62000ac06562726964676560d01b82620011da565b6001600160a01b0316631bdb003734846040518363ffffffff1660e01b815260040162000aee919062002c01565b5f6040518083038185885af115801562000b0a573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f1916820160405262000b349190810190620037ab565b9650905062000b4a606088016040890162002d24565b6001600160a01b03168660a001516001600160a01b0316827fabbf62a1459339f9ac59136d313a5ccd83d2706cc6d4c04d90642520169144dc8960c0015187602001518c608001602081019062000ba2919062002d24565b62000bb160c08f018f620036dc565b8f8060e0019062000bc39190620036dc565b60405162000bd8979695949392919062003911565b60405180910390a45050505062000bf06001620013c7565b50919050565b5f600262000c0362001385565b60ff1614905090565b6001600160a01b037f000000000000000000000000016700200000000000000000000000000000000416300362000c605760405162461bcd60e51b815260040162000c579062003971565b60405180910390fd5b7f00000000000000000000000001670020000000000000000000000000000000046001600160a01b031662000c9462001c40565b6001600160a01b03161462000cbd5760405162461bcd60e51b815260040162000c5790620039bd565b62000cc88162001c5c565b604080515f8082526020820190925262000ce59183919062001c66565b50565b5f62000cf684848462001ddd565b949350505050565b62000d0862001ed5565b62000d14335f62001f67565b565b6001600160a01b037f000000000000000000000000016700200000000000000000000000000000000416300362000d615760405162461bcd60e51b815260040162000c579062003971565b7f00000000000000000000000001670020000000000000000000000000000000046001600160a01b031662000d9562001c40565b6001600160a01b03161462000dbe5760405162461bcd60e51b815260040162000c5790620039bd565b62000dc98262001c5c565b620007418282600162001c66565b5f306001600160a01b037f0000000000000000000000000167002000000000000000000000000000000004161462000e785760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000c57565b505f805160206200459583398151915290565b62000e9562001f6c565b62000d145f62001fc8565b60655433906001600160a01b0316811462000f105760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840162000c57565b62000ce58162001fc8565b62000f3060c954610100900460ff1660021490565b1562000f4f5760405163bae6e2a960e01b815260040160405180910390fd5b600262000f5b62001385565b60ff160362000f7d5760405163dfc60d8560e01b815260040160405180910390fd5b62000f896002620013c7565b5f8080808062000f9c8688018862003a09565b945094509450945094505f62000fb162001fe3565b905062000fbe846200210d565b5f62000fcd878686866200150f565b905062000fe46001600160a01b038616346200160a565b846001600160a01b0316866001600160a01b0316835f01517f895f73e418d1bbbad2a311d085fad00e5d98a960e9f2afa4b942071d39bec43a85604001518b60200151868a8a6040516200103d95949392919062003b2c565b60405180910390a450505050505050620007416001620013c7565b620010626200214b565b62000d1433600162001f67565b5f6200107a62001c40565b905090565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b9093046001600160a01b0316929190620010bf9062003b88565b80601f0160208091040260200160405190810160405280929190818152602001828054620010ed9062003b88565b80156200113c5780601f1062001112576101008083540402835291602001916200113c565b820191905f5260205f20905b8154815290600101906020018083116200111e57829003601f168201915b505050505090806002018054620011539062003b88565b80601f0160208091040260200160405190810160405280929190818152602001828054620011819062003b88565b8015620011d05780601f10620011a657610100808354040283529160200191620011d0565b820191905f5260205f20905b815481529060010190602001808311620011b257829003601f168201915b5050505050905084565b5f620011e846848462001ddd565b9392505050565b5f54610100900460ff16158080156200120e57505f54600160ff909116105b80620012295750303b1580156200122957505f5460ff166001145b6200128e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000c57565b5f805460ff191660011790558015620012b0575f805461ff0019166101001790555b620012bc8383620021bf565b620012c6620021fe565b80156200130c575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6200131b62001f6c565b606580546001600160a01b0383166001600160a01b031990911681179091556200134d6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f620013914662002227565b15620013bd57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b620013d24662002227565b15620013fe57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b62001445816001620011da565b6001600160a01b0316336001600160a01b0316146200147757604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015620014b4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620014da919062003bbc565b60208101519092506001600160a01b031633146200150b57604051632583296b60e01b815260040160405180910390fd5b5090565b5f46855f01516001600160401b0316036200159357506020840151604051631759616b60e11b81526001600160a01b03821690632eb2c2d6906200155e90309088908890889060040162003c2a565b5f604051808303815f87803b15801562001576575f80fd5b505af115801562001589573d5f803e3d5ffd5b5050505062000cf6565b6200159e8562002259565b60405163d81d0a1560e01b81529091506001600160a01b0382169063d81d0a1590620015d39087908790879060040162003c87565b5f604051808303815f87803b158015620015eb575f80fd5b505af1158015620015fe573d5f803e3d5ffd5b50505050949350505050565b6200074182825a620022a3565b5f6001600160e01b0319821662bc399d60e11b14806200164757506001600160e01b03198216637f07c94760e01b145b806200076357506001600160e01b031982166301ffc9a760e01b1492915050565b5f6001600160e01b03198216630271189760e51b14806200076357506301ffc9a760e01b6001600160e01b031983161462000763565b5f6001600160a01b0383163b620016b757505f62000763565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa92505050801562001724575060408051601f3d908101601f19168201909252620017219181019062003cc0565b60015b1562000763579392505050565b604080516080810182525f808252602082015260609181018290528082018290525f61012d816200176960a087016080880162002d24565b6001600160a01b03908116825260208201929092526040015f208054909250600160401b9004161562001a8b576040805160808101825282546001600160401b0381168252600160401b90046001600160a01b03166020820152600183018054919284929084019190620017dd9062003b88565b80601f01602080910402602001604051908101604052809291908181526020018280546200180b9062003b88565b80156200185a5780601f1062001830576101008083540402835291602001916200185a565b820191905f5260205f20905b8154815290600101906020018083116200183c57829003601f168201915b50505050508152602001600282018054620018759062003b88565b80601f0160208091040260200160405190810160405280929190818152602001828054620018a39062003b88565b8015620018f25780601f10620018c857610100808354040283529160200191620018f2565b820191905f5260205f20905b815481529060010190602001808311620018d457829003601f168201915b505050505081525050915083608001602081019062001912919062002d24565b6001600160a01b0316632eb2c2d633306200193160c0890189620036dc565b6200194060e08b018b620036dc565b6040518763ffffffff1660e01b8152600401620019639695949392919062003cde565b5f604051808303815f87803b1580156200197b575f80fd5b505af11580156200198e573d5f803e3d5ffd5b505050505f5b620019a360c0860186620036dc565b905081101562001a8457620019bf60a086016080870162002d24565b6001600160a01b031663b390c0ab620019dc60c0880188620036dc565b84818110620019ef57620019ef62003724565b90506020020135878060e0019062001a089190620036dc565b8581811062001a1b5762001a1b62003724565b905060200201356040518363ffffffff1660e01b815260040162001a49929190918252602082015260400190565b5f604051808303815f87803b15801562001a61575f80fd5b505af115801562001a74573d5f803e3d5ffd5b5050505080600101905062001994565b5062001b9c565b6040518060800160405280466001600160401b0316815260200185608001602081019062001aba919062002d24565b6001600160a01b0316815260200162001ae462001ade60a088016080890162002d24565b620022ea565b815260200162001b0562001aff60a088016080890162002d24565b6200239c565b9052915062001b1b60a085016080860162002d24565b6001600160a01b0316632eb2c2d6333062001b3a60c0890189620036dc565b62001b4960e08b018b620036dc565b6040518763ffffffff1660e01b815260040162001b6c9695949392919062003cde565b5f604051808303815f87803b15801562001b84575f80fd5b505af115801562001b97573d5f803e3d5ffd5b505050505b5030637f07c947823362001bb7606088016040890162002d24565b62001bc660c0890189620036dc565b62001bd560e08b018b620036dc565b60405160200162001bed979695949392919062003d3f565b60408051601f198184030181529082905262001c0c9160240162003df8565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050509150915091565b5f8051602062004595833981519152546001600160a01b031690565b62000ce562001f6c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001c9c576200130c83620023e4565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001cf9575060408051601f3d908101601f1916820190925262001cf69181019062003e0c565b60015b62001d5e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000c57565b5f8051602062004595833981519152811462001dcf5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000c57565b506200130c83838362002482565b6097545f906001600160a01b03168062001e0a57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa15801562001e5d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001e83919062003e24565b91508215801562001e9b57506001600160a01b038216155b1562001ecd57604051632b0d65db60e01b81526001600160401b03861660048201526024810185905260440162000c57565b509392505050565b62001eea60c954610100900460ff1660021490565b62001f085760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b620007415b6033546001600160a01b0316331462000d145760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000c57565b606580546001600160a01b031916905562000ce581620024b2565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b62002016816001620011da565b6001600160a01b0316336001600160a01b0316146200204857604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562002085573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620020ab919062003bbc565b91505f620020cf836040015162000a646c195c98cc4c4d4d57dd985d5b1d609a1b90565b9050806001600160a01b031683602001516001600160a01b0316146200210857604051632583296b60e01b815260040160405180910390fd5b505090565b6001600160a01b03811615806200212c57506001600160a01b03811630145b1562000ce557604051635b50f3f960e01b815260040160405180910390fd5b6200216060c954610100900460ff1660021490565b156200217f5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200162001f5d565b806001600160a01b038116620021e85760405163538ba4f960e01b815260040160405180910390fd5b620021f38362002503565b6200130c826200256a565b5f54610100900460ff1662000d145760405162461bcd60e51b815260040162000c579062003e42565b5f600182148062002239575061426882145b8062002247575062aa36a782145b806200076357506200076382620025de565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b03908116855292529091205416806200229e576200076382620025f6565b919050565b815f03620022b057505050565b620022cc83838360405180602001604052805f815250620027e2565b6200130c57604051634c67134d60e11b815260040160405180910390fd5b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b17905290516060915f9182916001600160a01b0386169162002332919062003e8d565b5f60405180830381855afa9150503d805f81146200236c576040519150601f19603f3d011682016040523d82523d5f602084013e62002371565b606091505b509150915081620023915760405180602001604052805f81525062000cf6565b62000cf68162002820565b60408051600481526024810182526020810180516001600160e01b03166306fdde0360e01b17905290516060915f9182916001600160a01b0386169162002332919062003e8d565b6001600160a01b0381163b620024535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000c57565b5f805160206200459583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6200248d8362002973565b5f825111806200249a5750805b156200130c57620024ac8383620029b4565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166200252c5760405162461bcd60e51b815260040162000c579062003e42565b62002536620021fe565b620025586001600160a01b0382161562002551578162001fc8565b3362001fc8565b5060c9805461ff001916610100179055565b5f54610100900460ff16620025935760405162461bcd60e51b815260040162000c579062003e42565b6001600160401b03461115620025bc5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c821015801562000763575050617e90101590565b5f806200260b6033546001600160a01b031690565b60975460208501518551604080880151606089015191516200263e96956001600160a01b03169493929060240162003eaa565b60408051601f198184030181529190526020810180516001600160e01b03166377c6257360e11b1790529050620026886e627269646765645f6572633131353560881b5f620011da565b81604051620026979062002af6565b620026a492919062003f0f565b604051809103905ff080158015620026be573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d60209081526040918290208751815492890151909416600160401b026001600160e01b03199092166001600160401b03909416939093171782558501519193508491600182019062002724908262003f83565b50606082015160028201906200273b908262003f83565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b03191688851690811790915591518851828a015160608b01519351949750919094169493909316927f44977f2d30fe1e3aee2c1476f2f95aaacaf34e44b9359c403da01fcc93fd751b92620027d492906200404f565b60405180910390a450919050565b5f6001600160a01b0385166200280b57604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b6060604082511062002842578180602001905181019062000763919062004080565b815160200362002960575f5b6020811080156200288157508281815181106200286f576200286f62003724565b01602001516001600160f81b03191615155b156200289a576200289281620040b5565b90506200284e565b805f03620028b757505060408051602081019091525f8152919050565b5f816001600160401b03811115620028d357620028d362002db6565b6040519080825280601f01601f191660200182016040528015620028fe576020820181803683370190505b5090505f5b8281101562001ecd5784818151811062002921576200292162003724565b602001015160f81c60f81b82828151811062002941576200294162003724565b60200101906001600160f81b03191690815f1a90535060010162002903565b505060408051602081019091525f815290565b6200297e81620023e4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620011e88383604051806060016040528060278152602001620045b56027913960605f80856001600160a01b031685604051620029f4919062003e8d565b5f60405180830381855af49150503d805f811462002a2e576040519150601f19603f3d011682016040523d82523d5f602084013e62002a33565b606091505b509150915062002a468683838762002a50565b9695505050505050565b6060831562002ac35782515f0362002abb576001600160a01b0385163b62002abb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000c57565b508162000cf6565b62000cf6838381511562002ada5781518083602001fd5b8060405162461bcd60e51b815260040162000c57919062003df8565b6104c480620040d183390190565b5f806040838503121562002b16575f80fd5b82356001600160401b0381111562002b2c575f80fd5b8301610160818603121562002b3f575f80fd5b946020939093013593505050565b5f6020828403121562002b5e575f80fd5b81356001600160e01b031981168114620011e8575f80fd5b5f6020828403121562002b87575f80fd5b81356001600160401b0381111562002b9d575f80fd5b82016101008185031215620011e8575f80fd5b5f5b8381101562002bcc57818101518382015260200162002bb2565b50505f910152565b5f815180845262002bed81602086016020860162002bb0565b601f01601f19169290920160200192915050565b6020815262002c1c6020820183516001600160401b03169052565b5f602083015162002c3860408401826001600160401b03169052565b50604083015163ffffffff811660608401525060608301516001600160a01b03811660808401525060808301516001600160401b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160401b03811660e08401525060e083015161010062002cbc818501836001600160a01b03169052565b840151905061012062002cd9848201836001600160a01b03169052565b8401516101408481019190915284015161016080850152905062000cf661018084018262002bd4565b6001600160a01b038116811462000ce5575f80fd5b80356200229e8162002d02565b5f6020828403121562002d35575f80fd5b8135620011e88162002d02565b6001600160401b038116811462000ce5575f80fd5b80356200229e8162002d42565b801515811462000ce5575f80fd5b5f805f6060848603121562002d85575f80fd5b833562002d928162002d42565b925060208401359150604084013562002dab8162002d64565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b038111828210171562002def5762002def62002db6565b60405290565b60405161010081016001600160401b038111828210171562002def5762002def62002db6565b60405161016081016001600160401b038111828210171562002def5762002def62002db6565b604051601f8201601f191681016001600160401b038111828210171562002e6c5762002e6c62002db6565b604052919050565b5f6001600160401b0382111562002e8f5762002e8f62002db6565b50601f01601f191660200190565b5f82601f83011262002ead575f80fd5b813562002ec462002ebe8262002e74565b62002e41565b81815284602083860101111562002ed9575f80fd5b816020850160208301375f918101602001919091529392505050565b5f806040838503121562002f07575f80fd5b823562002f148162002d02565b915060208301356001600160401b0381111562002f2f575f80fd5b62002f3d8582860162002e9d565b9150509250929050565b5f806040838503121562002f59575f80fd5b82359150602083013562002f6d8162002d02565b809150509250929050565b5f8083601f84011262002f89575f80fd5b5081356001600160401b0381111562002fa0575f80fd5b60208301915083602082850101111562002fb8575f80fd5b9250929050565b5f806020838503121562002fd1575f80fd5b82356001600160401b0381111562002fe7575f80fd5b62002ff58582860162002f78565b90969095509350505050565b6001600160401b03851681526001600160a01b03841660208201526080604082018190525f90620030359083018562002bd4565b828103606084015262003049818562002bd4565b979650505050505050565b5f806040838503121562003066575f80fd5b82359150602083013562002f6d8162002d64565b5f8083601f8401126200308b575f80fd5b5081356001600160401b03811115620030a2575f80fd5b6020830191508360208260051b850101111562002fb8575f80fd5b5f805f805f805f8060a0898b031215620030d5575f80fd5b8835620030e28162002d02565b97506020890135620030f48162002d02565b965060408901356001600160401b038082111562003110575f80fd5b6200311e8c838d016200307a565b909850965060608b013591508082111562003137575f80fd5b620031458c838d016200307a565b909650945060808b01359150808211156200315e575f80fd5b506200316d8b828c0162002f78565b999c989b5096995094979396929594505050565b5f806040838503121562003193575f80fd5b8235620031a08162002d02565b9150602083013562002f6d8162002d02565b5f805f805f8060a08789031215620031c8575f80fd5b8635620031d58162002d02565b95506020870135620031e78162002d02565b9450604087013593506060870135925060808701356001600160401b0381111562003210575f80fd5b6200321e89828a0162002f78565b979a9699509497509295939492505050565b5f808335601e1984360301811262003246575f80fd5b8301803591506001600160401b0382111562003260575f80fd5b60200191503681900382131562002fb8575f80fd5b5f808585111562003284575f80fd5b8386111562003291575f80fd5b5050820193919092039150565b5f60208284031215620032af575f80fd5b81356001600160401b03811115620032c5575f80fd5b62000cf68482850162002e9d565b80516200229e8162002d42565b80516200229e8162002d02565b5f82601f830112620032fd575f80fd5b81516200330e62002ebe8262002e74565b81815284602083860101111562003323575f80fd5b62000cf682602083016020870162002bb0565b5f6001600160401b0382111562003351576200335162002db6565b5060051b60200190565b5f82601f8301126200336b575f80fd5b815160206200337e62002ebe8362003336565b8083825260208201915060208460051b870101935086841115620033a0575f80fd5b602086015b84811015620033be5780518352918301918301620033a5565b509695505050505050565b5f805f805f60a08688031215620033de575f80fd5b85516001600160401b0380821115620033f5575f80fd5b908701906080828a03121562003409575f80fd5b6200341362002dca565b8251620034208162002d42565b81526020830151620034328162002d02565b602082015260408301518281111562003449575f80fd5b620034578b828601620032ed565b6040830152506060830151828111156200346f575f80fd5b6200347d8b828601620032ed565b60608301525096506200349360208901620032e0565b9550620034a360408901620032e0565b94506060880151915080821115620034b9575f80fd5b620034c789838a016200335b565b93506080880151915080821115620034dd575f80fd5b50620034ec888289016200335b565b9150509295509295909350565b5f815180845260208085019450602084015f5b838110156200352a578151875295820195908201906001016200350c565b509495945050505050565b6001600160a01b038581168252841660208201526080604082018190525f906200356290830185620034f9565b8281036060840152620030498185620034f9565b63ffffffff8116811462000ce5575f80fd5b80356200229e8162003576565b5f82601f830112620035a5575f80fd5b81356020620035b862002ebe8362003336565b8083825260208201915060208460051b870101935086841115620035da575f80fd5b602086015b84811015620033be5780358352918301918301620035df565b5f61010082360312156200360a575f80fd5b6200361462002df5565b6200361f8362002d57565b81526200362f6020840162002d17565b6020820152620036426040840162002d17565b6040820152620036556060840162002d57565b6060820152620036686080840162002d17565b60808201526200367b60a0840162003588565b60a082015260c08301356001600160401b03808211156200369a575f80fd5b620036a83683870162003595565b60c084015260e0850135915080821115620036c1575f80fd5b50620036d03682860162003595565b60e08301525092915050565b5f808335601e19843603018112620036f2575f80fd5b8301803591506001600160401b038211156200370c575f80fd5b6020019150600581901b360382131562002fb8575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562003749575f80fd5b8135620011e88162002d42565b5f6020828403121562003767575f80fd5b8135620011e88162003576565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000763576200076362003774565b80516200229e8162003576565b5f8060408385031215620037bd575f80fd5b8251915060208301516001600160401b0380821115620037db575f80fd5b908401906101608287031215620037f0575f80fd5b620037fa62002e1b565b6200380583620032d3565b81526200381560208401620032d3565b602082015262003828604084016200379e565b60408201526200383b60608401620032e0565b60608201526200384e60808401620032d3565b60808201526200386160a08401620032e0565b60a08201526200387460c08401620032d3565b60c08201526200388760e08401620032e0565b60e08201526101006200389c818501620032e0565b9082015261012083810151908201526101408084015183811115620038bf575f80fd5b620038cd89828701620032ed565b8284015250508093505050509250929050565b8183525f6001600160fb1b03831115620038f8575f80fd5b8260051b80836020870137939093016020019392505050565b6001600160401b03881681526001600160a01b0387811660208301528616604082015260a0606082018190525f906200394e9083018688620038e0565b828103608084015262003963818587620038e0565b9a9950505050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f805f805f60a0868803121562003a1e575f80fd5b85356001600160401b038082111562003a35575f80fd5b908701906080828a03121562003a49575f80fd5b62003a5362002dca565b823562003a608162002d42565b8152602083013562003a728162002d02565b602082015260408301358281111562003a89575f80fd5b62003a978b82860162002e9d565b60408301525060608301358281111562003aaf575f80fd5b62003abd8b82860162002e9d565b606083015250965062003ad36020890162002d17565b955062003ae36040890162002d17565b9450606088013591508082111562003af9575f80fd5b62003b0789838a0162003595565b9350608088013591508082111562003b1d575f80fd5b50620034ec8882890162003595565b6001600160401b03861681526001600160a01b0385811660208301528416604082015260a0606082018190525f9062003b6890830185620034f9565b828103608084015262003b7c8185620034f9565b98975050505050505050565b600181811c9082168062003b9d57607f821691505b60208210810362000bf057634e487b7160e01b5f52602260045260245ffd5b5f6060828403121562003bcd575f80fd5b604051606081018181106001600160401b038211171562003bf25762003bf262002db6565b60405282518152602083015162003c098162002d02565b6020820152604083015162003c1e8162002d42565b60408201529392505050565b6001600160a01b0385811682528416602082015260a0604082018190525f9062003c5790830185620034f9565b828103606084015262003c6b8185620034f9565b83810360809094019390935250505f8152602001949350505050565b6001600160a01b03841681526060602082018190525f9062003cac90830185620034f9565b828103604084015262002a468185620034f9565b5f6020828403121562003cd1575f80fd5b8151620011e88162002d64565b6001600160a01b0387811682528616602082015260a0604082018190525f9062003d0c9083018688620038e0565b828103606084015262003d21818587620038e0565b83810360809094019390935250505f81526020019695505050505050565b60a080825288516001600160401b03169082015260208801516001600160a01b031660c08201526040880151608060e08301525f9062003d8461012084018262002bd4565b905060608a0151609f198483030161010085015262003da4828262002bd4565b91505062003dbd602084018a6001600160a01b03169052565b6001600160a01b0388166040840152828103606084015262003de1818789620038e0565b9050828103608084015262003963818587620038e0565b602081525f620011e8602083018462002bd4565b5f6020828403121562003e1d575f80fd5b5051919050565b5f6020828403121562003e35575f80fd5b8151620011e88162002d02565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f825162003ea081846020870162002bb0565b9190910192915050565b6001600160a01b0387811682528681166020830152851660408201526001600160401b038416606082015260c0608082018190525f9062003eee9083018562002bd4565b82810360a084015262003f02818562002bd4565b9998505050505050505050565b6001600160a01b03831681526040602082018190525f9062000cf69083018462002bd4565b601f8211156200130c57805f5260205f20601f840160051c8101602085101562003f5b5750805b601f840160051c820191505b8181101562003f7c575f815560010162003f67565b5050505050565b81516001600160401b0381111562003f9f5762003f9f62002db6565b62003fb78162003fb0845462003b88565b8462003f34565b602080601f83116001811462003fed575f841562003fd55750858301515b5f19600386901b1c1916600185901b17855562004047565b5f85815260208120601f198616915b828110156200401d5788860151825594840194600190910190840162003ffc565b50858210156200403b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b604081525f62004063604083018562002bd4565b828103602084015262004077818562002bd4565b95945050505050565b5f6020828403121562004091575f80fd5b81516001600160401b03811115620040a7575f80fd5b62000cf684828501620032ed565b5f60018201620040c957620040c962003774565b506001019056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d663a4d1b4b1d1fe8a62f7efcbebbc49fdbde0f90ea972b1d22f96ca608dd14a64736f6c63430008180033", + "balance": "0x0" + }, + "0x1670020000000000000000000000000000000004": { + "contractName": "ERC1155Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670020000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167002000000000000000000000000000000004" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167002000000000000000000000000000010096": { + "contractName": "BridgedERC20", + "storage": {}, + "code": "0x608060405260043610610233575f3560e01c806370a0823111610129578063a77f1516116100a8578063dd62ed3e1161006d578063dd62ed3e14610684578063e07baba6146106a3578063e30c3978146106e2578063f12506c1146106ff578063f2fde38b14610713575f80fd5b8063a77f1516146105e7578063a86f9d9e14610608578063a9059cbb14610627578063b8f2e0c514610646578063bb86ef9314610665575f80fd5b80638456cb59116100ee5780638456cb591461056f5780638abf6077146105835780638da5cb5b1461059757806395d89b41146105b4578063a457c2d7146105c8575f80fd5b806370a08231146104d3578063715018a61461050757806379ba50971461051b5780637cf8ed0d1461052f5780637e4746341461054f575f80fd5b806339509351116101b557806342966c681161017a57806342966c681461045757806349d12605146104765780634f1ef2861461048c57806352d1902d1461049f5780635c975abb146104b3575f80fd5b806339509351146103af5780633ab76e9f146103ce5780633eb6b8cf146104055780633f4ba83a1461042457806340c10f1914610438575f80fd5b806323b872dd116101fb57806323b872dd146102ea57806326afaadd146103095780633075db561461034d578063313ce567146103615780633659cfe61461038e575f80fd5b806301ffc9a71461023757806306fdde031461026b578063095ea7b31461028c5780630ae74548146102ab57806318160ddd146102cc575b5f80fd5b348015610242575f80fd5b5061025661025136600461222e565b610732565b60405190151581526020015b60405180910390f35b348015610276575f80fd5b5061027f6107d4565b6040516102629190612277565b348015610297575f80fd5b506102566102a63660046122bd565b610864565b3480156102b6575f80fd5b5061012f5461025690600160a01b900460ff1681565b3480156102d7575f80fd5b5060fd545b604051908152602001610262565b3480156102f5575f80fd5b506102566103043660046122e7565b61087b565b348015610314575f80fd5b5061032e61012d5461012e546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610262565b348015610358575f80fd5b5061025661089e565b34801561036c575f80fd5b5061012d54600160a01b900460ff165b60405160ff9091168152602001610262565b348015610399575f80fd5b506103ad6103a8366004612325565b6108b2565b005b3480156103ba575f80fd5b506102566103c93660046122bd565b610982565b3480156103d9575f80fd5b506097546103ed906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b348015610410575f80fd5b506103ed61041f366004612354565b6109a3565b34801561042f575f80fd5b506103ad6109b7565b348015610443575f80fd5b506103ad6104523660046122bd565b6109cb565b348015610462575f80fd5b506103ad61047136600461239b565b610ae1565b348015610481575f80fd5b506102dc61012e5481565b6103ad61049a3660046123c6565b610c1a565b3480156104aa575f80fd5b506102dc610ccf565b3480156104be575f80fd5b5061025660c954610100900460ff1660021490565b3480156104de575f80fd5b506102dc6104ed366004612325565b6001600160a01b03165f90815260fb602052604090205490565b348015610512575f80fd5b506103ad610d80565b348015610526575f80fd5b506103ad610d91565b34801561053a575f80fd5b5061012d546103ed906001600160a01b031681565b34801561055a575f80fd5b5061012f546103ed906001600160a01b031681565b34801561057a575f80fd5b506103ad610e08565b34801561058e575f80fd5b506103ed610e1b565b3480156105a2575f80fd5b506033546001600160a01b03166103ed565b3480156105bf575f80fd5b5061027f610e29565b3480156105d3575f80fd5b506102566105e23660046122bd565b610e38565b3480156105f2575f80fd5b5061012d5461037c90600160a01b900460ff1681565b348015610613575f80fd5b506103ed610622366004612484565b610eb2565b348015610632575f80fd5b506102566106413660046122bd565b610ec5565b348015610651575f80fd5b506103ad6106603660046124ae565b610ed2565b348015610670575f80fd5b506103ad61067f36600461251d565b61104b565b34801561068f575f80fd5b506102dc61069e3660046125e0565b61120b565b3480156106ae575f80fd5b5060c9546106c99062010000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610262565b3480156106ed575f80fd5b506065546001600160a01b03166103ed565b34801561070a575f80fd5b50610256611235565b34801561071e575f80fd5b506103ad61072d366004612325565b611260565b5f6001600160e01b0319821663093e326b60e21b148061076257506001600160e01b0319821663bb86ef9360e01b145b8061077d57506001600160e01b0319821663b8f2e0c560e01b145b8061079857506001600160e01b031982166336372b0760e01b145b806107b357506001600160e01b0319821663a219a02560e01b145b806107ce57506001600160e01b031982166301ffc9a760e01b145b92915050565b606060fe80546107e390612617565b80601f016020809104026020016040519081016040528092919081815260200182805461080f90612617565b801561085a5780601f106108315761010080835404028352916020019161085a565b820191905f5260205f20905b81548152906001019060200180831161083d57829003601f168201915b5050505050905090565b5f336108718185856112d1565b5060019392505050565b5f336108888582856113f4565b61089385858561146c565b506001949350505050565b5f60026108a9611620565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670020000000000000000000000000000100961630036109035760405162461bcd60e51b81526004016108fa9061264f565b60405180910390fd5b7f00000000000000000000000001670020000000000000000000000000000100966001600160a01b031661093561165f565b6001600160a01b03161461095b5760405162461bcd60e51b81526004016108fa9061269b565b6109648161167a565b604080515f8082526020820190925261097f91839190611682565b50565b5f33610871818585610994838361120b565b61099e91906126e7565b6112d1565b5f6109af8484846117ec565b949350505050565b6109bf6118df565b6109c9335f611970565b565b6109df60c954610100900460ff1660021490565b156109fd5760405163bae6e2a960e01b815260040160405180910390fd5b6002610a07611620565b60ff1603610a285760405163dfc60d8560e01b815260040160405180910390fd5b610a326002611978565b610a3a611235565b15610a585760405163270bf77560e01b815260040160405180910390fd5b61012f546001600160a01b031633819003610abf57826001600160a01b0316816001600160a01b03167fe502aa3e015149f4b76a0b2b5394e3100903c4af27c3ddc98385395d3f55252684604051610ab291815260200190565b60405180910390a3610ac8565b610ac8336119c0565b610ad28383611a3c565b50610add6001611978565b5050565b610af560c954610100900460ff1660021490565b15610b135760405163bae6e2a960e01b815260040160405180910390fd5b6002610b1d611620565b60ff1603610b3e5760405163dfc60d8560e01b815260040160405180910390fd5b610b486002611978565b610b50611235565b15610bfd5761012f546040518281526001600160a01b0390911690339082907f638edf84937fb2534b47cac985ea84d6ea4f4076315b56ea1c784d26b87e2bcb9060200160405180910390a36040516340c10f1960e01b8152336004820152602481018390526001600160a01b038216906340c10f19906044015f604051808303815f87803b158015610be1575f80fd5b505af1158015610bf3573d5f803e3d5ffd5b5050505050610c06565b610c06336119c0565b610c103382611b06565b61097f6001611978565b6001600160a01b037f0000000000000000000000000167002000000000000000000000000000010096163003610c625760405162461bcd60e51b81526004016108fa9061264f565b7f00000000000000000000000001670020000000000000000000000000000100966001600160a01b0316610c9461165f565b6001600160a01b031614610cba5760405162461bcd60e51b81526004016108fa9061269b565b610cc38261167a565b610add82826001611682565b5f306001600160a01b037f00000000000000000000000001670020000000000000000000000000000100961614610d6e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108fa565b505f805160206128aa83398151915290565b610d88611c43565b6109c95f611c9d565b60655433906001600160a01b03168114610dff5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016108fa565b61097f81611c9d565b610e10611cb6565b6109c9336001611970565b5f610e2461165f565b905090565b606060ff80546107e390612617565b5f3381610e45828661120b565b905083811015610ea55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108fa565b61089382868684036112d1565b5f610ebe4684846117ec565b9392505050565b5f3361087181858561146c565b610ee660c954610100900460ff1660021490565b15610f045760405163bae6e2a960e01b815260040160405180910390fd5b6a195c98cc8c17dd985d5b1d60aa1b610f1e816001610eb2565b6001600160a01b0316336001600160a01b031614610f4f57604051630d85cccf60e11b815260040160405180910390fd5b6002610f59611620565b60ff1603610f7a5760405163dfc60d8560e01b815260040160405180910390fd5b610f846002611978565b61012f546001600160a01b038481169116148015610fb5575061012f60149054906101000a900460ff161515821515145b15610fd35760405163c118d2f360e01b815260040160405180910390fd5b61012f80546001600160a01b0385166001600160a81b03199091168117600160a01b851515908102919091179092556040805191825260208201929092527fa6b6f959792843a48d9d03d13595f2de7c86ae0ce12ef0fa759dd911b205e565910160405180910390a16110466001611978565b505050565b5f54610100900460ff161580801561106957505f54600160ff909116105b806110825750303b15801561108257505f5460ff166001145b6110e55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108fa565b5f805460ff191660011790558015611106575f805461ff0019166101001790555b6111108888611d27565b61111a8a8a611d63565b61118b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8b0181900481028201810190925289815292508991508890819084018382808284375f92019190915250611d9d92505050565b61012d805461012e89905560ff8816600160a01b026001600160a81b03199091166001600160a01b038b161717905580156111ff575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050565b6001600160a01b039182165f90815260fc6020908152604080832093909416825291909152205490565b61012f545f906001600160a01b031615801590610e2457505061012f54600160a01b900460ff161590565b611268611c43565b606580546001600160a01b0383166001600160a01b031990911681179091556112996033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b0383166113335760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108fa565b6001600160a01b0382166113945760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108fa565b6001600160a01b038381165f81815260fc602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6113ff848461120b565b90505f19811461146657818110156114595760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108fa565b61146684848484036112d1565b50505050565b6001600160a01b0383166114d05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108fa565b6001600160a01b0382166115325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108fa565b61153d838383611dcd565b6001600160a01b0383165f90815260fb6020526040902054818110156115b45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108fa565b6001600160a01b038085165f81815260fb602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116139086815260200190565b60405180910390a3611466565b5f61162a46611e08565b1561165557507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f805160206128aa833981519152546001600160a01b031690565b61097f611c43565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116b55761104683611e35565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561170f575060408051601f3d908101601f1916820190925261170c91810190612706565b60015b6117725760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108fa565b5f805160206128aa83398151915281146117e05760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108fa565b50611046838383611ed0565b6097545f906001600160a01b03168061181857604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa15801561186b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061188f919061271d565b9150821580156118a657506001600160a01b038216155b156118d757604051632b0d65db60e01b815267ffffffffffffffff86166004820152602481018590526044016108fa565b509392505050565b6118f360c954610100900460ff1660021490565b6119105760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff0019909116620100004267ffffffffffffffff1602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610add611c43565b61198146611e08565b156119ac57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6a195c98cc8c17dd985d5b1d60aa1b6119e16033546001600160a01b031690565b6001600160a01b0316336001600160a01b031614158015611a1e5750611a08816001610eb2565b6001600160a01b0316336001600160a01b031614155b15610add57604051630d85cccf60e11b815260040160405180910390fd5b6001600160a01b038216611a925760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108fa565b611a9d5f8383611dcd565b8060fd5f828254611aae91906126e7565b90915550506001600160a01b0382165f81815260fb60209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216611b665760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108fa565b611b71825f83611dcd565b6001600160a01b0382165f90815260fb602052604090205481811015611be45760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016108fa565b6001600160a01b0383165f81815260fb60209081526040808320868603905560fd80548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6033546001600160a01b031633146109c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fa565b606580546001600160a01b031916905561097f81611ef4565b611cca60c954610100900460ff1660021490565b15611ce85760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001611966565b6001600160a01b0382161580611d3b575080155b80611d4557504681145b15610add5760405163c118d2f360e01b815260040160405180910390fd5b806001600160a01b038116611d8b5760405163538ba4f960e01b815260040160405180910390fd5b611d9483611f45565b61104682611fa3565b5f54610100900460ff16611dc35760405162461bcd60e51b81526004016108fa90612738565b610add8282612014565b611de160c954610100900460ff1660021490565b15611dff5760405163bae6e2a960e01b815260040160405180910390fd5b61104682612053565b5f6001821480611e19575061426882145b80611e26575062aa36a782145b806107ce57506107ce8261207c565b6001600160a01b0381163b611ea25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108fa565b5f805160206128aa83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611ed983612093565b5f82511180611ee55750805b156110465761146683836120d2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16611f6b5760405162461bcd60e51b81526004016108fa90612738565b611f736120f7565b611f916001600160a01b03821615611f8b5781611c9d565b33611c9d565b5060c9805461ff001916610100179055565b5f54610100900460ff16611fc95760405162461bcd60e51b81526004016108fa90612738565b67ffffffffffffffff461115611ff25760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f54610100900460ff1661203a5760405162461bcd60e51b81526004016108fa90612738565b60fe61204683826127ce565b5060ff61104682826127ce565b306001600160a01b0382160361097f57604051630c292c9d60e21b815260040160405180910390fd5b5f617e2c82101580156107ce575050617e90101590565b61209c81611e35565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610ebe83836040518060600160405280602781526020016128ca6027913961211d565b5f54610100900460ff166109c95760405162461bcd60e51b81526004016108fa90612738565b60605f80856001600160a01b031685604051612139919061288e565b5f60405180830381855af49150503d805f8114612171576040519150601f19603f3d011682016040523d82523d5f602084013e612176565b606091505b509150915061218786838387612191565b9695505050505050565b606083156121ff5782515f036121f8576001600160a01b0385163b6121f85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108fa565b50816109af565b6109af83838151156122145781518083602001fd5b8060405162461bcd60e51b81526004016108fa9190612277565b5f6020828403121561223e575f80fd5b81356001600160e01b031981168114610ebe575f80fd5b5f5b8381101561226f578181015183820152602001612257565b50505f910152565b602081525f8251806020840152612295816040850160208701612255565b601f01601f19169190910160400192915050565b6001600160a01b038116811461097f575f80fd5b5f80604083850312156122ce575f80fd5b82356122d9816122a9565b946020939093013593505050565b5f805f606084860312156122f9575f80fd5b8335612304816122a9565b92506020840135612314816122a9565b929592945050506040919091013590565b5f60208284031215612335575f80fd5b8135610ebe816122a9565b8035801515811461234f575f80fd5b919050565b5f805f60608486031215612366575f80fd5b833567ffffffffffffffff8116811461237d575f80fd5b92506020840135915061239260408501612340565b90509250925092565b5f602082840312156123ab575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f80604083850312156123d7575f80fd5b82356123e2816122a9565b9150602083013567ffffffffffffffff808211156123fe575f80fd5b818501915085601f830112612411575f80fd5b813581811115612423576124236123b2565b604051601f8201601f19908116603f0116810190838211818310171561244b5761244b6123b2565b81604052828152886020848701011115612463575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f8060408385031215612495575f80fd5b823591506124a560208401612340565b90509250929050565b5f80604083850312156124bf575f80fd5b82356124ca816122a9565b91506124a560208401612340565b5f8083601f8401126124e8575f80fd5b50813567ffffffffffffffff8111156124ff575f80fd5b602083019150836020828501011115612516575f80fd5b9250929050565b5f805f805f805f805f60e08a8c031215612535575f80fd5b8935612540816122a9565b985060208a0135612550816122a9565b975060408a0135612560816122a9565b965060608a0135955060808a013560ff8116811461257c575f80fd5b945060a08a013567ffffffffffffffff80821115612598575f80fd5b6125a48d838e016124d8565b909650945060c08c01359150808211156125bc575f80fd5b506125c98c828d016124d8565b915080935050809150509295985092959850929598565b5f80604083850312156125f1575f80fd5b82356125fc816122a9565b9150602083013561260c816122a9565b809150509250929050565b600181811c9082168061262b57607f821691505b60208210810361264957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b808201808211156107ce57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215612716575f80fd5b5051919050565b5f6020828403121561272d575f80fd5b8151610ebe816122a9565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f82111561104657805f5260205f20601f840160051c810160208510156127a85750805b601f840160051c820191505b818110156127c7575f81556001016127b4565b5050505050565b815167ffffffffffffffff8111156127e8576127e86123b2565b6127fc816127f68454612617565b84612783565b602080601f83116001811461282f575f84156128185750858301515b5f19600386901b1c1916600185901b178555612886565b5f85815260208120601f198616915b8281101561285d5788860151825594840194600190910190840161283e565b508582101561287a57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f825161289f818460208701612255565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e71efa9d5f866b742d3a26addbacfbfd103eaf91f295f46862cb9770e13bc53764736f6c63430008180033", + "balance": "0x0" + }, + "0x0167002000000000000000000000000000010097": { + "contractName": "BridgedERC721", + "storage": {}, + "code": "0x608060405260043610610207575f3560e01c80636352211e11610113578063a22cb4651161009d578063e07baba61161006d578063e07baba6146105c3578063e30c397814610600578063e985e9c51461061d578063ef8c4ae614610665578063f2fde38b14610684575f80fd5b8063a22cb46514610547578063a86f9d9e14610566578063b88d4fde14610585578063c87b56dd146105a4575f80fd5b80637cf8ed0d116100e35780637cf8ed0d146104ce5780638456cb59146104ee5780638abf6077146105025780638da5cb5b1461051657806395d89b4114610533575f80fd5b80636352211e1461046857806370a0823114610487578063715018a6146104a657806379ba5097146104ba575f80fd5b80633eb6b8cf1161019457806342966c681161016457806342966c68146103de57806349d12605146103fd5780634f1ef2861461042157806352d1902d146104345780635c975abb14610448575f80fd5b80633eb6b8cf1461036d5780633f4ba83a1461038c57806340c10f19146103a057806342842e0e146103bf575f80fd5b806323b872dd116101da57806323b872dd146102b857806326afaadd146102d75780633075db561461031b5780633659cfe61461032f5780633ab76e9f1461034e575f80fd5b806301ffc9a71461020b57806306fdde031461023f578063081812fc14610260578063095ea7b314610297575b5f80fd5b348015610216575f80fd5b5061022a6102253660046125e5565b6106a3565b60405190151581526020015b60405180910390f35b34801561024a575f80fd5b506102536106e8565b604051610236919061264d565b34801561026b575f80fd5b5061027f61027a36600461265f565b610779565b6040516001600160a01b039091168152602001610236565b3480156102a2575f80fd5b506102b66102b136600461268a565b61079f565b005b3480156102c3575f80fd5b506102b66102d23660046126b4565b6108b8565b3480156102e2575f80fd5b506102fc61015f54610160546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610236565b348015610326575f80fd5b5061022a6108e9565b34801561033a575f80fd5b506102b66103493660046126f2565b6108fd565b348015610359575f80fd5b5060975461027f906001600160a01b031681565b348015610378575f80fd5b5061027f610387366004612721565b6109c4565b348015610397575f80fd5b506102b66109d8565b3480156103ab575f80fd5b506102b66103ba36600461268a565b6109ec565b3480156103ca575f80fd5b506102b66103d93660046126b4565b610ab3565b3480156103e9575f80fd5b506102b66103f836600461265f565b610acd565b348015610408575f80fd5b506104136101605481565b604051908152602001610236565b6102b661042f366004612803565b610bc8565b34801561043f575f80fd5b50610413610c7d565b348015610453575f80fd5b5061022a60c954610100900460ff1660021490565b348015610473575f80fd5b5061027f61048236600461265f565b610d2e565b348015610492575f80fd5b506104136104a13660046126f2565b610d8e565b3480156104b1575f80fd5b506102b6610e13565b3480156104c5575f80fd5b506102b6610e24565b3480156104d9575f80fd5b5061015f5461027f906001600160a01b031681565b3480156104f9575f80fd5b506102b6610e9b565b34801561050d575f80fd5b5061027f610eae565b348015610521575f80fd5b506033546001600160a01b031661027f565b34801561053e575f80fd5b50610253610ebc565b348015610552575f80fd5b506102b661056136600461284f565b610ecc565b348015610571575f80fd5b5061027f610580366004612882565b610ed7565b348015610590575f80fd5b506102b661059f3660046128a3565b610eea565b3480156105af575f80fd5b506102536105be36600461265f565b610f22565b3480156105ce575f80fd5b5060c9546105e8906201000090046001600160401b031681565b6040516001600160401b039091168152602001610236565b34801561060b575f80fd5b506065546001600160a01b031661027f565b348015610628575f80fd5b5061022a61063736600461290a565b6001600160a01b039182165f9081526101326020908152604080832093909416825291909152205460ff1690565b348015610670575f80fd5b506102b661067f366004612985565b610f4b565b34801561068f575f80fd5b506102b661069e3660046126f2565b6110fd565b5f6001600160e01b0319821663093e326b60e21b14806106d357506001600160e01b031982166377c6257360e11b145b806106e257506106e28261116e565b92915050565b606061012d80546106f890612a2e565b80601f016020809104026020016040519081016040528092919081815260200182805461072490612a2e565b801561076f5780601f106107465761010080835404028352916020019161076f565b820191905f5260205f20905b81548152906001019060200180831161075257829003601f168201915b5050505050905090565b5f610783826111bd565b505f90815261013160205260409020546001600160a01b031690565b5f6107a982610d2e565b9050806001600160a01b0316836001600160a01b03160361081b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061083757506108378133610637565b6108a95760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610812565b6108b3838361121c565b505050565b6108c2338261128a565b6108de5760405162461bcd60e51b815260040161081290612a66565b6108b3838383611307565b5f60026108f4611479565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670020000000000000000000000000000100971630036109455760405162461bcd60e51b815260040161081290612ab3565b7f00000000000000000000000001670020000000000000000000000000000100976001600160a01b03166109776114b8565b6001600160a01b03161461099d5760405162461bcd60e51b815260040161081290612aff565b6109a6816114d3565b604080515f808252602082019092526109c1918391906114db565b50565b5f6109d0848484611645565b949350505050565b6109e0611736565b6109ea335f6117c6565b565b610a0060c954610100900460ff1660021490565b15610a1e5760405163bae6e2a960e01b815260040160405180910390fd5b6b195c98cdcc8c57dd985d5b1d60a21b610a39816001610ed7565b6001600160a01b0316336001600160a01b031614610a6a57604051630d85cccf60e11b815260040160405180910390fd5b6002610a74611479565b60ff1603610a955760405163dfc60d8560e01b815260040160405180910390fd5b610a9f60026117ce565b610aa98383611816565b6108b360016117ce565b6108b383838360405180602001604052805f815250610eea565b610ae160c954610100900460ff1660021490565b15610aff5760405163bae6e2a960e01b815260040160405180910390fd5b6b195c98cdcc8c57dd985d5b1d60a21b610b1a816001610ed7565b6001600160a01b0316336001600160a01b031614610b4b57604051630d85cccf60e11b815260040160405180910390fd5b6002610b55611479565b60ff1603610b765760405163dfc60d8560e01b815260040160405180910390fd5b610b8060026117ce565b33610b8a83610d2e565b6001600160a01b031614610bb15760405163358bf3d960e01b815260040160405180910390fd5b610bba8261182f565b610bc460016117ce565b5050565b6001600160a01b037f0000000000000000000000000167002000000000000000000000000000010097163003610c105760405162461bcd60e51b815260040161081290612ab3565b7f00000000000000000000000001670020000000000000000000000000000100976001600160a01b0316610c426114b8565b6001600160a01b031614610c685760405162461bcd60e51b815260040161081290612aff565b610c71826114d3565b610bc4828260016114db565b5f306001600160a01b037f00000000000000000000000001670020000000000000000000000000000100971614610d1c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610812565b505f80516020612ebd83398151915290565b5f81815261012f60205260408120546001600160a01b0316806106e25760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610812565b5f6001600160a01b038216610df75760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610812565b506001600160a01b03165f908152610130602052604090205490565b610e1b6118d1565b6109ea5f61192b565b60655433906001600160a01b03168114610e925760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610812565b6109c18161192b565b610ea3611944565b6109ea3360016117c6565b5f610eb76114b8565b905090565b606061012e80546106f890612a2e565b610bc43383836119b5565b5f610ee3468484611645565b9392505050565b610ef4338361128a565b610f105760405162461bcd60e51b815260040161081290612a66565b610f1c84848484611a83565b50505050565b61015f54610160546060916106e2916001600160a01b0390911690610f4685611ab6565b611b45565b5f54610100900460ff1615808015610f6957505f54600160ff909116105b80610f825750303b158015610f8257505f5460ff166001145b610fe55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610812565b5f805460ff191660011790558015611006575f805461ff0019166101001790555b6110108787611b8f565b61101a8989611bcb565b61108b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8b0181900481028201810190925289815292508991508890819084018382808284375f92019190915250611c0592505050565b61015f80546001600160a01b0319166001600160a01b03891617905561016086905580156110f2575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6111056118d1565b606580546001600160a01b0383166001600160a01b031990911681179091556111366033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f6001600160e01b031982166380ac58cd60e01b148061119e57506001600160e01b03198216635b5e139f60e01b145b806106e257506301ffc9a760e01b6001600160e01b03198316146106e2565b5f81815261012f60205260409020546001600160a01b03166109c15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610812565b5f8181526101316020526040902080546001600160a01b0319166001600160a01b038416908117909155819061125182610d2e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f8061129583610d2e565b9050806001600160a01b0316846001600160a01b031614806112dc57506001600160a01b038082165f908152610132602090815260408083209388168352929052205460ff165b806109d05750836001600160a01b03166112f584610779565b6001600160a01b031614949350505050565b826001600160a01b031661131a82610d2e565b6001600160a01b0316146113405760405162461bcd60e51b815260040161081290612b4b565b6001600160a01b0382166113a25760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610812565b6113af8383836001611c35565b826001600160a01b03166113c282610d2e565b6001600160a01b0316146113e85760405162461bcd60e51b815260040161081290612b4b565b5f8181526101316020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652610130855283862080545f190190559087168086528386208054600101905586865261012f90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5f61148346611c75565b156114ae57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020612ebd833981519152546001600160a01b031690565b6109c16118d1565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561150e576108b383611ca2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611568575060408051601f3d908101601f1916820190925261156591810190612b90565b60015b6115cb5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610812565b5f80516020612ebd83398151915281146116395760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610812565b506108b3838383611d3d565b6097545f906001600160a01b03168061167157604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa1580156116c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e79190612ba7565b9150821580156116fe57506001600160a01b038216155b1561172e57604051632b0d65db60e01b81526001600160401b038616600482015260248101859052604401610812565b509392505050565b61174a60c954610100900460ff1660021490565b6117675760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610bc46118d1565b6117d746611c75565b1561180257807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b610bc4828260405180602001604052805f815250611d61565b5f61183982610d2e565b9050611848815f846001611c35565b61185182610d2e565b5f8381526101316020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552610130845282852080545f1901905587855261012f909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6033546001600160a01b031633146109ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610812565b606580546001600160a01b03191690556109c181611d93565b61195860c954610100900460ff1660021490565b156119765760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016117bc565b816001600160a01b0316836001600160a01b031603611a165760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610812565b6001600160a01b038381165f8181526101326020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611a8e848484611307565b611a9a84848484611de4565b610f1c5760405162461bcd60e51b815260040161081290612bc2565b60605f611ac283611ee1565b60010190505f816001600160401b03811115611ae057611ae0612767565b6040519080825280601f01601f191660200182016040528015611b0a576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611b1457509392505050565b6060611b5b846001600160a01b03166014611fb8565b611b6484611ab6565b83604051602001611b7793929190612c14565b60405160208183030381529060405290509392505050565b6001600160a01b0382161580611ba3575080155b80611bad57504681145b15610bc45760405163c118d2f360e01b815260040160405180910390fd5b806001600160a01b038116611bf35760405163538ba4f960e01b815260040160405180910390fd5b611bfc8361214d565b6108b3826121ab565b5f54610100900460ff16611c2b5760405162461bcd60e51b815260040161081290612c98565b610bc4828261221b565b611c4960c954610100900460ff1660021490565b15611c675760405163bae6e2a960e01b815260040160405180910390fd5b611c708361225c565b610f1c565b5f6001821480611c86575061426882145b80611c93575062aa36a782145b806106e257506106e282612285565b6001600160a01b0381163b611d0f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610812565b5f80516020612ebd83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611d468361229c565b5f82511180611d525750805b156108b357610f1c83836122db565b611d6b8383612300565b611d775f848484611de4565b6108b35760405162461bcd60e51b815260040161081290612bc2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6001600160a01b0384163b15611ed657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611e27903390899088908890600401612ce3565b6020604051808303815f875af1925050508015611e61575060408051601f3d908101601f19168201909252611e5e91810190612d15565b60015b611ebc573d808015611e8e576040519150601f19603f3d011682016040523d82523d5f602084013e611e93565b606091505b5080515f03611eb45760405162461bcd60e51b815260040161081290612bc2565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506109d0565b506001949350505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611f1f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611f4b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611f6957662386f26fc10000830492506010015b6305f5e1008310611f81576305f5e100830492506008015b6127108310611f9557612710830492506004015b60648310611fa7576064830492506002015b600a83106106e25760010192915050565b60605f611fc6836002612d44565b611fd1906002612d5b565b6001600160401b03811115611fe857611fe8612767565b6040519080825280601f01601f191660200182016040528015612012576020820181803683370190505b509050600360fc1b815f8151811061202c5761202c612d6e565b60200101906001600160f81b03191690815f1a905350600f60fb1b8160018151811061205a5761205a612d6e565b60200101906001600160f81b03191690815f1a9053505f61207c846002612d44565b612087906001612d5b565b90505b60018111156120fe576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106120bb576120bb612d6e565b1a60f81b8282815181106120d1576120d1612d6e565b60200101906001600160f81b03191690815f1a90535060049490941c936120f781612d82565b905061208a565b508315610ee35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610812565b5f54610100900460ff166121735760405162461bcd60e51b815260040161081290612c98565b61217b612499565b6121996001600160a01b03821615612193578161192b565b3361192b565b5060c9805461ff001916610100179055565b5f54610100900460ff166121d15760405162461bcd60e51b815260040161081290612c98565b6001600160401b034611156121f95760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f54610100900460ff166122415760405162461bcd60e51b815260040161081290612c98565b61012d61224e8382612de2565b5061012e6108b38282612de2565b306001600160a01b038216036109c157604051630c292c9d60e21b815260040160405180910390fd5b5f617e2c82101580156106e2575050617e90101590565b6122a581611ca2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610ee38383604051806060016040528060278152602001612edd602791396124bf565b6001600160a01b0382166123565760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610812565b5f81815261012f60205260409020546001600160a01b0316156123bb5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610812565b6123c85f83836001611c35565b5f81815261012f60205260409020546001600160a01b03161561242d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610812565b6001600160a01b0382165f818152610130602090815260408083208054600101905584835261012f90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f54610100900460ff166109ea5760405162461bcd60e51b815260040161081290612c98565b60605f80856001600160a01b0316856040516124db9190612ea1565b5f60405180830381855af49150503d805f8114612513576040519150601f19603f3d011682016040523d82523d5f602084013e612518565b606091505b509150915061252986838387612533565b9695505050505050565b606083156125a15782515f0361259a576001600160a01b0385163b61259a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610812565b50816109d0565b6109d083838151156125b65781518083602001fd5b8060405162461bcd60e51b8152600401610812919061264d565b6001600160e01b0319811681146109c1575f80fd5b5f602082840312156125f5575f80fd5b8135610ee3816125d0565b5f5b8381101561261a578181015183820152602001612602565b50505f910152565b5f8151808452612639816020860160208601612600565b601f01601f19169290920160200192915050565b602081525f610ee36020830184612622565b5f6020828403121561266f575f80fd5b5035919050565b6001600160a01b03811681146109c1575f80fd5b5f806040838503121561269b575f80fd5b82356126a681612676565b946020939093013593505050565b5f805f606084860312156126c6575f80fd5b83356126d181612676565b925060208401356126e181612676565b929592945050506040919091013590565b5f60208284031215612702575f80fd5b8135610ee381612676565b8035801515811461271c575f80fd5b919050565b5f805f60608486031215612733575f80fd5b83356001600160401b0381168114612749575f80fd5b92506020840135915061275e6040850161270d565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261278a575f80fd5b81356001600160401b03808211156127a4576127a4612767565b604051601f8301601f19908116603f011681019082821181831017156127cc576127cc612767565b816040528381528660208588010111156127e4575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f8060408385031215612814575f80fd5b823561281f81612676565b915060208301356001600160401b03811115612839575f80fd5b6128458582860161277b565b9150509250929050565b5f8060408385031215612860575f80fd5b823561286b81612676565b91506128796020840161270d565b90509250929050565b5f8060408385031215612893575f80fd5b823591506128796020840161270d565b5f805f80608085870312156128b6575f80fd5b84356128c181612676565b935060208501356128d181612676565b92506040850135915060608501356001600160401b038111156128f2575f80fd5b6128fe8782880161277b565b91505092959194509250565b5f806040838503121561291b575f80fd5b823561292681612676565b9150602083013561293681612676565b809150509250929050565b5f8083601f840112612951575f80fd5b5081356001600160401b03811115612967575f80fd5b60208301915083602082850101111561297e575f80fd5b9250929050565b5f805f805f805f8060c0898b03121561299c575f80fd5b88356129a781612676565b975060208901356129b781612676565b965060408901356129c781612676565b95506060890135945060808901356001600160401b03808211156129e9575f80fd5b6129f58c838d01612941565b909650945060a08b0135915080821115612a0d575f80fd5b50612a1a8b828c01612941565b999c989b5096995094979396929594505050565b600181811c90821680612a4257607f821691505b602082108103612a6057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b5f60208284031215612ba0575f80fd5b5051919050565b5f60208284031215612bb7575f80fd5b8151610ee381612676565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6832ba3432b932bab69d60b91b81525f8451612c37816009850160208901612600565b600160fe1b6009918401918201528451612c5881600a840160208901612600565b712f746f6b656e5552493f75696e743235363d60701b600a92909101918201528351612c8b81601c840160208801612600565b01601c0195945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061252990830184612622565b5f60208284031215612d25575f80fd5b8151610ee3816125d0565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106e2576106e2612d30565b808201808211156106e2576106e2612d30565b634e487b7160e01b5f52603260045260245ffd5b5f81612d9057612d90612d30565b505f190190565b601f8211156108b357805f5260205f20601f840160051c81016020851015612dbc5750805b601f840160051c820191505b81811015612ddb575f8155600101612dc8565b5050505050565b81516001600160401b03811115612dfb57612dfb612767565b612e0f81612e098454612a2e565b84612d97565b602080601f831160018114612e42575f8415612e2b5750858301515b5f19600386901b1c1916600185901b178555612e99565b5f85815260208120601f198616915b82811015612e7057888601518255948401946001909101908401612e51565b5085821015612e8d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f8251612eb2818460208701612600565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122093f8380e7fb2b66a246c9f54dba067ba35eb6d37cdb1f1a8347242f8a4292bc664736f6c63430008180033", + "balance": "0x0" + }, + "0x0167002000000000000000000000000000010098": { + "contractName": "BridgedERC1155", + "storage": {}, + "code": "0x6080604052600436106101e5575f3560e01c8063715018a611610108578063a86f9d9e1161009d578063e30c39781161006d578063e30c39781461056f578063e985e9c51461058c578063ef8c4ae6146105d4578063f242432a146105f3578063f2fde38b14610612575f80fd5b8063a86f9d9e146104d5578063b390c0ab146104f4578063d81d0a1514610513578063e07baba614610532575f80fd5b80638abf6077116100d85780638abf6077146104715780638da5cb5b1461048557806395d89b41146104a2578063a22cb465146104b6575f80fd5b8063715018a61461041557806379ba5097146104295780637cf8ed0d1461043d5780638456cb591461045d575f80fd5b80633ab76e9f1161017e5780634e1273f41161014e5780634e1273f4146103a25780634f1ef286146103ce57806352d1902d146103e15780635c975abb146103f5575f80fd5b80633ab76e9f146103225780633eb6b8cf146103595780633f4ba83a1461037857806349d126051461038c575f80fd5b806326afaadd116101b957806326afaadd1461028a5780632eb2c2d6146102ce5780633075db56146102ef5780633659cfe614610303575f80fd5b8062fdd58e146101e957806301ffc9a71461021b57806306fdde031461024a5780630e89341c1461026b575b5f80fd5b3480156101f4575f80fd5b50610208610203366004612749565b610631565b6040519081526020015b60405180910390f35b348015610226575f80fd5b5061023a610235366004612788565b6106cb565b6040519015158152602001610212565b348015610255575f80fd5b5061025e61070a565b60405161021291906127f0565b348015610276575f80fd5b5061025e610285366004612802565b610797565b348015610295575f80fd5b506102af61015f54610160546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610212565b3480156102d9575f80fd5b506102ed6102e836600461295d565b61082a565b005b3480156102fa575f80fd5b5061023a610876565b34801561030e575f80fd5b506102ed61031d366004612a03565b61088a565b34801561032d575f80fd5b50609754610341906001600160a01b031681565b6040516001600160a01b039091168152602001610212565b348015610364575f80fd5b50610341610373366004612a32565b610951565b348015610383575f80fd5b506102ed610965565b348015610397575f80fd5b506102086101605481565b3480156103ad575f80fd5b506103c16103bc366004612a78565b610979565b6040516102129190612b78565b6102ed6103dc366004612b8a565b610a98565b3480156103ec575f80fd5b50610208610b51565b348015610400575f80fd5b5061023a60c954610100900460ff1660021490565b348015610420575f80fd5b506102ed610c03565b348015610434575f80fd5b506102ed610c14565b348015610448575f80fd5b5061015f54610341906001600160a01b031681565b348015610468575f80fd5b506102ed610c8b565b34801561047c575f80fd5b50610341610c9e565b348015610490575f80fd5b506033546001600160a01b0316610341565b3480156104ad575f80fd5b5061025e610cac565b3480156104c1575f80fd5b506102ed6104d0366004612bcc565b610cba565b3480156104e0575f80fd5b506103416104ef366004612bff565b610cc5565b3480156104ff575f80fd5b506102ed61050e366004612c20565b610cd8565b34801561051e575f80fd5b506102ed61052d366004612c87565b610da6565b34801561053d575f80fd5b5060c954610557906201000090046001600160401b031681565b6040516001600160401b039091168152602001610212565b34801561057a575f80fd5b506065546001600160a01b0316610341565b348015610597575f80fd5b5061023a6105a6366004612d03565b6001600160a01b039182165f90815261012e6020908152604080832093909416825291909152205460ff1690565b3480156105df575f80fd5b506102ed6105ee366004612d77565b610ee6565b3480156105fe575f80fd5b506102ed61060d366004612e20565b611066565b34801561061d575f80fd5b506102ed61062c366004612a03565b6110ab565b5f6001600160a01b0383166106a05760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b505f81815261012d602090815260408083206001600160a01b03861684529091529020545b92915050565b5f6001600160e01b03198216634d22606360e01b14806106fb57506001600160e01b031982166377c6257360e11b145b806106c557506106c58261111c565b610162805461071890612e83565b80601f016020809104026020016040519081016040528092919081815260200182805461074490612e83565b801561078f5780601f106107665761010080835404028352916020019161078f565b820191905f5260205f20905b81548152906001019060200180831161077257829003601f168201915b505050505081565b606061012f80546107a790612e83565b80601f01602080910402602001604051908101604052809291908181526020018280546107d390612e83565b801561081e5780601f106107f55761010080835404028352916020019161081e565b820191905f5260205f20905b81548152906001019060200180831161080157829003601f168201915b50505050509050919050565b6001600160a01b038516331480610846575061084685336105a6565b6108625760405162461bcd60e51b815260040161069790612ebb565b61086f858585858561116b565b5050505050565b5f6002610881611306565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670020000000000000000000000000000100981630036108d25760405162461bcd60e51b815260040161069790612f09565b7f00000000000000000000000001670020000000000000000000000000000100986001600160a01b0316610904611345565b6001600160a01b03161461092a5760405162461bcd60e51b815260040161069790612f55565b61093381611360565b604080515f8082526020820190925261094e91839190611368565b50565b5f61095d8484846114d2565b949350505050565b61096d6115bb565b610977335f61164b565b565b606081518351146109de5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610697565b5f83516001600160401b038111156109f8576109f8612819565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5090505f5b8451811015610a9057610a6b858281518110610a4457610a44612fa1565b6020026020010151858381518110610a5e57610a5e612fa1565b6020026020010151610631565b828281518110610a7d57610a7d612fa1565b6020908102919091010152600101610a26565b509392505050565b6001600160a01b037f0000000000000000000000000167002000000000000000000000000000010098163003610ae05760405162461bcd60e51b815260040161069790612f09565b7f00000000000000000000000001670020000000000000000000000000000100986001600160a01b0316610b12611345565b6001600160a01b031614610b385760405162461bcd60e51b815260040161069790612f55565b610b4182611360565b610b4d82826001611368565b5050565b5f306001600160a01b037f00000000000000000000000001670020000000000000000000000000000100981614610bf05760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610697565b505f805160206135858339815191525b90565b610c0b61164f565b6109775f6116a9565b60655433906001600160a01b03168114610c825760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610697565b61094e816116a9565b610c936116c2565b61097733600161164b565b5f610ca7611345565b905090565b610161805461071890612e83565b610b4d338383611733565b5f610cd14684846114d2565b9392505050565b610cec60c954610100900460ff1660021490565b15610d0a5760405163bae6e2a960e01b815260040160405180910390fd5b6c195c98cc4c4d4d57dd985d5b1d609a1b610d26816001610cc5565b6001600160a01b0316336001600160a01b031614610d5757604051630d85cccf60e11b815260040160405180910390fd5b6002610d61611306565b60ff1603610d825760405163dfc60d8560e01b815260040160405180910390fd5b610d8c6002611813565b610d9733848461185b565b610da16001611813565b505050565b610dba60c954610100900460ff1660021490565b15610dd85760405163bae6e2a960e01b815260040160405180910390fd5b6c195c98cc4c4d4d57dd985d5b1d609a1b610df4816001610cc5565b6001600160a01b0316336001600160a01b031614610e2557604051630d85cccf60e11b815260040160405180910390fd5b6002610e2f611306565b60ff1603610e505760405163dfc60d8560e01b815260040160405180910390fd5b610e5a6002611813565b610ed4868686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050604080516020808a028281018201909352898252909350899250889182918501908490808284375f920182905250604080516020810190915290815292506119ef915050565b610ede6001611813565b505050505050565b5f54610100900460ff1615808015610f0457505f54600160ff909116105b80610f1d5750303b158015610f1d57505f5460ff166001145b610f805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610697565b5f805460ff191660011790558015610fa1575f805461ff0019166101001790555b610fab8787611b71565b610fb58989611bad565b610fd6610fd1888860405180602001604052805f815250611be7565b611c31565b61015f80546001600160a01b0319166001600160a01b038916179055610160869055610161611006858783612ff9565b50610162611015838583612ff9565b50801561105b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6001600160a01b038516331480611082575061108285336105a6565b61109e5760405162461bcd60e51b815260040161069790612ebb565b61086f8585858585611c60565b6110b361164f565b606580546001600160a01b0383166001600160a01b031990911681179091556110e46033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f6001600160e01b03198216636cdb3d1360e11b148061114c57506001600160e01b031982166303a24d0760e21b145b806106c557506301ffc9a760e01b6001600160e01b03198316146106c5565b815183511461118c5760405162461bcd60e51b8152600401610697906130b2565b6001600160a01b0384166111b25760405162461bcd60e51b8152600401610697906130fa565b336111c1818787878787611d8f565b5f5b84518110156112a0575f8582815181106111df576111df612fa1565b602002602001015190505f8583815181106111fc576111fc612fa1565b6020908102919091018101515f84815261012d835260408082206001600160a01b038e16835290935291909120549091508181101561124d5760405162461bcd60e51b81526004016106979061313f565b5f83815261012d602090815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061128c90849061319d565b9091555050600190930192506111c3915050565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516112f09291906131b0565b60405180910390a4610ede818787878787611dcf565b5f61131046611f29565b1561133b57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020613585833981519152546001600160a01b031690565b61094e61164f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561139b57610da183611f56565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156113f5575060408051601f3d908101601f191682019092526113f2918101906131dd565b60015b6114585760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610697565b5f8051602061358583398151915281146114c65760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610697565b50610da1838383611ff1565b6097545f906001600160a01b0316806114fe57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa158015611550573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157491906131f4565b91508215801561158b57506001600160a01b038216155b15610a9057604051632b0d65db60e01b81526001600160401b038616600482015260248101859052604401610697565b6115cf60c954610100900460ff1660021490565b6115ec5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610b4d5b6033546001600160a01b031633146109775760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610697565b606580546001600160a01b031916905561094e8161201b565b6116d660c954610100900460ff1660021490565b156116f45760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001611641565b816001600160a01b0316836001600160a01b0316036117a65760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610697565b6001600160a01b038381165f81815261012e6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61181c46611f29565b1561184757807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6001600160a01b0383166118bd5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610697565b335f6118c88461206c565b90505f6118d48461206c565b90506118f283875f858560405180602001604052805f815250611d8f565b5f85815261012d602090815260408083206001600160a01b038a168452909152902054848110156119715760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610697565b5f86815261012d602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a460408051602081019091525f90525b50505050505050565b6001600160a01b038416611a4f5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610697565b8151835114611a705760405162461bcd60e51b8152600401610697906130b2565b33611a7f815f87878787611d8f565b5f5b8451811015611b0b57838181518110611a9c57611a9c612fa1565b602002602001015161012d5f878481518110611aba57611aba612fa1565b602002602001015181526020019081526020015f205f886001600160a01b03166001600160a01b031681526020019081526020015f205f828254611afe919061319d565b9091555050600101611a81565b50846001600160a01b03165f6001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611b5b9291906131b0565b60405180910390a461086f815f87878787611dcf565b6001600160a01b0382161580611b85575080155b80611b8f57504681145b15610b4d5760405163c118d2f360e01b815260040160405180910390fd5b806001600160a01b038116611bd55760405163538ba4f960e01b815260040160405180910390fd5b611bde836120b5565b610da182612113565b6060611bfd846001600160a01b03166014612183565b611c0684612318565b83604051602001611c199392919061320f565b60405160208183030381529060405290509392505050565b5f54610100900460ff16611c575760405162461bcd60e51b815260040161069790613293565b61094e816123a7565b6001600160a01b038416611c865760405162461bcd60e51b8152600401610697906130fa565b335f611c918561206c565b90505f611c9d8561206c565b9050611cad838989858589611d8f565b5f86815261012d602090815260408083206001600160a01b038c16845290915290205485811015611cf05760405162461bcd60e51b81526004016106979061313f565b5f87815261012d602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290611d2f90849061319d565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461105b848a8a8a8a8a6123d6565b611da360c954610100900460ff1660021490565b15611dc15760405163bae6e2a960e01b815260040160405180910390fd5b611dca84612490565b610ede565b6001600160a01b0384163b15610ede5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611e1390899089908890889088906004016132de565b6020604051808303815f875af1925050508015611e4d575060408051601f3d908101601f19168201909252611e4a9181019061333b565b60015b611ef957611e59613356565b806308c379a003611e925750611e6d61336e565b80611e785750611e94565b8060405162461bcd60e51b815260040161069791906127f0565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610697565b6001600160e01b0319811663bc197c8160e01b146119e65760405162461bcd60e51b8152600401610697906133f6565b5f6001821480611f3a575061426882145b80611f47575062aa36a782145b806106c557506106c5826124b9565b6001600160a01b0381163b611fc35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610697565b5f8051602061358583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611ffa836124d0565b5f825111806120065750805b15610da157612015838361250f565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160018082528183019092526060915f91906020808301908036833701905050905082815f815181106120a4576120a4612fa1565b602090810291909101015292915050565b5f54610100900460ff166120db5760405162461bcd60e51b815260040161069790613293565b6120e3612534565b6121016001600160a01b038216156120fb57816116a9565b336116a9565b5060c9805461ff001916610100179055565b5f54610100900460ff166121395760405162461bcd60e51b815260040161069790613293565b6001600160401b034611156121615760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b60605f61219183600261343e565b61219c90600261319d565b6001600160401b038111156121b3576121b3612819565b6040519080825280601f01601f1916602001820160405280156121dd576020820181803683370190505b509050600360fc1b815f815181106121f7576121f7612fa1565b60200101906001600160f81b03191690815f1a905350600f60fb1b8160018151811061222557612225612fa1565b60200101906001600160f81b03191690815f1a9053505f61224784600261343e565b61225290600161319d565b90505b60018111156122c9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061228657612286612fa1565b1a60f81b82828151811061229c5761229c612fa1565b60200101906001600160f81b03191690815f1a90535060049490941c936122c281613455565b9050612255565b508315610cd15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610697565b60605f6123248361255a565b60010190505f816001600160401b0381111561234257612342612819565b6040519080825280601f01601f19166020018201604052801561236c576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461237657509392505050565b5f54610100900460ff166123cd5760405162461bcd60e51b815260040161069790613293565b61094e81612631565b6001600160a01b0384163b15610ede5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061241a908990899088908890889060040161346a565b6020604051808303815f875af1925050508015612454575060408051601f3d908101601f191682019092526124519181019061333b565b60015b61246057611e59613356565b6001600160e01b0319811663f23a6e6160e01b146119e65760405162461bcd60e51b8152600401610697906133f6565b306001600160a01b0382160361094e57604051630c292c9d60e21b815260040160405180910390fd5b5f617e2c82101580156106c5575050617e90101590565b6124d981611f56565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610cd183836040518060600160405280602781526020016135a56027913961263e565b5f54610100900460ff166109775760405162461bcd60e51b815260040161069790613293565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106125985772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106125c4576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106125e257662386f26fc10000830492506010015b6305f5e10083106125fa576305f5e100830492506008015b612710831061260e57612710830492506004015b60648310612620576064830492506002015b600a83106106c55760010192915050565b61012f610b4d82826134ae565b60605f80856001600160a01b03168560405161265a9190613569565b5f60405180830381855af49150503d805f8114612692576040519150601f19603f3d011682016040523d82523d5f602084013e612697565b606091505b50915091506126a8868383876126b2565b9695505050505050565b606083156127205782515f03612719576001600160a01b0385163b6127195760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610697565b508161095d565b61095d8383815115611e785781518083602001fd5b6001600160a01b038116811461094e575f80fd5b5f806040838503121561275a575f80fd5b823561276581612735565b946020939093013593505050565b6001600160e01b03198116811461094e575f80fd5b5f60208284031215612798575f80fd5b8135610cd181612773565b5f5b838110156127bd5781810151838201526020016127a5565b50505f910152565b5f81518084526127dc8160208601602086016127a3565b601f01601f19169290920160200192915050565b602081525f610cd160208301846127c5565b5f60208284031215612812575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f191681016001600160401b038111828210171561285257612852612819565b6040525050565b5f6001600160401b0382111561287157612871612819565b5060051b60200190565b5f82601f83011261288a575f80fd5b8135602061289782612859565b6040516128a4828261282d565b80915083815260208101915060208460051b8701019350868411156128c7575f80fd5b602086015b848110156128e357803583529183019183016128cc565b509695505050505050565b5f82601f8301126128fd575f80fd5b81356001600160401b0381111561291657612916612819565b60405161292d601f8301601f19166020018261282d565b818152846020838601011115612941575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215612971575f80fd5b853561297c81612735565b9450602086013561298c81612735565b935060408601356001600160401b03808211156129a7575f80fd5b6129b389838a0161287b565b945060608801359150808211156129c8575f80fd5b6129d489838a0161287b565b935060808801359150808211156129e9575f80fd5b506129f6888289016128ee565b9150509295509295909350565b5f60208284031215612a13575f80fd5b8135610cd181612735565b80358015158114612a2d575f80fd5b919050565b5f805f60608486031215612a44575f80fd5b83356001600160401b0381168114612a5a575f80fd5b925060208401359150612a6f60408501612a1e565b90509250925092565b5f8060408385031215612a89575f80fd5b82356001600160401b0380821115612a9f575f80fd5b818501915085601f830112612ab2575f80fd5b81356020612abf82612859565b604051612acc828261282d565b83815260059390931b8501820192828101915089841115612aeb575f80fd5b948201945b83861015612b12578535612b0381612735565b82529482019490820190612af0565b96505086013592505080821115612b27575f80fd5b50612b348582860161287b565b9150509250929050565b5f815180845260208085019450602084015f5b83811015612b6d57815187529582019590820190600101612b51565b509495945050505050565b602081525f610cd16020830184612b3e565b5f8060408385031215612b9b575f80fd5b8235612ba681612735565b915060208301356001600160401b03811115612bc0575f80fd5b612b34858286016128ee565b5f8060408385031215612bdd575f80fd5b8235612be881612735565b9150612bf660208401612a1e565b90509250929050565b5f8060408385031215612c10575f80fd5b82359150612bf660208401612a1e565b5f8060408385031215612c31575f80fd5b50508035926020909101359150565b5f8083601f840112612c50575f80fd5b5081356001600160401b03811115612c66575f80fd5b6020830191508360208260051b8501011115612c80575f80fd5b9250929050565b5f805f805f60608688031215612c9b575f80fd5b8535612ca681612735565b945060208601356001600160401b0380821115612cc1575f80fd5b612ccd89838a01612c40565b90965094506040880135915080821115612ce5575f80fd5b50612cf288828901612c40565b969995985093965092949392505050565b5f8060408385031215612d14575f80fd5b8235612d1f81612735565b91506020830135612d2f81612735565b809150509250929050565b5f8083601f840112612d4a575f80fd5b5081356001600160401b03811115612d60575f80fd5b602083019150836020828501011115612c80575f80fd5b5f805f805f805f8060c0898b031215612d8e575f80fd5b8835612d9981612735565b97506020890135612da981612735565b96506040890135612db981612735565b95506060890135945060808901356001600160401b0380821115612ddb575f80fd5b612de78c838d01612d3a565b909650945060a08b0135915080821115612dff575f80fd5b50612e0c8b828c01612d3a565b999c989b5096995094979396929594505050565b5f805f805f60a08688031215612e34575f80fd5b8535612e3f81612735565b94506020860135612e4f81612735565b9350604086013592506060860135915060808601356001600160401b03811115612e77575f80fd5b6129f6888289016128ee565b600181811c90821680612e9757607f821691505b602082108103612eb557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b601f821115610da157805f5260205f20601f840160051c81016020851015612fda5750805b601f840160051c820191505b8181101561086f575f8155600101612fe6565b6001600160401b0383111561301057613010612819565b6130248361301e8354612e83565b83612fb5565b5f601f841160018114613055575f851561303e5750838201355b5f19600387901b1c1916600186901b17835561086f565b5f83815260208120601f198716915b828110156130845786850135825560209485019460019092019101613064565b50868210156130a0575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106c5576106c5613189565b604081525f6131c26040830185612b3e565b82810360208401526131d48185612b3e565b95945050505050565b5f602082840312156131ed575f80fd5b5051919050565b5f60208284031215613204575f80fd5b8151610cd181612735565b6832ba3432b932bab69d60b91b81525f84516132328160098501602089016127a3565b600160fe1b600991840191820152845161325381600a8401602089016127a3565b712f746f6b656e5552493f75696e743235363d60701b600a9290910191820152835161328681601c8401602088016127a3565b01601c0195945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0386811682528516602082015260a0604082018190525f9061330990830186612b3e565b828103606084015261331b8186612b3e565b9050828103608084015261332f81856127c5565b98975050505050505050565b5f6020828403121561334b575f80fd5b8151610cd181612773565b5f60033d1115610c005760045f803e505f5160e01c90565b5f60443d101561337b5790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156133aa57505050505090565b82850191508151818111156133c25750505050505090565b843d87010160208285010111156133dc5750505050505090565b6133eb6020828601018761282d565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b80820281158282048414176106c5576106c5613189565b5f8161346357613463613189565b505f190190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f906134a3908301846127c5565b979650505050505050565b81516001600160401b038111156134c7576134c7612819565b6134db816134d58454612e83565b84612fb5565b602080601f83116001811461350e575f84156134f75750858301515b5f19600386901b1c1916600185901b178555610ede565b5f85815260208120601f198616915b8281101561353c5788860151825594840194600190910190840161351d565b508582101561355957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f825161357a8184602087016127a3565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122055e37acbf3a5af2b54294b59ba55be8878c05b123be43328bf9a1e511ae6410164736f6c63430008180033", + "balance": "0x0" + }, + "0x0167002000000000000000000000000000000005": { + "contractName": "SignalServiceImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff" + }, + "code": "0x6080604052600436106101c5575f3560e01c806379ba5097116100f2578063a86f9d9e11610092578063e30c397811610062578063e30c39781461052f578063f09a40161461054c578063f2fde38b1461056b578063fe9fbb801461058a575f80fd5b8063a86f9d9e1461048e578063ce9d0820146104ad578063dfc8ff1d146104cc578063e07baba61461050a575f80fd5b80638da5cb5b116100cd5780638da5cb5b14610414578063910af6ed1461043157806391f3f74b146104505780639b527cfa1461046f575f80fd5b806379ba5097146103d85780638456cb59146103ec5780638abf607714610400575f80fd5b80633eb6b8cf1161016857806352d1902d1161013857806352d1902d146103715780635c975abb1461038557806366ca2bc0146103a5578063715018a6146103c4575f80fd5b80633eb6b8cf146102fe5780633f4ba83a1461031d5780634f1ef286146103315780634f90a67414610344575f80fd5b8063355bcc3d116101a3578063355bcc3d146102325780633659cfe6146102895780633ab76e9f146102a85780633ced0e08146102df575f80fd5b80632d1fb389146101c95780633075db56146101ea57806332676bc614610213575b5f80fd5b3480156101d4575f80fd5b506101e86101e3366004613ad5565b6105b8565b005b3480156101f5575f80fd5b506101fe61065e565b60405190151581526020015b60405180910390f35b34801561021e575f80fd5b506101fe61022d366004613b08565b610672565b34801561023d575f80fd5b5061027161024c366004613b48565b60fb60209081525f92835260408084209091529082529020546001600160401b031681565b6040516001600160401b03909116815260200161020a565b348015610294575f80fd5b506101e86102a3366004613b62565b610688565b3480156102b3575f80fd5b506097546102c7906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b3480156102ea575f80fd5b506101fe6102f9366004613b7d565b610758565b348015610309575f80fd5b506102c7610318366004613bbe565b61079f565b348015610328575f80fd5b506101e86107b5565b6101e861033f366004613cce565b6107c9565b34801561034f575f80fd5b5061036361035e366004613b7d565b610882565b60405190815260200161020a565b34801561037c575f80fd5b506103636108c8565b348015610390575f80fd5b506101fe60c954610100900460ff1660021490565b3480156103b0575f80fd5b506103636103bf366004613d1a565b610979565b3480156103cf575f80fd5b506101e8610985565b3480156103e3575f80fd5b506101e8610996565b3480156103f7575f80fd5b506101e8610a0d565b34801561040b575f80fd5b506102c7610a20565b34801561041f575f80fd5b506033546001600160a01b03166102c7565b34801561043c575f80fd5b5061036361044b366004613d31565b610a2e565b34801561045b575f80fd5b5061036361046a366004613dc5565b610afe565b34801561047a575f80fd5b50610363610489366004613e01565b610b69565b348015610499575f80fd5b506102c76104a8366004613e31565b610b95565b3480156104b8575f80fd5b506101e86104c7366004613d31565b610ba1565b3480156104d7575f80fd5b506104eb6104e6366004613e01565b610bb7565b604080516001600160401b03909316835260208301919091520161020a565b348015610515575f80fd5b5060c954610271906201000090046001600160401b031681565b34801561053a575f80fd5b506065546001600160a01b03166102c7565b348015610557575f80fd5b506101e8610566366004613e52565b610c4b565b348015610576575f80fd5b506101e8610585366004613b62565b610d5a565b348015610595575f80fd5b506101fe6105a4366004613b62565b60fc6020525f908152604090205460ff1681565b6105c0610dcb565b6001600160a01b0382165f90815260fc602052604090205481151560ff909116151503610600576040516398f26f4560e01b815260040160405180910390fd5b6001600160a01b0382165f81815260fc6020908152604091829020805460ff191685151590811790915591519182527f4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf910160405180910390a25050565b5f6002610669610e25565b60ff1614905090565b5f61067d8383610e64565b151590505b92915050565b6001600160a01b037f00000000000000000000000001670020000000000000000000000000000000051630036106d95760405162461bcd60e51b81526004016106d090613e89565b60405180910390fd5b7f00000000000000000000000001670020000000000000000000000000000000056001600160a01b031661070b610ec6565b6001600160a01b0316146107315760405162461bcd60e51b81526004016106d090613ed5565b61073a81610ee1565b604080515f8082526020820190925261075591839190610ee9565b50565b5f8180820361077a5760405163ec73295960e01b815260040160405180910390fd5b5f610786878787610b69565b9050836107933083610e64565b14979650505050505050565b5f6107ab848484611053565b90505b9392505050565b6107bd611144565b6107c7335f6111d4565b565b6001600160a01b037f00000000000000000000000001670020000000000000000000000000000000051630036108115760405162461bcd60e51b81526004016106d090613e89565b7f00000000000000000000000001670020000000000000000000000000000000056001600160a01b0316610843610ec6565b6001600160a01b0316146108695760405162461bcd60e51b81526004016106d090613ed5565b61087282610ee1565b61087e82826001610ee9565b5050565b335f90815260fc602052604081205460ff166108b157604051631f67751f60e01b815260040160405180910390fd5b6108bd858585856111ed565b90505b949350505050565b5f306001600160a01b037f000000000000000000000000016700200000000000000000000000000000000516146109675760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016106d0565b505f805160206144e883398151915290565b5f6106823383846112cf565b61098d610dcb565b6107c75f6113a8565b60655433906001600160a01b03168114610a045760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016106d0565b610755816113a8565b610a156113c1565b6107c73360016111d4565b5f610a29610ec6565b905090565b5f610a4360c954610100900460ff1660021490565b15610a615760405163bae6e2a960e01b815260040160405180910390fd5b6002610a6b610e25565b60ff1603610a8c5760405163dfc60d8560e01b815260040160405180910390fd5b610a966002611432565b5f610aa68787878787600161147a565b90505f5b8151811015610ae957610ad5828281518110610ac857610ac8613f21565b6020026020010151611936565b610adf9084613f49565b9250600101610aaa565b5050610af56001611432565b95945050505050565b6040516514d251d3905360d21b60208201526001600160c01b031960c085901b1660268201526bffffffffffffffffffffffff19606084901b16602e820152604281018290525f906062015b6040516020818303038152906040528051906020012090509392505050565b604080516001600160401b03808616602083015291810184905290821660608201525f90608001610b4a565b5f6107ae468484611053565b610baf85858585855f61147a565b505050505050565b5f80826001600160401b03165f03610bf3576001600160401b038086165f90815260fb6020908152604080832088845290915290205416610bf5565b825b91506001600160401b03821615610c43575f610c12868685610b69565b9050610c1e3082610e64565b91505f829003610c415760405163738afa0560e01b815260040160405180910390fd5b505b935093915050565b5f54610100900460ff1615808015610c6957505f54600160ff909116105b80610c825750303b158015610c8257505f5460ff166001145b610ce55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106d0565b5f805460ff191660011790558015610d06575f805461ff0019166101001790555b610d108383611a7a565b8015610d55575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610d62610dcb565b606580546001600160a01b0383166001600160a01b03199091168117909155610d936033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146107c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d0565b5f610e2f46611ab4565b15610e5a57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f826001600160a01b038116610e8d5760405163538ba4f960e01b815260040160405180910390fd5b825f819003610eaf5760405163ec73295960e01b815260040160405180910390fd5b5f610ebb468787610afe565b549695505050505050565b5f805160206144e8833981519152546001600160a01b031690565b610755610dcb565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f1c57610d5583611ae1565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f76575060408051601f3d908101601f19168201909252610f7391810190613f5c565b60015b610fd95760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016106d0565b5f805160206144e883398151915281146110475760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016106d0565b50610d55838383611b7c565b6097545f906001600160a01b03168061107f57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa1580156110d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f59190613f73565b91508215801561110c57506001600160a01b038216155b1561113c57604051632b0d65db60e01b81526001600160401b0386166004820152602481018590526044016106d0565b509392505050565b61115860c954610100900460ff1660021490565b6111755760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b604051630c2b8f8f60e11b815260040160405180910390fd5b5f6111f9858585610b69565b90506112063082846112cf565b506001600160401b038581165f90815260fb6020908152604080832088845290915290205481851691161015611270576001600160401b038581165f90815260fb602090815260408083208884529091529020805467ffffffffffffffff19169185169190911790555b83836001600160401b0316866001600160401b03167fde247c825b1fb2d7ff9e0e771cba6f9e757ad04479fcdc135d88ae91fd50b37d85856040516112bf929190918252602082015260400190565b60405180910390a4949350505050565b5f836001600160a01b0381166112f85760405163538ba4f960e01b815260040160405180910390fd5b835f81900361131a5760405163ec73295960e01b815260040160405180910390fd5b835f81900361133c5760405163ec73295960e01b815260040160405180910390fd5b611347468888610afe565b858155604080516001600160a01b038a16815260208101899052908101829052606081018790529094507f0ad2d108660a211f47bf7fb43a0443cae181624995d3d42b88ee6879d200e9739060800160405180910390a15050509392505050565b606580546001600160a01b031916905561075581611ba6565b6113d560c954610100900460ff1660021490565b156113f35760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016111ca565b61143b46611ab4565b1561146657807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6060856001600160a01b0381166114a45760405163538ba4f960e01b815260040160405180910390fd5b855f8190036114c65760405163ec73295960e01b815260040160405180910390fd5b5f6114d38688018861403d565b905080515f036114f657604051630b92daef60e21b815260040160405180910390fd5b5f60018251611505919061417b565b6001600160401b0381111561151c5761151c613bf7565b604051908082528060200260200182016040528015611545578160200160208202803683370190505b50905085156115d85781516001600160401b0381111561156757611567613bf7565b6040519080825280602002602001820160405280156115d457816020015b6115c16040805160e0810182525f80825260208201819052918101829052606081018290526080810182905260a081018290529060c082015290565b8152602001906001900390816115855790505b5094505b8a8a8a805f6115f9856d7369676e616c5f7365727669636560901b8361079f565b9050306001600160a01b0382160361162457604051637556223560e11b815260040160405180910390fd5b61165c6040805160c0810182525f80825260208201819052918101829052906060820190815260200160608152602001606081525090565b5f805f805b8b518110156118ea578b818151811061167c5761167c613f21565b602002602001015194505f5b818110156116e657855f01516001600160401b03168c82815181106116af576116af613f21565b60200260200101516001600160401b0316036116de576040516348362c2760e11b815260040160405180910390fd5b600101611688565b506116f58a8a8a8a898b611bf7565b93508a518114915081156117355784516001600160401b0316461461172d576040516338bf822760e21b815260040160405180910390fd5b3095506117e0565b845f01518b828151811061174b5761174b613f21565b6001600160401b0392831660209182029290920101528551161580611779575084516001600160401b031646145b1561179757604051637556223560e11b815260040160405180910390fd5b84516117b5906d7369676e616c5f7365727669636560901b5f61079f565b9550306001600160a01b038716036117e057604051637556223560e11b815260040160405180910390fd5b608085015151151592508f15611874576040518060e00160405280866040015181526020018581526020018b6001600160401b0316815260200186602001516001600160401b0316815260200184151581526020018315158152602001866060015160038111156118535761185361418e565b8152508f828151811061186857611868613f21565b60200260200101819052505b6118cf8a846118a3577fc6cdc4f2acf13acb10f410085b821f7b7113b303e9a4799023f928317396aaf56118c5565b7f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da1695b8760200151610b69565b604086015186519b5096995097509495508794600101611661565b5085158061190157506118fd3088610e64565b8614155b1561191f5760405163738afa0560e01b815260040160405180910390fd5b505050505050505050505050509695505050505050565b5f8060038360c0015160038111156119505761195061418e565b1480611971575060028360c00151600381111561196f5761196f61418e565b145b9050808015611981575082608001515b801561198f57508260a00151155b156119d157600191506119cf83604001517f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da1698560600151865f01516111ed565b505b5f60038460c0015160038111156119ea576119ea61418e565b1480611a0b575060018460c001516003811115611a0957611a0961418e565b145b9050808015611a275750836080015180611a2757508360a00151155b15611a7357611a37600184613f49565b9250611a7184604001517fc6cdc4f2acf13acb10f410085b821f7b7113b303e9a4799023f928317396aaf5866060015187602001516111ed565b505b5050919050565b806001600160a01b038116611aa25760405163538ba4f960e01b815260040160405180910390fd5b611aab83611c96565b610d5582611cf4565b5f6001821480611ac5575061426882145b80611ad2575062aa36a782145b80610682575061068282611d64565b6001600160a01b0381163b611b4e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016106d0565b5f805160206144e883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611b8583611d7b565b5f82511180611b915750805b15610d5557611ba08383611dba565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f856001600160a01b038116611c205760405163538ba4f960e01b815260040160405180910390fd5b855f819003611c425760405163ec73295960e01b815260040160405180910390fd5b855f819003611c645760405163ec73295960e01b815260040160405180910390fd5b611c88866040015186611c788d8d8d610afe565b8a8a608001518b60a00151611ddf565b9a9950505050505050505050565b5f54610100900460ff16611cbc5760405162461bcd60e51b81526004016106d0906141a2565b611cc4611eec565b611ce26001600160a01b03821615611cdc57816113a8565b336113a8565b5060c9805461ff001916610100179055565b5f54610100900460ff16611d1a5760405162461bcd60e51b81526004016106d0906141a2565b6001600160401b03461115611d425760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c8210158015610682575050617e90101590565b611d8481611ae1565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606107ae838360405180606001604052806027815260200161450860279139611f12565b5f82515f14611e87576040516bffffffffffffffffffffffff19606088901b1660208201525f90611e2390603401604051602081830303815290604052858a611f86565b905080515f03611e4657604051630414cd5b60e31b815260040160405180910390fd5b5f611e5082611f9f565b9050611e7581600281518110611e6857611e68613f21565b6020026020010151611fb2565b611e7e906141ed565b92505050611e8a565b50855b5f611ec186604051602001611ea191815260200190565b60408051601f19818403018152919052611eba876120d2565b85856120e5565b905080611ee157604051638d9a4db360e01b815260040160405180910390fd5b509695505050505050565b5f54610100900460ff166107c75760405162461bcd60e51b81526004016106d0906141a2565b60605f80856001600160a01b031685604051611f2e9190614235565b5f60405180830381855af49150503d805f8114611f66576040519150601f19603f3d011682016040523d82523d5f602084013e611f6b565b606091505b5091509150611f7c868383876120fe565b9695505050505050565b60605f611f9285612176565b9050610af58185856121a8565b6060610682611fad83612a15565b612a66565b60605f805f611fc085612c83565b919450925090505f816001811115611fda57611fda61418e565b1461204d5760405162461bcd60e51b815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d0000000000000060648201526084016106d0565b6120578284613f49565b8551146120c35760405162461bcd60e51b815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527330b71034b73b30b634b2103932b6b0b4b73232b960611b60648201526084016106d0565b610af58560200151848461332a565b60606106826120e0836133ba565b6134cd565b5f806120f086612176565b9050611f7c81868686613525565b6060831561216c5782515f03612165576001600160a01b0385163b6121655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106d0565b50816108c0565b6108c0838361354b565b6060818051906020012060405160200161219291815260200190565b6040516020818303038152906040529050919050565b60605f8451116121f25760405162461bcd60e51b81526020600482015260156024820152744d65726b6c65547269653a20656d707479206b657960581b60448201526064016106d0565b5f6121fc84613575565b90505f61220886613658565b90505f8460405160200161221e91815260200190565b60405160208183030381529060405290505f805b84518110156129be575f85828151811061224e5761224e613f21565b6020026020010151905084518311156122c05760405162461bcd60e51b815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201526d0e8c2d840d6caf240d8cadccee8d60931b60648201526084016106d0565b825f0361235e578051805160209182012060405161230d926122e792910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b6123595760405162461bcd60e51b815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f74206861736800000060448201526064016106d0565b612454565b8051516020116123e45780518051602091820120604051612388926122e792910190815260200190565b6123595760405162461bcd60e51b815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e6044820152660c2d840d0c2e6d60cb1b60648201526084016106d0565b8051845160208087019190912082519190920120146124545760405162461bcd60e51b815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f646044820152650ca40d0c2e6d60d31b60648201526084016106d0565b61246060106001613f49565b816020015151036125f857845183036125925761248d8160200151601081518110611e6857611e68613f21565b96505f8751116125055760405162461bcd60e51b815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e636829000000000060648201526084016106d0565b60018651612513919061417b565b82146125875760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e63682900000000000060648201526084016106d0565b5050505050506107ae565b5f8584815181106125a5576125a5613f21565b602001015160f81c60f81b60f81c90505f82602001518260ff16815181106125cf576125cf613f21565b602002602001015190506125e2816136b9565b95506125ef600186613f49565b945050506129b5565b60028160200151510361295c575f61260f826136dd565b90505f815f8151811061262457612624613f21565b016020015160f81c90505f61263a600283614264565b612645906002614285565b90505f612655848360ff16613700565b90505f6126628a89613700565b90505f61266f8383613735565b9050808351146126e75760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b657900000000000060648201526084016106d0565b60ff8516600214806126fc575060ff85166003145b1561289c57808251146127775760405162461bcd60e51b815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e64657200000060648201526084016106d0565b6127918760200151600181518110611e6857611e68613f21565b9c505f8d51116128095760405162461bcd60e51b815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c656166290000000000000060648201526084016106d0565b60018c51612817919061417b565b881461288b5760405162461bcd60e51b815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c65616629000000000000000060648201526084016106d0565b5050505050505050505050506107ae565b60ff851615806128af575060ff85166001145b156128ee576128db87602001516001815181106128ce576128ce613f21565b60200260200101516136b9565b99506128e7818a613f49565b9850612951565b60405162461bcd60e51b815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f64652077697468604482015271040c2dc40eadcd6dcdeeedc40e0e4caccd2f60731b60648201526084016106d0565b5050505050506129b5565b60405162461bcd60e51b815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e706172736561604482015267626c65206e6f646560c01b60648201526084016106d0565b50600101612232565b5060405162461bcd60e51b815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c656044820152646d656e747360d81b60648201526084016106d0565b604080518082019091525f80825260208201525f825111612a485760405162461bcd60e51b81526004016106d09061429e565b50604080518082019091528151815260209182019181019190915290565b60605f805f612a7485612c83565b919450925090506001816001811115612a8f57612a8f61418e565b14612b025760405162461bcd60e51b815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d000000000000000060648201526084016106d0565b8451612b0e8385613f49565b14612b765760405162461bcd60e51b815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e76616044820152713634b2103230ba30903932b6b0b4b73232b960711b60648201526084016106d0565b604080516020808252610420820190925290816020015b604080518082019091525f8082526020820152815260200190600190039081612b8d5790505093505f835b8651811015612c77575f80612bfc6040518060400160405280858c5f0151612be0919061417b565b8152602001858c60200151612bf59190613f49565b9052612c83565b509150915060405180604001604052808383612c189190613f49565b8152602001848b60200151612c2d9190613f49565b815250888581518110612c4257612c42613f21565b6020908102919091010152612c58600185613f49565b9350612c648183613f49565b612c6e9084613f49565b92505050612bb8565b50845250919392505050565b5f805f80845f015111612ca85760405162461bcd60e51b81526004016106d09061429e565b602084015180515f1a607f8111612cca575f60015f9450945094505050613323565b60b78111612e23575f612cde60808361417b565b905080875f015111612d5c5760405162461bcd60e51b815260206004820152604e60248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201526d2873686f727420737472696e672960901b608482015260a4016106d0565b6001838101516001600160f81b0319169082141580612d895750600160ff1b6001600160f81b0319821610155b612e115760405162461bcd60e51b815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201526c73686f727420737472696e672960981b608482015260a4016106d0565b506001955093505f9250613323915050565b60bf811161305c575f612e3760b78361417b565b905080875f015111612eb85760405162461bcd60e51b815260206004820152605160248201525f805160206144c883398151915260448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527067746820286c6f6e6720737472696e672960781b608482015260a4016106d0565b60018301516001600160f81b0319165f819003612f3d5760405162461bcd60e51b815260206004820152604a60248201525f805160206144c883398151915260448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f6064820152696e6720737472696e672960b01b608482015260a4016106d0565b600184015160088302610100031c60378111612fbf5760405162461bcd60e51b815260206004820152604860248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201526720737472696e672960c01b608482015260a4016106d0565b612fc98184613f49565b8951116130405760405162461bcd60e51b815260206004820152604c60248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201526b6c6f6e6720737472696e672960a01b608482015260a4016106d0565b61304b836001613f49565b975095505f94506133239350505050565b60f781116130fb575f61307060c08361417b565b905080875f0151116130ea5760405162461bcd60e51b815260206004820152604a60248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e206c697374206c656e677468202873606482015269686f7274206c6973742960b01b608482015260a4016106d0565b600195509350849250613323915050565b5f61310760f78361417b565b905080875f0151116131845760405162461bcd60e51b815260206004820152604d60248201525f805160206144c883398151915260448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201526c6820286c6f6e67206c6973742960981b608482015260a4016106d0565b60018301516001600160f81b0319165f8190036132075760405162461bcd60e51b815260206004820152604860248201525f805160206144c883398151915260448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f6064820152676e67206c6973742960c01b608482015260a4016106d0565b600184015160088302610100031c603781116132875760405162461bcd60e51b815260206004820152604660248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e20353520627974657320286c6f6e67606482015265206c6973742960d01b608482015260a4016106d0565b6132918184613f49565b8951116133065760405162461bcd60e51b815260206004820152604a60248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e20746f74616c206c656e67746820286064820152696c6f6e67206c6973742960b01b608482015260a4016106d0565b613311836001613f49565b97509550600194506133239350505050565b9193909250565b6060816001600160401b0381111561334457613344613bf7565b6040519080825280601f01601f19166020018201604052801561336e576020820181803683370190505b50905081156107ae575f6133828486613f49565b9050602082015f5b848110156133a257828101518282015260200161338a565b848111156133b0575f858301525b5050509392505050565b60605f826040516020016133d091815260200190565b60405160208183030381529060405290505f5b602081101561341b578181815181106133fe576133fe613f21565b01602001516001600160f81b0319165f0361341b576001016133e3565b61342681602061417b565b6001600160401b0381111561343d5761343d613bf7565b6040519080825280601f01601f191660200182016040528015613467576020820181803683370190505b5092505f5b8351811015611a715782826134808161430e565b93508151811061349257613492613f21565b602001015160f81c60f81b8482815181106134af576134af613f21565b60200101906001600160f81b03191690815f1a90535060010161346c565b6060815160011480156134f957506080825f815181106134ef576134ef613f21565b016020015160f81c105b15613502575090565b61350e825160806137b8565b82604051602001612192929190614326565b919050565b5f6108bd846135358786866121a8565b8051602091820120825192909101919091201490565b81511561355b5781518083602001fd5b8060405162461bcd60e51b81526004016106d09190614354565b8051606090806001600160401b0381111561359257613592613bf7565b6040519080825280602002602001820160405280156135d757816020015b60408051808201909152606080825260208201528152602001906001900390816135b05790505b5091505f5b81811015611a7357604051806040016040528085838151811061360157613601613f21565b6020026020010151815260200161363086848151811061362357613623613f21565b6020026020010151611f9f565b81525083828151811061364557613645613f21565b60209081029190910101526001016135dc565b606080604051905082518060011b603f8101601f191683016040528083525060208401602083015f5b838110156136ae578060011b8201818401515f1a8060041c8253600f811660018301535050600101613681565b509295945050505050565b60606020825f0151106136d4576136cf82611fb2565b610682565b6106828261395d565b60606106826136fb83602001515f81518110611e6857611e68613f21565b613658565b60608251821061371e575060408051602081019091525f8152610682565b6107ae8383848651613730919061417b565b613971565b5f80825184511061374757825161374a565b83515b90505b80821080156137a1575082828151811061376957613769613f21565b602001015160f81c60f81b6001600160f81b03191684838151811061379057613790613f21565b01602001516001600160f81b031916145b156137b15781600101915061374d565b5092915050565b6060603883101561381c57604080516001808252818301909252906020820181803683370190505090506137ec8284614386565b60f81b815f8151811061380157613801613f21565b60200101906001600160f81b03191690815f1a905350610682565b5f60015b61382a818661439f565b1561385057816138398161430e565b92506138499050610100826143b2565b9050613820565b61385b826001613f49565b6001600160401b0381111561387257613872613bf7565b6040519080825280601f01601f19166020018201604052801561389c576020820181803683370190505b5092506138a98483614386565b6138b4906037614386565b60f81b835f815181106138c9576138c9613f21565b60200101906001600160f81b03191690815f1a905350600190505b818111613955576101006138f8828461417b565b613904906101006144a9565b61390e908761439f565b61391891906144b4565b60f81b83828151811061392d5761392d613f21565b60200101906001600160f81b03191690815f1a9053508061394d8161430e565b9150506138e4565b505092915050565b606061068282602001515f845f015161332a565b60608182601f0110156139b75760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106d0565b8282840110156139fa5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106d0565b81830184511015613a415760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106d0565b606082158015613a5f5760405191505f825260208201604052613aa9565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015613a98578051835260209283019201613a80565b5050858452601f01601f1916604052505b50949350505050565b6001600160a01b0381168114610755575f80fd5b80358015158114613520575f80fd5b5f8060408385031215613ae6575f80fd5b8235613af181613ab2565b9150613aff60208401613ac6565b90509250929050565b5f8060408385031215613b19575f80fd5b8235613b2481613ab2565b946020939093013593505050565b80356001600160401b0381168114613520575f80fd5b5f8060408385031215613b59575f80fd5b613b2483613b32565b5f60208284031215613b72575f80fd5b81356107ae81613ab2565b5f805f8060808587031215613b90575f80fd5b613b9985613b32565b935060208501359250613bae60408601613b32565b9396929550929360600135925050565b5f805f60608486031215613bd0575f80fd5b613bd984613b32565b925060208401359150613bee60408501613ac6565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b0381118282101715613c2d57613c2d613bf7565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613c5b57613c5b613bf7565b604052919050565b5f82601f830112613c72575f80fd5b81356001600160401b03811115613c8b57613c8b613bf7565b613c9e601f8201601f1916602001613c33565b818152846020838601011115613cb2575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613cdf575f80fd5b8235613cea81613ab2565b915060208301356001600160401b03811115613d04575f80fd5b613d1085828601613c63565b9150509250929050565b5f60208284031215613d2a575f80fd5b5035919050565b5f805f805f60808688031215613d45575f80fd5b613d4e86613b32565b94506020860135613d5e81613ab2565b93506040860135925060608601356001600160401b0380821115613d80575f80fd5b818801915088601f830112613d93575f80fd5b813581811115613da1575f80fd5b896020828501011115613db2575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215613dd7575f80fd5b613de084613b32565b92506020840135613df081613ab2565b929592945050506040919091013590565b5f805f60608486031215613e13575f80fd5b613e1c84613b32565b925060208401359150613bee60408501613b32565b5f8060408385031215613e42575f80fd5b82359150613aff60208401613ac6565b5f8060408385031215613e63575f80fd5b8235613e6e81613ab2565b91506020830135613e7e81613ab2565b809150509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561068257610682613f35565b5f60208284031215613f6c575f80fd5b5051919050565b5f60208284031215613f83575f80fd5b81516107ae81613ab2565b5f6001600160401b03821115613fa657613fa6613bf7565b5060051b60200190565b803560048110613520575f80fd5b5f82601f830112613fcd575f80fd5b81356020613fe2613fdd83613f8e565b613c33565b82815260059290921b84018101918181019086841115614000575f80fd5b8286015b84811015611ee15780356001600160401b03811115614021575f80fd5b61402f8986838b0101613c63565b845250918301918301614004565b5f602080838503121561404e575f80fd5b82356001600160401b0380821115614064575f80fd5b818501915085601f830112614077575f80fd5b8135614085613fdd82613f8e565b81815260059190911b830184019084810190888311156140a3575f80fd5b8585015b8381101561416e578035858111156140bd575f80fd5b860160c0818c03601f190112156140d2575f80fd5b6140da613c0b565b6140e5898301613b32565b815260406140f4818401613b32565b8a8301526060808401358284015260809150614111828501613fb0565b9083015260a08381013589811115614127575f80fd5b6141358f8d83880101613fbe565b838501525060c084013591508882111561414d575f80fd5b61415b8e8c84870101613fbe565b90830152508452509186019186016140a7565b5098975050505050505050565b8181038181111561068257610682613f35565b634e487b7160e01b5f52602160045260245ffd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8051602080830151919081101561420d575f198160200360031b1b821691505b50919050565b5f5b8381101561422d578181015183820152602001614215565b50505f910152565b5f8251614246818460208701614213565b9190910192915050565b634e487b7160e01b5f52601260045260245ffd5b5f60ff83168061427657614276614250565b8060ff84160691505092915050565b60ff828116828216039081111561068257610682613f35565b6020808252604a908201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60408201527f206d7573742062652067726561746572207468616e207a65726f20746f206265606082015269206465636f6461626c6560b01b608082015260a00190565b5f6001820161431f5761431f613f35565b5060010190565b5f8351614337818460208801614213565b83519083019061434b818360208801614213565b01949350505050565b602081525f8251806020840152614372816040850160208701614213565b601f01601f19169190910160400192915050565b60ff818116838216019081111561068257610682613f35565b5f826143ad576143ad614250565b500490565b808202811582820484141761068257610682613f35565b600181815b8085111561440357815f19048211156143e9576143e9613f35565b808516156143f657918102915b93841c93908002906143ce565b509250929050565b5f8261441957506001610682565b8161442557505f610682565b816001811461443b576002811461444557614461565b6001915050610682565b60ff84111561445657614456613f35565b50506001821b610682565b5060208310610133831016604e8410600b8410161715614484575081810a610682565b61448e83836143c9565b805f19048211156144a1576144a1613f35565b029392505050565b5f6107ae838361440b565b5f826144c2576144c2614250565b50069056fe524c505265616465723a206c656e677468206f6620636f6e74656e74206d7573360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205659405515807d049e6589a2728fe0863d5c3072540f53ef4e8701e75661788864736f6c63430008180033", + "balance": "0x0" + }, + "0x1670020000000000000000000000000000000005": { + "contractName": "SignalService", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670020000000000000000000000000000000006", + "0xbc2e0095be465e411e3dd16b362c4b34019fb4f63830e31f0f7f61874e707e22": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167002000000000000000000000000000000005" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167002000000000000000000000000000010001": { + "contractName": "TaikoL2Impl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff" + }, + "code": "0x6080604052600436106101c5575f3560e01c80638456cb59116100f2578063c3f909d411610092578063e30c397811610062578063e30c397814610524578063f2fde38b14610541578063f535bd5614610560578063f940e3851461057f575f80fd5b8063c3f909d414610493578063da69d3db146104cb578063dac5df78146104ea578063e07baba6146104ff575f80fd5b80638da5cb5b116100cd5780638da5cb5b146103f65780639ee512f214610413578063a7e022d114610438578063a86f9d9e14610474575f80fd5b80638456cb59146103a35780638551f41e146103b75780638abf6077146103e2575f80fd5b80633eb6b8cf116101685780635950f9f1116101385780635950f9f11461033c5780635c975abb1461035b578063715018a61461037b57806379ba50971461038f575f80fd5b80633eb6b8cf146102e25780633f4ba83a146103015780634f1ef2861461031557806352d1902d14610328575f80fd5b80633075db56116101a35780633075db561461025057806333d5ac9b146102645780633659cfe61461028a5780633ab76e9f146102ab575f80fd5b806312622e5b146101c957806323ac7136146102055780632f98047314610232575b5f80fd5b3480156101d4575f80fd5b5060fe546101e8906001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b348015610210575f80fd5b5061022461021f366004611f62565b61059e565b6040519081526020016101fc565b34801561023d575f80fd5b505f5b60405190151581526020016101fc565b34801561025b575f80fd5b506102406105fa565b34801561026f575f80fd5b5060fd546101e890600160401b90046001600160401b031681565b348015610295575f80fd5b506102a96102a4366004611f8f565b61060e565b005b3480156102b6575f80fd5b506097546102ca906001600160a01b031681565b6040516001600160a01b0390911681526020016101fc565b3480156102ed575f80fd5b506102ca6102fc366004611fbe565b6106de565b34801561030c575f80fd5b506102a96106f2565b6102a961032336600461200f565b610706565b348015610333575f80fd5b506102246107bf565b348015610347575f80fd5b506102a96103563660046120cc565b610870565b348015610366575f80fd5b5061024060c954610100900460ff1660021490565b348015610386575f80fd5b506102a9610a79565b34801561039a575f80fd5b506102a9610a8a565b3480156103ae575f80fd5b506102a9610b01565b3480156103c2575f80fd5b506102246103d1366004612121565b60fb6020525f908152604090205481565b3480156103ed575f80fd5b506102ca610b14565b348015610401575f80fd5b506033546001600160a01b03166102ca565b34801561041e575f80fd5b506102ca71777735367b36bc9b61c50022d9d0700db4ec81565b348015610443575f80fd5b5061045761045236600461214b565b610b22565b604080519283526001600160401b039091166020830152016101fc565b34801561047f575f80fd5b506102ca61048e36600461217c565b610b92565b34801561049e575f80fd5b506104a7610ba7565b60408051825163ffffffff16815260209283015160ff1692810192909252016101fc565b3480156104d6575f80fd5b506102a96104e53660046121aa565b610bd8565b3480156104f5575f80fd5b5061022460fc5481565b34801561050a575f80fd5b5060c9546101e8906201000090046001600160401b031681565b34801561052f575f80fd5b506065546001600160a01b03166102ca565b34801561054c575f80fd5b506102a961055b366004611f8f565b610ea2565b34801561056b575f80fd5b5060fd546101e8906001600160401b031681565b34801561058a575f80fd5b506102a96105993660046121e2565b610f13565b5f43826001600160401b0316106105b657505f919050565b436105c383610100612222565b6001600160401b0316106105df57506001600160401b03164090565b506001600160401b03165f90815260fb602052604090205490565b5f60026106056110ce565b60ff1614905090565b6001600160a01b037f000000000000000000000000016700200000000000000000000000000001000116300361065f5760405162461bcd60e51b815260040161065690612249565b60405180910390fd5b7f00000000000000000000000001670020000000000000000000000000000100016001600160a01b031661069161110d565b6001600160a01b0316146106b75760405162461bcd60e51b815260040161065690612295565b6106c081611128565b604080515f808252602082019092526106db91839190611130565b50565b5f6106ea84848461129a565b949350505050565b6106fa61138b565b610704335f61141b565b565b6001600160a01b037f000000000000000000000000016700200000000000000000000000000001000116300361074e5760405162461bcd60e51b815260040161065690612249565b7f00000000000000000000000001670020000000000000000000000000000100016001600160a01b031661078061110d565b6001600160a01b0316146107a65760405162461bcd60e51b815260040161065690612295565b6107af82611128565b6107bb82826001611130565b5050565b5f306001600160a01b037f0000000000000000000000000167002000000000000000000000000000010001161461085e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610656565b505f805160206124bf83398151915290565b5f54610100900460ff161580801561088e57505f54600160ff909116105b806108a75750303b1580156108a757505f5460ff166001145b61090a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610656565b5f805460ff19166001179055801561092b575f805461ff0019166101001790555b6109358585611423565b6001600160401b0383161580610953575046836001600160401b0316145b15610971576040516308279a2560e31b815260040160405180910390fd5b60014611158061098757506001600160401b0346115b156109a557604051638f972ecb60e01b815260040160405180910390fd5b43156109ef57436001036109d6575f6109bf6001436122e1565b5f81815260fb6020526040902090409055506109ef565b604051635a0f9e4160e11b815260040160405180910390fd5b60fe80546001600160401b0380861667ffffffffffffffff199283161790925560fd805492851692909116919091179055610a294361145d565b5060fc558015610a72575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610a816114ed565b6107045f611547565b60655433906001600160a01b03168114610af85760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610656565b6106db81611547565b610b09611560565b61070433600161141b565b5f610b1d61110d565b905090565b5f805f610b2d610ba7565b805160fd549192505f9163ffffffff90911690610b5a90600160401b90046001600160401b0316886122f4565b610b649190612314565b8251602084015160fd54929350610b85926001600160401b031684896115d1565b9097909650945050505050565b5f610b9e46848461129a565b90505b92915050565b604080518082019091525f8082526020820152610b1d60408051808201909152630393870081526008602082015290565b6002610be26110ce565b60ff1603610c035760405163dfc60d8560e01b815260040160405180910390fd5b610c0d600261166c565b831580610c18575082155b80610c2a57506001600160401b038216155b80610c45575043600114158015610c45575063ffffffff8116155b15610c635760405163053fd54760e01b815260040160405180910390fd5b3371777735367b36bc9b61c50022d9d0700db4ec14610c9557604051636494e9f760e01b815260040160405180910390fd5b5f1943015f80610ca48361145d565b915091508160fc5414610cca5760405163d719258d60e01b815260040160405180910390fd5b5f80610cd68787610b22565b91509150610ce15f90565b158015610cee5750814814155b15610d0c576040516336d54d4f60e11b815260040160405180910390fd5b60fd546001600160401b03600160401b90910481169088161115610e1c57610d456d7369676e616c5f7365727669636560901b5f610b92565b60fe546040516313e4299d60e21b81526001600160401b0391821660048201527f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da16960248201529089166044820152606481018a90526001600160a01b039190911690634f90a674906084016020604051808303815f875af1158015610dcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df0919061233f565b5060fd80546fffffffffffffffff00000000000000001916600160401b6001600160401b038a16021790555b5f85815260fb602090815260409182902087409081905560fc86905560fd805467ffffffffffffffff19166001600160401b038616908117909155835182815292830152917f41c3f410f5c8ac36bb46b1dccef0de0f964087c9e688795fa02ecfa2c20b3fe4910160405180910390a1505050505050610e9c600161166c565b50505050565b610eaa6114ed565b606580546001600160a01b0383166001600160a01b03199091168117909155610edb6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610f2760c954610100900460ff1660021490565b15610f455760405163bae6e2a960e01b815260040160405180910390fd5b693bb4ba34323930bbb2b960b11b610f656033546001600160a01b031690565b6001600160a01b0316336001600160a01b031614158015610fa25750610f8c816001610b92565b6001600160a01b0316336001600160a01b031614155b15610fc057604051630d85cccf60e11b815260040160405180910390fd5b6002610fca6110ce565b60ff1603610feb5760405163dfc60d8560e01b815260040160405180910390fd5b610ff5600261166c565b6001600160a01b03821661101c5760405163053fd54760e01b815260040160405180910390fd5b6001600160a01b0383166110425761103d6001600160a01b038316476116b4565b6110bf565b6040516370a0823160e01b81523060048201526110bf9083906001600160a01b038616906370a0823190602401602060405180830381865afa15801561108a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ae919061233f565b6001600160a01b03861691906116bf565b6110c9600161166c565b505050565b5f6110d846611711565b1561110357507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f805160206124bf833981519152546001600160a01b031690565b6106db6114ed565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611163576110c98361173e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156111bd575060408051601f3d908101601f191682019092526111ba9181019061233f565b60015b6112205760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610656565b5f805160206124bf833981519152811461128e5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610656565b506110c98383836117d9565b6097545f906001600160a01b0316806112c657604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa158015611318573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133c9190612356565b91508215801561135357506001600160a01b038216155b1561138357604051632b0d65db60e01b81526001600160401b038616600482015260248101859052604401610656565b509392505050565b61139f60c954610100900460ff1660021490565b6113bc5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6107bb6114ed565b806001600160a01b03811661144b5760405163538ba4f960e01b815260040160405180910390fd5b611454836117fd565b6110c98261185b565b5f80611467611f27565b5f5b60ff8110801561147c5750806001018510155b156114ad575f198186030180408360ff8306610100811061149f5761149f612385565b602002015250600101611469565b5046611fe0820152612000812092508340816114ca60ff87612399565b61010081106114db576114db612385565b60200201526120009020919391925050565b6033546001600160a01b031633146107045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610656565b606580546001600160a01b03191690556106db816118cb565b61157460c954610100900460ff1660021490565b156115925760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001611411565b5f80806115ed63ffffffff85166001600160401b0388166123ac565b9050846001600160401b03168111611606576001611619565b6116196001600160401b038616826122e1565b905061162c816001600160401b0361191c565b91506116536001600160401b03831661164e63ffffffff8b1660ff8b166123bf565b611930565b9250825f0361166157600192505b509550959350505050565b61167546611711565b156116a057807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6107bb82825a61196e565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526110c99084906119b1565b5f6001821480611722575061426882145b8061172f575062aa36a782145b80610ba15750610ba182611a84565b6001600160a01b0381163b6117ab5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610656565b5f805160206124bf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6117e283611a9b565b5f825111806117ee5750805b156110c957610e9c8383611ada565b5f54610100900460ff166118235760405162461bcd60e51b8152600401610656906123d6565b61182b611aff565b6118496001600160a01b038216156118435781611547565b33611547565b5060c9805461ff001916610100179055565b5f54610100900460ff166118815760405162461bcd60e51b8152600401610656906123d6565b6001600160401b034611156118a95760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f81831161192a5782610b9e565b50919050565b5f815f0361195157604051636296f1b960e11b815260040160405180910390fd5b670de0b6b3a76400006119648484611b25565b610b9e9190612421565b815f0361197a57505050565b61199483838360405180602001604052805f815250611b6c565b6110c957604051634c67134d60e11b815260040160405180910390fd5b5f611a05826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611ba99092919063ffffffff16565b905080515f1480611a25575080806020019051810190611a259190612434565b6110c95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610656565b5f617e2c8210158015610ba1575050617e90101590565b611aa48161173e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610b9e83836040518060600160405280602781526020016124df60279139611bb7565b5f54610100900460ff166107045760405162461bcd60e51b8152600401610656906123d6565b5f8082611b3a670de0b6b3a7640000866123bf565b611b449190612421565b9050680755bf798b4a1bf1e4811115611b635750680755bf798b4a1bf1e45b6106ea81611c2b565b5f6001600160a01b038516611b9457604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b60606106ea84845f85611db3565b60605f80856001600160a01b031685604051611bd39190612471565b5f60405180830381855af49150503d805f8114611c0b576040519150601f19603f3d011682016040523d82523d5f602084013e611c10565b606091505b5091509150611c2186838387611e8a565b9695505050505050565b5f680248ce36a70cb26b3e198213611c4457505f919050565b680755bf798b4a1bf1e58212611c6d57604051631a93c68960e11b815260040160405180910390fd5b6503782dace9d9604e83901b0591505f60606bb17217f7d1cf79abc9e3b39884821b056001605f1b01901d6bb17217f7d1cf79abc9e3b39881029093036c240c330e9fb2d9cbaf0fd5aafb1981018102606090811d6d0277594991cfc85f6e2461837cd9018202811d6d1a521255e34f6a5061b25ef1c9c319018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d6e02c72388d9f74f51a9331fed693f1419018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084016d01d3967ed30fc4f89c02bab5708119010290911d6e0587f503bb6ea29d25fcb740196450019091026d360d7aeea093263ecc6e0ecb291760621b010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b606082471015611e145760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610656565b5f80866001600160a01b03168587604051611e2f9190612471565b5f6040518083038185875af1925050503d805f8114611e69576040519150601f19603f3d011682016040523d82523d5f602084013e611e6e565b606091505b5091509150611e7f87838387611e8a565b979650505050505050565b60608315611ef85782515f03611ef1576001600160a01b0385163b611ef15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610656565b50816106ea565b6106ea8383815115611f0d5781518083602001fd5b8060405162461bcd60e51b8152600401610656919061248c565b604051806120000160405280610100906020820280368337509192915050565b80356001600160401b0381168114611f5d575f80fd5b919050565b5f60208284031215611f72575f80fd5b610b9e82611f47565b6001600160a01b03811681146106db575f80fd5b5f60208284031215611f9f575f80fd5b8135611faa81611f7b565b9392505050565b80151581146106db575f80fd5b5f805f60608486031215611fd0575f80fd5b611fd984611f47565b9250602084013591506040840135611ff081611fb1565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215612020575f80fd5b823561202b81611f7b565b915060208301356001600160401b0380821115612046575f80fd5b818501915085601f830112612059575f80fd5b81358181111561206b5761206b611ffb565b604051601f8201601f19908116603f0116810190838211818310171561209357612093611ffb565b816040528281528860208487010111156120ab575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f805f80608085870312156120df575f80fd5b84356120ea81611f7b565b935060208501356120fa81611f7b565b925061210860408601611f47565b915061211660608601611f47565b905092959194509250565b5f60208284031215612131575f80fd5b5035919050565b803563ffffffff81168114611f5d575f80fd5b5f806040838503121561215c575f80fd5b61216583611f47565b915061217360208401612138565b90509250929050565b5f806040838503121561218d575f80fd5b82359150602083013561219f81611fb1565b809150509250929050565b5f805f80608085870312156121bd575f80fd5b84359350602085013592506121d460408601611f47565b915061211660608601612138565b5f80604083850312156121f3575f80fd5b82356121fe81611f7b565b9150602083013561219f81611f7b565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156122425761224261220e565b5092915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b81810381811115610ba157610ba161220e565b6001600160401b038281168282160390808211156122425761224261220e565b6001600160401b038181168382160280821691908281146123375761233761220e565b505092915050565b5f6020828403121561234f575f80fd5b5051919050565b5f60208284031215612366575f80fd5b8151611faa81611f7b565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f826123a7576123a7612371565b500690565b80820180821115610ba157610ba161220e565b8082028115828204841417610ba157610ba161220e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8261242f5761242f612371565b500490565b5f60208284031215612444575f80fd5b8151611faa81611fb1565b5f5b83811015612469578181015183820152602001612451565b50505f910152565b5f825161248281846020870161244f565b9190910192915050565b602081525f82518060208401526124aa81604085016020870161244f565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220dd805646fbd402e3dd00f2e2ed2bf34ee8b6c44c1aee4f0ee9aaf88caab4582f64736f6c63430008180033", + "balance": "0x0" + }, + "0x1670020000000000000000000000000000010001": { + "contractName": "TaikoL2", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670020000000000000000000000000000010002", + "0x00000000000000000000000000000000000000000000000000000000000000fe": "0x0000000000000000000000000000000000000000000000000000000000007e7e", + "0x00000000000000000000000000000000000000000000000000000000000000fd": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x00000000000000000000000000000000000000000000000000000000000000fc": "0xb1cdc1a3b51cd0ae1113eb88f95dfd26aab10c50b39e31811e63cffc250b0da2", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167002000000000000000000000000000010001" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167002000000000000000000000000000010002": { + "contractName": "RollupAddressManagerImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff" + }, + "code": "0x608060405260043610610126575f3560e01c80635c975abb116100a85780638da5cb5b1161006d5780638da5cb5b146102d5578063a86f9d9e146102f2578063d8f4648f14610311578063e07baba614610330578063e30c39781461036f578063f2fde38b1461038c575f80fd5b80635c975abb14610265578063715018a61461028557806379ba5097146102995780638456cb59146102ad5780638abf6077146102c1575f80fd5b80633ab76e9f116100ee5780633ab76e9f146101de5780633eb6b8cf146101fd5780633f4ba83a1461021c5780634f1ef2861461023057806352d1902d14610243575f80fd5b8063069489a21461012a57806319ab453c1461014057806328f713cc1461015f5780633075db561461019b5780633659cfe6146101bf575b5f80fd5b348015610135575f80fd5b5061013e6103ab565b005b34801561014b575f80fd5b5061013e61015a36600461118f565b61045b565b34801561016a575f80fd5b5061017e6101793660046111c6565b610533565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101a6575f80fd5b506101af610567565b6040519015158152602001610192565b3480156101ca575f80fd5b5061013e6101d936600461118f565b61057b565b3480156101e9575f80fd5b5060975461017e906001600160a01b031681565b348015610208575f80fd5b5061017e6102173660046111fd565b610642565b348015610227575f80fd5b5061013e610656565b61013e61023e36600461124a565b61066a565b34801561024e575f80fd5b5061025761071f565b604051908152602001610192565b348015610270575f80fd5b506101af60c954610100900460ff1660021490565b348015610290575f80fd5b5061013e6107d0565b3480156102a4575f80fd5b5061013e6107e1565b3480156102b8575f80fd5b5061013e610858565b3480156102cc575f80fd5b5061017e61086b565b3480156102e0575f80fd5b506033546001600160a01b031661017e565b3480156102fd575f80fd5b5061017e61030c366004611308565b610879565b34801561031c575f80fd5b5061013e61032b366004611332565b61088c565b34801561033b575f80fd5b5060c9546103569062010000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610192565b34801561037a575f80fd5b506065546001600160a01b031661017e565b348015610397575f80fd5b5061013e6103a636600461118f565b61096a565b6103b36109db565b5f54600290610100900460ff161580156103d357505f5460ff8083169116105b6103f85760405162461bcd60e51b81526004016103ef9061136f565b60405180910390fd5b5f8054609780546001600160a01b0319163017905561ffff191660ff83169081176101001761ff0019169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b5f54610100900460ff161580801561047957505f54600160ff909116105b806104925750303b15801561049257505f5460ff166001145b6104ae5760405162461bcd60e51b81526004016103ef9061136f565b5f805460ff1916600117905580156104cf575f805461ff0019166101001790555b6104d882610a35565b609780546001600160a01b03191630179055801561052f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b67ffffffffffffffff82165f90815260fb602090815260408083208484529091529020546001600160a01b03165b92915050565b5f6002610572610a93565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670020000000000000000000000000000100021630036105c35760405162461bcd60e51b81526004016103ef906113bd565b7f00000000000000000000000001670020000000000000000000000000000100026001600160a01b03166105f5610ad2565b6001600160a01b03161461061b5760405162461bcd60e51b81526004016103ef90611409565b61062481610aed565b604080515f8082526020820190925261063f91839190610af5565b50565b5f61064e848484610c64565b949350505050565b61065e610d57565b610668335f610de8565b565b6001600160a01b037f00000000000000000000000001670020000000000000000000000000000100021630036106b25760405162461bcd60e51b81526004016103ef906113bd565b7f00000000000000000000000001670020000000000000000000000000000100026001600160a01b03166106e4610ad2565b6001600160a01b03161461070a5760405162461bcd60e51b81526004016103ef90611409565b61071382610aed565b61052f82826001610af5565b5f306001600160a01b037f000000000000000000000000016700200000000000000000000000000001000216146107be5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103ef565b505f8051602061154283398151915290565b6107d86109db565b6106685f610e01565b60655433906001600160a01b0316811461084f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016103ef565b61063f81610e01565b610860610e1a565b610668336001610de8565b5f610874610ad2565b905090565b5f610885468484610c64565b9392505050565b6108946109db565b67ffffffffffffffff83165f90815260fb602090815260408083208584529091529020546001600160a01b039081169082168190036108e65760405163a883089360e01b815260040160405180910390fd5b67ffffffffffffffff84165f81815260fb6020908152604080832087845282529182902080546001600160a01b0319166001600160a01b038781169182179092558351908152908516918101919091528592917f500dcd607a98daece9bccc2511bf6032471252929de73caf507aae0e082f8453910160405180910390a350505050565b6109726109db565b606580546001600160a01b0383166001600160a01b031990911681179091556109a36033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146106685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ef565b5f54610100900460ff16610a5b5760405162461bcd60e51b81526004016103ef90611455565b610a63610e8b565b610a816001600160a01b03821615610a7b5781610e01565b33610e01565b5060c9805461ff001916610100179055565b5f610a9d46610eb1565b15610ac857507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020611542833981519152546001600160a01b031690565b61063f6109db565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610b2d57610b2883610ede565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610b87575060408051601f3d908101601f19168201909252610b84918101906114a0565b60015b610bea5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016103ef565b5f805160206115428339815191528114610c585760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016103ef565b50610b28838383610f79565b6097545f906001600160a01b031680610c9057604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa158015610ce3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0791906114b7565b915082158015610d1e57506001600160a01b038216155b15610d4f57604051632b0d65db60e01b815267ffffffffffffffff86166004820152602481018590526044016103ef565b509392505050565b610d6b60c954610100900460ff1660021490565b610d885760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff0019909116620100004267ffffffffffffffff1602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b604051630c2b8f8f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561063f81610fa3565b610e2e60c954610100900460ff1660021490565b15610e4c5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610dde565b5f54610100900460ff166106685760405162461bcd60e51b81526004016103ef90611455565b5f6001821480610ec2575061426882145b80610ecf575062aa36a782145b80610561575061056182610ff4565b6001600160a01b0381163b610f4b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016103ef565b5f8051602061154283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610f828361100b565b5f82511180610f8e5750805b15610b2857610f9d838361104a565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f617e2c8210158015610561575050617e90101590565b61101481610ede565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061088583836040518060600160405280602781526020016115626027913960605f80856001600160a01b03168560405161108691906114f4565b5f60405180830381855af49150503d805f81146110be576040519150601f19603f3d011682016040523d82523d5f602084013e6110c3565b606091505b50915091506110d4868383876110de565b9695505050505050565b6060831561114c5782515f03611145576001600160a01b0385163b6111455760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ef565b508161064e565b61064e83838151156111615781518083602001fd5b8060405162461bcd60e51b81526004016103ef919061150f565b6001600160a01b038116811461063f575f80fd5b5f6020828403121561119f575f80fd5b81356108858161117b565b803567ffffffffffffffff811681146111c1575f80fd5b919050565b5f80604083850312156111d7575f80fd5b6111e0836111aa565b946020939093013593505050565b803580151581146111c1575f80fd5b5f805f6060848603121561120f575f80fd5b611218846111aa565b92506020840135915061122d604085016111ee565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561125b575f80fd5b82356112668161117b565b9150602083013567ffffffffffffffff80821115611282575f80fd5b818501915085601f830112611295575f80fd5b8135818111156112a7576112a7611236565b604051601f8201601f19908116603f011681019083821181831017156112cf576112cf611236565b816040528281528860208487010111156112e7575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f8060408385031215611319575f80fd5b82359150611329602084016111ee565b90509250929050565b5f805f60608486031215611344575f80fd5b61134d846111aa565b92506020840135915060408401356113648161117b565b809150509250925092565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f602082840312156114b0575f80fd5b5051919050565b5f602082840312156114c7575f80fd5b81516108858161117b565b5f5b838110156114ec5781810151838201526020016114d4565b50505f910152565b5f82516115058184602087016114d2565b9190910192915050565b602081525f825180602084015261152d8160408501602087016114d2565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220546acba5cf9d5840aa28144a5c5b7154e1fbe167d06f40edc368d12eba1367a264736f6c63430008180033", + "balance": "0x0" + }, + "0x1670020000000000000000000000000000010002": { + "contractName": "RollupAddressManager", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000e8b1ff302a740fd2c6e76b620d45508daec2ddff", + "0xfc9694a8343538ce007a3941bba4a8952c0d46b3a80d6bc5432a3731a9b3afbd": "0x0000000000000000000000001670020000000000000000000000000000010001", + "0x1f6e8365b88965465679d131196095b3fe883fdeef8915a26d29cc80b5f57057": "0x0000000000000000000000001670020000000000000000000000000000000001", + "0x3bd77107e0102c8f1a54b812ae852bf834e4d7d2e163cd6ad85e7fb146b8946b": "0x0000000000000000000000001670020000000000000000000000000000000005", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167002000000000000000000000000000010002" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x4Fa1166329670a599a664f2D08fEa90C367b805D": { + "contractName": "LibNetwork", + "storage": {}, + "code": "0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220ad97905b6ee404cdf1656836b4d2e0331e305effa06af1cec4854f3c71d96ae764736f6c63430008180033", + "balance": "0x0" + }, + "0x0167002000000000000000000000000000010099": { + "contractName": "RegularERC20", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x526567756c617245524332300000000000000000000000000000000000000018", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x52474c0000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000002710000", + "0x723077b8a1b173adc35e5f0e7e3662fd1208212cb629f9c128551ea7168da722": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x14e04a66bf74771820a7400ff6cf065175b3d7eb25805a5bd1633b161af5d101": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x215be5d23550ceb1beff54fb579a765903ba2ccc85b6f79bcf9bda4e8cb86034": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x6d1035fce6503985ab075a4ff3f7ce2e57cd5a9c5e6a0589dccacfea7bcb0af4": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x2a95ee547cef07a2fff0a68144824a0d9ded35ed87da118a53e1cda4aca8b944": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x7fcecd2a720442e9bc0cf1a8a6976f9fbddf6b996dc0d78af7e94dadf360d579": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x18bbf5fcf8fe870ecff419c4677497c08b2e6a5431bb94541d06c9da3f308e55": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x6e3431b4e42570cb9e3d926eb26f9e54de2df536ae0741ae16350d17a6c16ddc": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xdb302bf24b1ad5f23949da8e6b05747dc699499a995361a7bf40ec7204696d6f": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xa1d47ef1a6916dfbe65888f77739da164feb3a9a6afc95ee57e8b3e85ea5e955": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x454340b1295f9ff1c0fb9192166d0215d33f84dc5f2dc3f3e5732a4b557186bf": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x6a3bb1dada7c82a99b4a02d16da3fda07cb31d8887b9b99ec829ab67fd7a817e": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x2fe2844d12634f5dce1e2be5be96b2ea1c573f8f25171997e2f4bd943dd32f92": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x3836a017087644fbf6925ae1aca14201ce898a35434d9dea9ebd03cea44e049a": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x1c7a29f5a750951acb14fdf82a876085914eb17f15a162b054a3d2f8c92e2451": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x271927a243b678b7a071f19b4051ef93b16e397066e3fdef5bba26527e34a1a1": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x4663d660b5d810c9ab2f6dc64af7ff84ebae28a72342391622649a7fe87c93d4": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x352c3281a58937f04ef7cc7b88f3456b6ffd47f52a321c253dc083fb53a3a114": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x6d5faa5f4e671e6fe47b0eab51c62f8cebf354e21e8fdccf8cdfc0293dd341a3": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x673de83553dc3a2c0f59aa7193de392a4530feb73b9d6cd4fcef68802b8195c1": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x8b6a7148182c39c1ca0b052292befa83d09344947c23e47b300314fa8c2b8f7d": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xed4a23b4a030ee0d64ef69b276dee81d493e5efca01c0fa514e0c38f882af152": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x45124dfaa1716b8d229f646ff926377e17b887c2b2eab6a87ab0348ee1689eac": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x40f9c2870c16301e8614e56453fc5b838c4a153eb0b18c4c050efbf4f786518a": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xbd55c9294669a294e0c8fd07e2c07738e95be0123b62b752d782fe317f25ca97": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x52c0eeeba21034a69ad7cfa70f75c6fd127acd4084a4da80f30cc7540bdf990b": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x843a9befd317bdcee99c42a3adf6d00b789224beda1485c7f6e7bf327755328e": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xea09b20615ffad342fb450741e59ea6ba180fa93b8701b31fa639ef9ff50d2b0": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x39cd5e5ec54ce41a5f5b2c13ce7133998dfef654caacfb44d5c517700c217d36": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xd46a4409ebc9fc47afedecdadc89dbc0d6f46be6bdb49fd822d5143daedc83f0": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x5735d6fad3ea4f2328a1557ff1be7570df3d4c2630b448c1b7fe2781d018beb0": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x509c640066f1872118ec768fcb985c7bf4476690788ac7e112ab072ca82ab219": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xf9982658df503b792c55f860aefa42588712c9069523324d4b9ce4d9a10e2e9c": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x87d11160035f8424b7163a397fc780b278af3de5a6caa2cb71bb2b46825ce159": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x1dde801acf032acf4b3151b5edb82e0e4d872a54d9efbf3809d75efcbfa2bf8f": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x01aad34cdf9f8f5fca811e2fab1411b08778be71f547894fa0d9fafa5c1f60b2": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x65cee0cf3d643c3f3402a40ddebed72cec3dd6bac66974bff967dc0ef9e2faed": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0xaf6cadccd3f046eeb282ec0b08e44adbe45784a23f41d76b096ccb8e7f238e2b": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x2589e1958c4e4f4a5f777b0b92a3170cc21771a8d3580331a71232f8624f7628": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x1f27de92fedf410197c8a09d0f2f03372d92b75c9889a6a61cf491395877fbcf": "0x00000000000000000000000000000000000000000000000000000000000fa000" + }, + "code": "0x608060405234801561000f575f80fd5b50600436106100a6575f3560e01c8063395093511161006e578063395093511461011f57806370a082311461013257806395d89b411461015a578063a457c2d714610162578063a9059cbb14610175578063dd62ed3e14610188575f80fd5b806306fdde03146100aa578063095ea7b3146100c857806318160ddd146100eb57806323b872dd146100fd578063313ce56714610110575b5f80fd5b6100b261019b565b6040516100bf919061068a565b60405180910390f35b6100db6100d63660046106f1565b61022b565b60405190151581526020016100bf565b6002545b6040519081526020016100bf565b6100db61010b366004610719565b610244565b604051601281526020016100bf565b6100db61012d3660046106f1565b610267565b6100ef610140366004610752565b6001600160a01b03165f9081526020819052604090205490565b6100b2610288565b6100db6101703660046106f1565b610297565b6100db6101833660046106f1565b610316565b6100ef610196366004610772565b610323565b6060600380546101aa906107a3565b80601f01602080910402602001604051908101604052809291908181526020018280546101d6906107a3565b80156102215780601f106101f857610100808354040283529160200191610221565b820191905f5260205f20905b81548152906001019060200180831161020457829003601f168201915b5050505050905090565b5f3361023881858561034d565b60019150505b92915050565b5f33610251858285610470565b61025c8585856104e8565b506001949350505050565b5f336102388185856102798383610323565b61028391906107db565b61034d565b6060600480546101aa906107a3565b5f33816102a48286610323565b9050838110156103095760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61025c828686840361034d565b5f336102388185856104e8565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103af5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610300565b6001600160a01b0382166104105760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610300565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61047b8484610323565b90505f1981146104e257818110156104d55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610300565b6104e2848484840361034d565b50505050565b6001600160a01b03831661054c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610300565b6001600160a01b0382166105ae5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610300565b6001600160a01b0383165f90815260208190526040902054818110156106255760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610300565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104e2565b5f602080835283518060208501525f5b818110156106b65785810183015185820160400152820161069a565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146106ec575f80fd5b919050565b5f8060408385031215610702575f80fd5b61070b836106d6565b946020939093013593505050565b5f805f6060848603121561072b575f80fd5b610734846106d6565b9250610742602085016106d6565b9150604084013590509250925092565b5f60208284031215610762575f80fd5b61076b826106d6565b9392505050565b5f8060408385031215610783575f80fd5b61078c836106d6565b915061079a602084016106d6565b90509250929050565b600181811c908216806107b757607f821691505b6020821081036107d557634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561023e57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220f3984d810857088c1044bbc9a3a420b15b8a07dbde5dff96652f75645045ee8f64736f6c63430008180033", + "balance": "0x0" + } +} \ No newline at end of file diff --git a/crates/chainspec/res/genesis/taiko/jolnir.json b/crates/chainspec/res/genesis/taiko/jolnir.json new file mode 100644 index 000000000000..d460a95a4d9e --- /dev/null +++ b/crates/chainspec/res/genesis/taiko/jolnir.json @@ -0,0 +1,210 @@ +{ + "0x19B4F9C381C7927FE33D853e48b560141A380C44": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0xFa9d666c396c64d155BDc23a2AAA53984939A4Ee": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0xb631796561d587AeEF2Fdd09AD33b8DE4bc92510": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x8a9f79C3dc6158E58484ceEd46d93c4B0bAD0824": { + "contractName": "LibTrieProof", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80636892abdc1461003a575b600080fd5b61004d61004836600461170f565b610061565b604051901515815260200160405180910390f35b600080806100718486018661185f565b6040516bffffffffffffffffffffffff1960608c901b166020820152919350915060009081906100b490603401604051602081830303815290604052858d610150565b91509150816100d657604051639dbcc1a760e01b815260040160405180910390fd5b60006100e182610179565b90506000610108826002815181106100fb576100fb6118c3565b60200260200101516101b2565b905061013f8b60405160200161012091815260200190565b6040516020818303038152906040526101388c6102ba565b87846102cd565b9d9c50505050505050505050505050565b60006060600061015f866102e7565b905061016c818686610319565b9250925050935093915050565b6040805180820182526000808252602091820152815180830190925282518252808301908201526060906101ac906103f4565b92915050565b600060218260000151111561020e5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e00000000000060448201526064015b60405180910390fd5b600080600061021c856105e0565b919450925090506000816001811115610237576102376118d9565b146102845760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610205565b60008386602001516102969190611905565b805190915060208410156102b05760208490036101000a90045b9695505050505050565b60606101ac6102c88361092a565b610a5e565b6000806102d9866102e7565b90506102b081868686610acd565b6060818051906020012060405160200161030391815260200190565b6040516020818303038152906040529050919050565b60006060600061032885610b0a565b9050600080600061033a848a89610c03565b8151929550909350915015808061034e5750815b61039a5760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e0000000000006044820152606401610205565b6000816103b657604051806020016040528060008152506103e2565b6103e2866103c5600188611918565b815181106103d5576103d56118c3565b6020026020010151611023565b919b919a509098505050505050505050565b6060600080610402846105e0565b9193509091506001905081600181111561041e5761041e6118d9565b1461046b5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e0000000000000000006044820152606401610205565b6040805160208082526104208201909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816104845790505090506000835b86518110156105d5576020821061051d5760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201526939ba103632b733ba341760b11b6064820152608401610205565b60008061055a6040518060400160405280858c6000015161053e9190611918565b8152602001858c602001516105539190611905565b90526105e0565b5091509150604051806040016040528083836105769190611905565b8152602001848b6020015161058b9190611905565b8152508585815181106105a0576105a06118c3565b60209081029190910101526105b6600185611905565b93506105c28183611905565b6105cc9084611905565b925050506104b1565b508152949350505050565b6000806000808460000151116106385760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e00000000000000006044820152606401610205565b6020840151805160001a607f811161065d576000600160009450945094505050610923565b60b781116106d9576000610672608083611918565b9050808760000151116106c75760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e000000000000006044820152606401610205565b60019550935060009250610923915050565b60bf81116107c85760006106ee60b783611918565b9050808760000151116107435760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e006044820152606401610205565b600183015160208290036101000a900461075d8183611905565b8851116107ac5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e00000000000000006044820152606401610205565b6107b7826001611905565b965094506000935061092392505050565b60f781116108435760006107dd60c083611918565b9050808760000151116108325760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e0000000000000000006044820152606401610205565b600195509350849250610923915050565b600061085060f783611918565b9050808760000151116108a55760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e0000006044820152606401610205565b600183015160208290036101000a90046108bf8183611905565b8851116109075760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b210292628103637b733903634b9ba1760511b6044820152606401610205565b610912826001611905565b965094506001935061092392505050565b9193909250565b606060008260405160200161094191815260200190565b604051602081830303815290604052905060005b602081101561099657818181518110610970576109706118c3565b01602001516001600160f81b0319166000036109965761098f8161192b565b9050610955565b60006109a3826020611918565b67ffffffffffffffff8111156109bb576109bb6117bc565b6040519080825280601f01601f1916602001820160405280156109e5576020820181803683370190505b50905060005b8151811015610a555783836109ff8161192b565b945081518110610a1157610a116118c3565b602001015160f81c60f81b828281518110610a2e57610a2e6118c3565b60200101906001600160f81b031916908160001a905350610a4e8161192b565b90506109eb565b50949350505050565b60608082516001148015610a8c5750608083600081518110610a8257610a826118c3565b016020015160f81c105b15610a985750816101ac565b610aa48351608061104a565b83604051602001610ab6929190611974565b604051602081830303815290604052905092915050565b6000806000610add878686610319565b91509150818015610aff57508051602080830191909120875191880191909120145b979650505050505050565b60606000610b1783610179565b90506000815167ffffffffffffffff811115610b3557610b356117bc565b604051908082528060200260200182016040528015610b7a57816020015b6040805180820190915260608082526020820152815260200190600190039081610b535790505b50905060005b8251811015610bfb576000610bad848381518110610ba057610ba06118c3565b60200260200101516111f4565b90506040518060400160405280610bc383610179565b815260200182815250838381518110610bde57610bde6118c3565b60200260200101819052505080610bf49061192b565b9050610b80565b509392505050565b600060606000806000610c1587611284565b90506000869050600080610c3c604051806040016040528060608152602001606081525090565b60005b8c51811015610ffb578c8181518110610c5a57610c5a6118c3565b602002602001015191508284610c709190611905565b9350610c7d600188611905565b965083600003610cda578482602001518051906020012014610cd55760405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b6044820152606401610205565b610d9c565b602082602001515110610d41578482602001518051906020012014610cd55760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c206861736800000000006044820152606401610205565b84610d4f83602001516113bd565b14610d9c5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f646520686173680000000000006044820152606401610205565b610da860106001611991565b60ff1682600001515103610e165785518414610ffb576000868581518110610dd257610dd26118c3565b01602001518351805160f89290921c925060009183908110610df657610df66118c3565b60200260200101519050610e09816113e5565b9650600194505050610feb565b81515160011901610fa3576000610e2c8361141b565b9050600081600081518110610e4357610e436118c3565b016020015160f81c90506000610e5a6002836119c0565b610e659060026119e2565b90506000610e76848360ff1661143f565b90506000610e848b8a61143f565b90506000610e928383611475565b905060ff851660021480610ea9575060ff85166003145b15610ee357808351148015610ebe5750808251145b15610ed057610ecd818b611905565b99505b50600160ff1b9950610ffb945050505050565b60ff85161580610ef6575060ff85166001145b15610f4c5782518114610f165750600160ff1b9950610ffb945050505050565b610f3d8860000151600181518110610f3057610f306118c3565b60200260200101516113e5565b9a509750610feb945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e206044820152650e0e4caccd2f60d31b6064820152608401610205565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e0000006044820152606401610205565b610ff48161192b565b9050610c3f565b50600160ff1b84148661100e878661143f565b909e909d50909b509950505050505050505050565b805180516060916101ac9161103a90600190611918565b81518110610ba057610ba06118c3565b60608060388410156110b1576040805160018082528183019092529060208201818036833701905050905061107f8385611991565b60f81b81600081518110611095576110956118c3565b60200101906001600160f81b031916908160001a9053506111ed565b600060015b6110c081876119fb565b156110e3576110ce8261192b565b91506110dc61010082611a0f565b90506110b6565b6110ee826001611905565b67ffffffffffffffff811115611106576111066117bc565b6040519080825280601f01601f191660200182016040528015611130576020820181803683370190505b50925061113d8583611991565b611148906037611991565b60f81b8360008151811061115e5761115e6118c3565b60200101906001600160f81b031916908160001a905350600190505b8181116111ea5761010061118e8284611918565b61119a90610100611b0a565b6111a490886119fb565b6111ae9190611b16565b60f81b8382815181106111c3576111c36118c3565b60200101906001600160f81b031916908160001a9053506111e38161192b565b905061117a565b50505b9392505050565b60606000806000611204856105e0565b91945092509050600081600181111561121f5761121f6118d9565b1461126c5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e00000000000000006044820152606401610205565b61127b856020015184846114ef565b95945050505050565b60606000825160026112969190611a0f565b67ffffffffffffffff8111156112ae576112ae6117bc565b6040519080825280601f01601f1916602001820160405280156112d8576020820181803683370190505b50905060005b83518110156113b65760048482815181106112fb576112fb6118c3565b01602001516001600160f81b031916901c82611318836002611a0f565b81518110611328576113286118c3565b60200101906001600160f81b031916908160001a9053506010848281518110611353576113536118c3565b0160200151611365919060f81c6119c0565b60f81b82611374836002611a0f565b61137f906001611905565b8151811061138f5761138f6118c3565b60200101906001600160f81b031916908160001a9053506113af8161192b565b90506112de565b5092915050565b60006020825110156113d157506020015190565b818060200190518101906101ac9190611b2a565b60006060602083600001511015611406576113ff83611598565b9050611412565b61140f836111f4565b90505b6111ed816113bd565b60606101ac61143a8360000151600081518110610ba057610ba06118c3565b611284565b60608251821061145e57506040805160208101909152600081526101ac565b6111ed83838486516114709190611918565b6115a3565b6000805b8084511180156114895750808351115b80156114da57508281815181106114a2576114a26118c3565b602001015160f81c60f81b6001600160f81b0319168482815181106114c9576114c96118c3565b01602001516001600160f81b031916145b156111ed576114e88161192b565b9050611479565b606060008267ffffffffffffffff81111561150c5761150c6117bc565b6040519080825280601f01601f191660200182016040528015611536576020820181803683370190505b50905080516000036115495790506111ed565b8484016020820160005b8581101561156b578281015182820152602001611553565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60606101ac826116f9565b6060816115b181601f611905565b10156115f05760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610205565b826115fb8382611905565b101561163a5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610205565b6116448284611905565b845110156116885760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610205565b6060821580156116a75760405191506000825260208201604052610a55565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156116e05780518352602092830192016116c8565b5050858452601f01601f19166040525050949350505050565b60606101ac8260200151600084600001516114ef565b60008060008060008060a0878903121561172857600080fd5b8635955060208701356001600160a01b038116811461174657600080fd5b94506040870135935060608701359250608087013567ffffffffffffffff8082111561177157600080fd5b818901915089601f83011261178557600080fd5b81358181111561179457600080fd5b8a60208285010111156117a657600080fd5b6020830194508093505050509295509295509295565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126117e357600080fd5b813567ffffffffffffffff808211156117fe576117fe6117bc565b604051601f8301601f19908116603f01168101908282118183101715611826576118266117bc565b8160405283815286602085880101111561183f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561187257600080fd5b823567ffffffffffffffff8082111561188a57600080fd5b611896868387016117d2565b935060208501359150808211156118ac57600080fd5b506118b9858286016117d2565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156101ac576101ac6118ef565b818103818111156101ac576101ac6118ef565b60006001820161193d5761193d6118ef565b5060010190565b6000815160005b81811015611965576020818501810151868301520161194b565b50600093019283525090919050565b60006119896119838386611944565b84611944565b949350505050565b60ff81811683821601908111156101ac576101ac6118ef565b634e487b7160e01b600052601260045260246000fd5b600060ff8316806119d3576119d36119aa565b8060ff84160691505092915050565b60ff82811682821603908111156101ac576101ac6118ef565b600082611a0a57611a0a6119aa565b500490565b80820281158282048414176101ac576101ac6118ef565b600181815b80851115611a61578160001904821115611a4757611a476118ef565b80851615611a5457918102915b93841c9390800290611a2b565b509250929050565b600082611a78575060016101ac565b81611a85575060006101ac565b8160018114611a9b5760028114611aa557611ac1565b60019150506101ac565b60ff841115611ab657611ab66118ef565b50506001821b6101ac565b5060208310610133831016604e8410600b8410161715611ae4575081810a6101ac565b611aee8383611a26565b8060001904821115611b0257611b026118ef565b029392505050565b60006111ed8383611a69565b600082611b2557611b256119aa565b500690565b600060208284031215611b3c57600080fd5b505191905056fea26469706673582212204875324a0ffbec2ef4b8b54e737ba4f199bc66a7bbc669362262c64003f5eb4964736f6c63430008140033", + "balance": "0x0" + }, + "0xb2Bcd028F53637a4FC4E06C52d247F38f44cBe4d": { + "contractName": "LibVaultUtils", + "storage": {}, + "code": "0x7300000000000000000000000000000000000000003014608060405260043610620000735760003560e01c80632c6a56af1462000078578063634da63a14620000a257806378adc0d614620000ab578063881107d914620000e957806393522e3e146200012c578063c0619cc21462000145575b600080fd5b6200008f6200008936600462000567565b6200015c565b6040519081526020015b60405180910390f35b6200008f600a81565b818015620000b857600080fd5b50620000d0620000ca36600462000622565b62000205565b6040516001600160a01b03909116815260200162000099565b62000100620000fa366004620006e9565b62000265565b60408051825181526020808401516001600160a01b031690820152918101519082015260600162000099565b620001436200013d3660046200071c565b620003a6565b005b6200014362000156366004620007c8565b6200041a565b6040516304c68c7960e31b815260009083906001600160a01b0382169063263463c8906200018f908890600401620008bb565b602060405180830381865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d39190620009d1565b91506001600160a01b038316620001fd576040516303f8a7d360e01b815260040160405180910390fd5b509392505050565b60006001600160a01b038416620002205762000220620009eb565b83838360405162000231906200052e565b6200023f9392919062000a01565b604051809103906000f0801580156200025c573d6000803e3d6000fd5b50949350505050565b6040805160608101825260008082526020820181905291810191909152336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015620002c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e7919062000a6d565b6040818101519051633632b1fb60e11b8152600481019190915260248101859052600060448201529091506001600160a01b03831690636c6563f690606401602060405180830381865afa15801562000344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036a919062000ad5565b6001600160a01b031681602001516001600160a01b031614620003a057604051636659b9bb60e11b815260040160405180910390fd5b92915050565b6001600160a01b0382161580620003ce5750826001600160a01b0316826001600160a01b0316145b15620003ed5760405163def9481360e01b815260040160405180910390fd5b6001600160a01b03811662000415576040516303f8a7d360e01b815260040160405180910390fd5b505050565b82518251146200043d5760405163196e8a4160e31b815260040160405180910390fd5b600a82511115620004615760405163e4a4c1c760e01b815260040160405180910390fd5b8015620004ce5760005b8251811015620004c8578381815181106200048a576200048a62000afc565b6020026020010151600014620004b357604051634299323b60e11b815260040160405180910390fd5b80620004bf8162000b12565b9150506200046b565b50505050565b60005b8351811015620004c857838181518110620004f057620004f062000afc565b60200260200101516000036200051957604051634299323b60e11b815260040160405180910390fd5b80620005258162000b12565b915050620004d1565b610dcf8062000b3b83390190565b6001600160a01b03811681146200055257600080fd5b50565b803562000562816200053c565b919050565b6000806000606084860312156200057d57600080fd5b833567ffffffffffffffff8111156200059557600080fd5b84016101808187031215620005a957600080fd5b92506020840135620005bb816200053c565b91506040840135620005cd816200053c565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156200061a576200061a620005d8565b604052919050565b6000806000606084860312156200063857600080fd5b833562000645816200053c565b925060208481013562000658816200053c565b9250604085013567ffffffffffffffff808211156200067657600080fd5b818701915087601f8301126200068b57600080fd5b813581811115620006a057620006a0620005d8565b620006b4601f8201601f19168501620005ee565b91508082528884828501011115620006cb57600080fd5b80848401858401376000848284010152508093505050509250925092565b60008060408385031215620006fd57600080fd5b82359150602083013562000711816200053c565b809150509250929050565b6000806000606084860312156200073257600080fd5b8335620005a9816200053c565b600082601f8301126200075157600080fd5b8135602067ffffffffffffffff821115620007705762000770620005d8565b8160051b62000781828201620005ee565b92835284810182019282810190878511156200079c57600080fd5b83870192505b84831015620007bd57823582529183019190830190620007a2565b979650505050505050565b600080600060608486031215620007de57600080fd5b833567ffffffffffffffff80821115620007f757600080fd5b62000805878388016200073f565b945060208601359150808211156200081c57600080fd5b506200082b868287016200073f565b92505060408401358015158114620005cd57600080fd5b6000808335601e198436030181126200085a57600080fd5b830160208101925035905067ffffffffffffffff8111156200087b57600080fd5b8036038213156200088b57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152813560208201526000620008d66020840162000555565b6001600160a01b0381166040840152506040830135606083015260608301356080830152620009086080840162000555565b6001600160a01b03811660a0840152506200092660a0840162000555565b6001600160a01b03811660c0840152506200094460c0840162000555565b6001600160a01b03811660e08401525061010060e08401358184015261012081850135818501526101409150808501358285015250620009878185018562000842565b91506101806101608181870152620009a56101a08701858562000892565b9350620009b58188018862000842565b878603601f19018489015293509050620007bd84848362000892565b600060208284031215620009e457600080fd5b5051919050565b634e487b7160e01b600052600160045260246000fd5b600060018060a01b038086168352602081861681850152606060408501528451915081606085015260005b8281101562000a4a5785810182015185820160800152810162000a2c565b50506000608082850101526080601f19601f830116840101915050949350505050565b60006060828403121562000a8057600080fd5b6040516060810181811067ffffffffffffffff8211171562000aa65762000aa6620005d8565b60405282518152602083015162000abd816200053c565b60208201526040928301519281019290925250919050565b60006020828403121562000ae857600080fd5b815162000af5816200053c565b9392505050565b634e487b7160e01b600052603260045260246000fd5b60006001820162000b3357634e487b7160e01b600052601160045260246000fd5b506001019056fe608060405260405162000dcf38038062000dcf833981016040819052620000269162000424565b828162000036828260006200004d565b50620000449050826200007f565b50505062000557565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d88833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000da86027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d888339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b6060600080856001600160a01b031685604051620002b6919062000504565b600060405180830381855af49150503d8060008114620002f3576040519150601f19603f3d011682016040523d82523d6000602084013e620002f8565b606091505b5090925090506200030c8683838762000316565b9695505050505050565b606083156200038a57825160000362000382576001600160a01b0385163b620003825760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620001c4565b508162000396565b6200039683836200039e565b949350505050565b815115620003af5781518083602001fd5b8060405162461bcd60e51b8152600401620001c4919062000522565b80516001600160a01b0381168114620003e357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200041b57818101518382015260200162000401565b50506000910152565b6000806000606084860312156200043a57600080fd5b6200044584620003cb565b92506200045560208501620003cb565b60408501519092506001600160401b03808211156200047357600080fd5b818601915086601f8301126200048857600080fd5b8151818111156200049d576200049d620003e8565b604051601f8201601f19908116603f01168101908382118183101715620004c857620004c8620003e8565b81604052828152896020848701011115620004e257600080fd5b620004f5836020830160208801620003fe565b80955050505050509250925092565b6000825162000518818460208701620003fe565b9190910192915050565b602081526000825180602084015262000543816040850160208701620003fe565b601f01601f19169190910160400192915050565b61082180620005676000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122013e4be7fbb9448379ca283101ef1037ca99a17f6ad00269fe32f79bcefab6e1864736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f7eab1ca665847bc4018294f96a153d69cce361a3d5f12cfd1bc2273590d44a364736f6c63430008140033", + "balance": "0x0" + }, + "0x455B9Bc4d78992D3c215AA37dEa16820d407b4c3": { + "contractName": "LibBridgeRetry", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c21ca915ccc921edec3de901a4d0348cf4bc5bff9797f582b0cf946ba041f74364736f6c63430008140033", + "balance": "0x0" + }, + "0xe1f32A7D3C6C23aA32B903E6518C5cEDa1233dE1": { + "contractName": "LibBridgeProcess", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122035fc1d40b735b2ee73e7108c8c67c328cd61e0193243acbff8377126b576539064736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000006": { + "contractName": "ProxiedAddressManager", + "storage": {}, + "code": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063656b06a414610067578063715018a6146100b75780638da5cb5b146100c1578063decd8e39146100d2578063e1c7392a146100e5578063f2fde38b146100ed575b600080fd5b61009b610075366004610466565b60009182526065602090815260408084209284529190529020546001600160a01b031690565b6040516001600160a01b03909116815260200160405180910390f35b6100bf610100565b005b6033546001600160a01b031661009b565b6100bf6100e03660046104a4565b610114565b6100bf6101d4565b6100bf6100fb3660046104d9565b6102ea565b610108610360565b61011260006103ba565b565b61011c610360565b6001600160a01b0381163b15801561013c57506001600160a01b03811633145b1561015a57604051630532024960e01b815260040160405180910390fd5b600083815260656020908152604080832085845282529182902080546001600160a01b038581166001600160a01b0319831681179093558451928352169181018290529091849186917fe41a6e8584d6e19a0dfc5f9331be4ebe61b5f025d45da164c9ca6ee9b837cea9910160405180910390a350505050565b600054610100900460ff16158080156101f45750600054600160ff909116105b8061020e5750303b15801561020e575060005460ff166001145b6102765760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610299576000805461ff0019166101001790555b6102a161040c565b80156102e7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6102f2610360565b6001600160a01b0381166103575760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161026d565b6102e7816103ba565b6033546001600160a01b031633146101125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161026d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166104335760405162461bcd60e51b815260040161026d906104fb565b610112600054610100900460ff1661045d5760405162461bcd60e51b815260040161026d906104fb565b610112336103ba565b6000806040838503121561047957600080fd5b50508035926020909101359150565b80356001600160a01b038116811461049f57600080fd5b919050565b6000806000606084860312156104b957600080fd5b83359250602084013591506104d060408501610488565b90509250925092565b6000602082840312156104eb57600080fd5b6104f482610488565b9392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212209632508c2a715b76d0a2d3aa58ee92c804730127c9ce52ca1746b6dd53e3493564736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000006": { + "contractName": "AddressManagerProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0xb1e89ee2bb78a419041fe24e740013159340b56d268f604f33f3c055e32347b5": "0x0000000000000000000000001000777700000000000000000000000000000001", + "0x13f577b9913c89bd350f4a404ebd8d505e1c9a69978cbcc8529fdd540bc949f3": "0x0000000000000000000000001000777700000000000000000000000000000004", + "0xd38903d6274a6db84688a349e4b3b67ae5c236d486bf6a62bd09314bf30ba140": "0x0000000000000000000000001000777700000000000000000000000000000002", + "0xbafc6b13b2f0c6eb23ba53cc40dafc5b57926d1acd46063721f26d168d8ac8e6": "0x0000000000000000000000001000777700000000000000000000000000000008", + "0xc278a37e264ab267ad37b6ee48041a93f8cea8fcfcaf9b7fd59d772e0ec551f1": "0x0000000000000000000000001000777700000000000000000000000000000009", + "0x72e9081aff0e8fea1bb15ead8a2c76d8049574549467dd79a558ba6534aacfed": "0x0000000000000000000000001000777700000000000000000000000000000003", + "0x03daec7c59de2c9cb8db9482af6aa07e46780a7bf4f7aa548e6a50a0b38b544d": "0x0000000000000000000000001000777700000000000000000000000000000007", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000006" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122013e4be7fbb9448379ca283101ef1037ca99a17f6ad00269fe32f79bcefab6e1864736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000001": { + "contractName": "ProxiedTaikoL2", + "storage": {}, + "code": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b8578063bdd6bc361161007c578063bdd6bc36146102f3578063c7b9690814610306578063da69d3db14610320578063dac5df7814610333578063f2fde38b1461033c578063f535bd561461034f57600080fd5b8063715018a61461029b5780638da5cb5b146102a35780639ee512f2146102b4578063a7e022d1146102cd578063a86f9d9e146102e057600080fd5b80634e755573116100ff5780634e755573146101d6578063539b8ade14610218578063591aad8a146102435780635c82e9c2146102755780636c6563f61461028857600080fd5b80630599d2941461013c5780630652b57a1461016257806310da37381461017757806323ac71361461019e5780633ab76e9f146101b1575b600080fd5b61014f61014a36600461171c565b610369565b6040519081526020015b60405180910390f35b61017561017036600461174c565b6103b7565b005b61014f7f92954368afd3caa1f3ce3ead0069c1af414054aefe1ef9aeacc1bf426222ce3881565b61014f6101ac36600461171c565b610430565b6097546001600160a01b03165b6040516001600160a01b039091168152602001610159565b6101de6104aa565b6040805182516001600160801b031681526020808401516001600160401b0316908201529181015163ffffffff1690820152606001610159565b60cd5461022b906001600160401b031681565b6040516001600160401b039091168152602001610159565b610256610251366004611769565b61050d565b6040805160ff9094168452602084019290925290820152606001610159565b61017561028336600461179f565b610748565b6101be6102963660046117f0565b610b04565b610175610b1b565b6065546001600160a01b03166101be565b6101be71777735367b36bc9b61c50022d9d0700db4ec81565b61014f6102db366004611839565b610b2f565b6101be6102ee36600461186c565b610b54565b61014f61030136600461171c565b610b6a565b60cd5461022b90600160401b90046001600160401b031681565b61017561032e36600461188f565b610bb5565b61014f60cb5481565b61017561034a36600461174c565b610e1e565b60cd5461022b90600160801b90046001600160401b031681565b6000806001600160401b038316156103815782610395565b60cd54600160401b90046001600160401b03165b6001600160401b0316600090815260ca60205260409020600101549392505050565b6103bf610e97565b6001600160a01b0381166103e657604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040517f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b90600090a250565b600043826001600160401b03161061044a57506000919050565b43826001600160401b03161080156104765750610469610100436118eb565b826001600160401b031610155b1561048957506001600160401b03164090565b506001600160401b0316600090815260c9602052604090205490565b919050565b6040805160608101825260008082526020820181905291810191909152506040805160608101825260cc546001600160801b0381168252600160801b81046001600160401b03166020830152600160c01b900463ffffffff169181019190915290565b60008060008360ff1660011415801561052a57508360ff16600214155b156105485760405163bcd2d90d60e01b815260040160405180910390fd5b8360ff16600114610579577fc6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee561059b565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817985b915060008460ff166001146105d0577fad77eceea844778cb4376153fc8f06f12f1695df4585bf75bfb17ec19ce908186105f2565b7fb4a95509ce05fe8d45987859a067780d16a367c0e2cacf79cd301b93fb7179405b905060008560ff16600114610627577f71620584f61c57e688bbd3fd7a39a036e588d962c4c830f3dacbc15c917e02f2610649565b7f45b59254b0320fd853f3f38ac574999e91bd75fd5e6cab9c22c5e71fc6d276e45b82880192831001905060ff86166001036106835761067c8282600170014551231950b75fc4402da1732fc9bebe19610ef1565b92506106f2565b6106cb7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a16106c68484600170014551231950b75fc4402da1732fc9bebe19610ef1565b610f40565b90925090506106ef8282600170014551231950b75fc4402da1732fc9bebe19610ef1565b92505b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561073f576107368370014551231950b75fc4402da1732fc9bebe196118eb565b92506001851894505b50509250925092565b600054610100900460ff16158080156107685750600054600160ff909116105b806107825750303b158015610782575060005460ff166001145b6107ea5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561080d576000805461ff0019166101001790555b600146111580610821575063ffffffff4610155b1561083f576040516306cffa2760e01b815260040160405180910390fd5b600143111561086157604051635a0f9e4160e11b815260040160405180910390fd5b61087160408301602084016118fe565b63ffffffff1615610a6057610889602083018361171c565b6001600160401b031615806108b457506108a9606083016040840161171c565b6001600160401b0316155b806108d557506108ca608083016060840161171c565b6001600160401b0316155b806108f657506108eb60a083016080840161171c565b6001600160401b0316155b1561091457604051639cc448b560e01b815260040160405180910390fd5b60008061095c61092a606086016040870161171c565b610937602087018761171c565b610947608088016060890161171c565b61095760a0890160808a0161171c565b610f5f565b91509150816001600160801b03166000148061098857506001600160401b036001600160801b03831610155b8061099a57506001600160801b038116155b156109b857604051639cc448b560e01b815260040160405180910390fd5b60cc80546001600160401b038416600160801b026001600160c01b03199091166001600160801b038416171790556109f660408501602086016118fe565b60cc805463ffffffff92909216600160c01b0263ffffffff60c01b199092169190911790556002610a2d606086016040870161171c565b610a37919061192f565b60cd60106101000a8154816001600160401b0302191690836001600160401b0316021790555050505b60cd805467ffffffffffffffff1916426001600160401b0316179055610a858361105e565b610a8e43611077565b5060cb554315610ab9576000610aa56001436118eb565b600081815260c96020526040902090409055505b8015610aff576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6000610b1184848461110a565b90505b9392505050565b610b23610e97565b610b2d60006111be565b565b6000610b4c610b3c6104aa565b846001600160401b031684611210565b509392505050565b6000610b6146848461110a565b90505b92915050565b6000806001600160401b03831615610b825782610b96565b60cd54600160401b90046001600160401b03165b6001600160401b0316600090815260ca60205260409020549392505050565b3371777735367b36bc9b61c50022d9d0700db4ec14610be757604051636494e9f760e01b815260040160405180910390fd5b6000610bf46001436118eb565b90508040600080610c0484611077565b915091508160cb5414610c385760cb54604051636340d9fb60e11b81526004810191909152602481018390526044016107e1565b60cb819055600084815260c96020908152604080832086905560cd80546fffffffffffffffff00000000000000001916600160401b6001600160401b038c1690810291909117909155815180830183528c81528084018c815282865260ca8552948390209051815593516001949094019390935580518b81529182018a90527e4ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555910160405180910390a2600080610cec6104aa565b9050806040015163ffffffff16600014610d505760cd54610d22908290610d1c906001600160401b0316426118eb565b89611210565b60cd80546001600160401b03909216600160801b0267ffffffffffffffff60801b1990921691909117905591505b814814610d8357604051634083acad60e01b81526001600160401b038084166004830152481660248201526044016107e1565b60cd80546001600160401b0342811667ffffffffffffffff19909216821790925560408051438416815292851660208401524563ffffffff908116848301526060840192909252608083018890524460a08401524160c08401524690911660e0830152517ff5e89a4a67ffebdbc23df567479d3096c1dba4169c6bbf20ffc6b24d7f6e6e70918190036101000190a150505050505050505050565b610e26610e97565b6001600160a01b038116610e8b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107e1565b610e94816111be565b50565b6065546001600160a01b03163314610b2d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107e1565b600060405160408152602080820152602060408201528460608201528560808201528360a08201528260c082015260208160e08360056107d05a03fa610f3657600080fd5b5195945050505050565b6000806000198385098385029250828110838203039150509250929050565b600080856001600160401b0316600003610f7b57610f7b611955565b6000610f8860028861192f565b9050610fa66001600160401b038816680755bf798b4a1bf1e461196b565b9250610fc5610fc084886001600160401b031684896112ad565b61136c565b91506000610fd5848484896112ad565b90506000610fef858585610fea8b6002611985565b6112ad565b9050600082611000836127106119b0565b61100a91906119c7565b9050806001600160401b0316876001600160401b03161461105157604051631530943760e11b81526001600160401b038089166004830152821660248201526044016107e1565b5050505094509492505050565b6110666113d9565b61106e611408565b610e9481611437565b6000806110826116e5565b60005b60ff811080156110985750806001018510155b156110ca576000198186030180408360ff830661010081106110bc576110bc6119db565b602002015250600101611085565b5046611fe0820152612000812092508340816110e760ff876119f1565b61010081106110f8576110f86119db565b60200201526120009020919391925050565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa15801561115b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117f9190611a05565b90508115801561119657506001600160a01b038116155b15610b1457604051631467050360e21b815260048101859052602481018490526044016107e1565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000806000856040015163ffffffff1685029050600061125f828663ffffffff1660cd60109054906101000a90046001600160401b03166001600160401b03160161148090919063ffffffff16565b90506112748282036001600160401b03611496565b9250505061129685602001516001600160401b031686600001518360006112ad565b9150816000036112a557600191505b935093915050565b60006001600160801b038516158015906112cf57506001600160801b03841615155b6112db576112db611955565b60006001600160401b038316156112f257826112f5565b60015b9050600061130c856001600160401b0316886114ab565b9050600061132c61131d8488611a22565b6001600160401b0316896114ab565b90506001600160801b0387166001600160401b03841661134c84846118eb565b61135691906119c7565b61136091906119c7565b98975050505050505050565b60006001600160801b038211156113d55760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016107e1565b5090565b600054610100900460ff166114005760405162461bcd60e51b81526004016107e190611a49565b610b2d6114fd565b600054610100900460ff1661142f5760405162461bcd60e51b81526004016107e190611a49565b610b2d61152a565b6001600160a01b03811661145e57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600081831161148f5781610b61565b5090919050565b60008183116114a55782610b61565b50919050565b6000806114c16001600160801b038416856119b0565b9050680755bf798b4a1bf1e481106114ec5760405163576ff4f160e01b815260040160405180910390fd5b6114f58161155a565b949350505050565b600054610100900460ff166115245760405162461bcd60e51b81526004016107e190611a49565b60018055565b600054610100900460ff166115515760405162461bcd60e51b81526004016107e190611a49565b610b2d336111be565b6000680248ce36a70cb26b3e19821361157557506000919050565b680755bf798b4a1bf1e5821261159e57604051631a93c68960e11b815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056001605f1b01901d6bb17217f7d1cf79abc9e3b39881029093036c240c330e9fb2d9cbaf0fd5aafb1981018102606090811d6d0277594991cfc85f6e2461837cd9018202811d6d1a521255e34f6a5061b25ef1c9c319018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d6e02c72388d9f74f51a9331fed693f1419018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084016d01d3967ed30fc4f89c02bab5708119010290911d6e0587f503bb6ea29d25fcb740196450019091026d360d7aeea093263ecc6e0ecb291760621b010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b604051806120000160405280610100906020820280368337509192915050565b80356001600160401b03811681146104a557600080fd5b60006020828403121561172e57600080fd5b610b6182611705565b6001600160a01b0381168114610e9457600080fd5b60006020828403121561175e57600080fd5b8135610b1481611737565b6000806040838503121561177c57600080fd5b82359150602083013560ff8116811461179457600080fd5b809150509250929050565b60008082840360c08112156117b357600080fd5b83356117be81611737565b925060a0601f19820112156117d257600080fd5b506020830190509250929050565b803580151581146104a557600080fd5b60008060006060848603121561180557600080fd5b833592506020840135915061181c604085016117e0565b90509250925092565b803563ffffffff811681146104a557600080fd5b6000806040838503121561184c57600080fd5b61185583611705565b915061186360208401611825565b90509250929050565b6000806040838503121561187f57600080fd5b82359150611863602084016117e0565b600080600080608085870312156118a557600080fd5b84359350602085013592506118bc60408601611705565b91506118ca60608601611825565b905092959194509250565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b6457610b646118d5565b60006020828403121561191057600080fd5b610b6182611825565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038084168061194957611949611919565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60006001600160801b038084168061194957611949611919565b6001600160401b038181168382160280821691908281146119a8576119a86118d5565b505092915050565b8082028115828204841417610b6457610b646118d5565b6000826119d6576119d6611919565b500490565b634e487b7160e01b600052603260045260246000fd5b600082611a0057611a00611919565b500690565b600060208284031215611a1757600080fd5b8151610b1481611737565b6001600160401b03818116838216019080821115611a4257611a426118d5565b5092915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212205f4efdbc77034498385a78f6fb0b8114f654cc25350f8d3ca6d3701f54f91fd464736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000001": { + "contractName": "TaikoL2Proxy", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000cb": "0x39d135ad4110ebf27f74d4b2e044581f2a2c91345cd1f81f6c0f3ab5e769f35f", + "0x00000000000000000000000000000000000000000000000000000000000000cc": "0x000000000028b0aa000000019fe2e7a60000001532d76dedb5e5af7fbea79f5e", + "0x00000000000000000000000000000000000000000000000000000000000000cd": "0x00000000000000000000000241ed2e8800000000000000000000000065001f60", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000001" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122013e4be7fbb9448379ca283101ef1037ca99a17f6ad00269fe32f79bcefab6e1864736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000004": { + "contractName": "ProxiedBridge", + "storage": {}, + "code": "0x60806040526004361061012e5760003560e01c8063620c23fb116100ab578063a86f9d9e1161006f578063a86f9d9e14610354578063ce70f39b14610374578063d0496d6a14610394578063ec9b312114610403578063f21be36f14610423578063f2fde38b1461044357600080fd5b8063620c23fb146102c15780636c6563f6146102e1578063715018a6146103015780638da5cb5b14610316578063a4444efd1461033457600080fd5b80634f5f9772116100f25780634f5f9772146101f45780635075a9d414610234578063540be6a3146102615780635d0bd98614610281578063606b5b74146102a157600080fd5b80630652b57a1461013a57806319ab453c1461015c578063263463c81461017c5780633ab76e9f146101af5780634c1888bc146101e157600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015a610155366004612a0c565b610463565b005b34801561016857600080fd5b5061015a610177366004612a0c565b6104dc565b34801561018857600080fd5b5061019c610197366004612a42565b6105f4565b6040519081526020015b60405180910390f35b3480156101bb57600080fd5b506097546001600160a01b03165b6040516001600160a01b0390911681526020016101a6565b61019c6101ef366004612a42565b61060d565b34801561020057600080fd5b5061022461020f366004612a76565b600090815260cd602052604090205460ff1690565b60405190151581526020016101a6565b34801561024057600080fd5b5061025461024f366004612a76565b61063b565b6040516101a69190612ac7565b34801561026d57600080fd5b5061022461027c366004612a76565b610646565b34801561028d57600080fd5b5061022461029c366004612a76565b610652565b3480156102ad57600080fd5b5061019c6102bc366004612a76565b610665565b3480156102cd57600080fd5b5061015a6102dc366004612b1d565b610670565b3480156102ed57600080fd5b506101c96102fc366004612b93565b610696565b34801561030d57600080fd5b5061015a6106ad565b34801561032257600080fd5b506065546001600160a01b03166101c9565b34801561034057600080fd5b5061022461034f366004612bcc565b6106c1565b34801561036057600080fd5b506101c961036f366004612c1e565b6106d9565b34801561038057600080fd5b5061022461038f366004612bcc565b6106e6565b3480156103a057600080fd5b50604080516060808201835260008083526020808401829052928401528251808201845260ca5480825260cb546001600160a01b0390811683860190815260cc5493870193845286519283525116938101939093525192820192909252016101a6565b34801561040f57600080fd5b5061015a61041e366004612b1d565b6106f5565b34801561042f57600080fd5b5061015a61043e366004612c4e565b61070d565b34801561044f57600080fd5b5061015a61045e366004612a0c565b61072b565b61046b6107a4565b6001600160a01b03811661049257604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040517f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b90600090a250565b600054610100900460ff16158080156104fc5750600054600160ff909116105b806105165750303b158015610516575060005460ff166001145b61057e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156105a1576000805461ff0019166101001790555b6105aa826107fe565b80156105f0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061060761060283612da4565b610817565b92915050565b6000610617610847565b61062b60c93061062685612da4565b6108a0565b905061063660018055565b919050565b600061060782610b71565b60006106073083610b9c565b600061065e3083610c7d565b5092915050565b600061060782610d06565b610678610847565b61068860c9308585856001610d41565b61069160018055565b505050565b60006106a3848484610fbe565b90505b9392505050565b6106b56107a4565b6106bf6000611072565b565b60006106d030868686866110c4565b95945050505050565b60006106a6468484610fbe565b60006106d03086868686611227565b6106fd610847565b61068860c93085858560016114ac565b610715610847565b61072260c930848461197f565b6105f060018055565b6107336107a4565b6001600160a01b0381166107985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610575565b6107a181611072565b50565b6065546001600160a01b031633146106bf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610575565b610806611b55565b61080e611b84565b6107a181611bb3565b60008160405160200161082a9190612eea565b604051602081830303815290604052805190602001209050919050565b6002600154036108995760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610575565b6002600155565b60808101516000906001600160a01b03166108ce576040516398fc91f160e01b815260040160405180910390fd5b6000806108df858560600151610c7d565b915091508115806108f35750468460600151145b156109115760405163e822b48d60e01b815260040160405180910390fd5b60a08401516001600160a01b031615806109405750806001600160a01b03168460a001516001600160a01b0316145b1561095e5760405163b9ad6a0f60e01b815260040160405180910390fd5b60008461010001518560e001516109759190612fed565b905034811461099757604051632609a19760e21b815260040160405180910390fd5b604051635437cecf60e11b81526000906001600160a01b0388169063a86f9d9e906109c790600190600401613000565b602060405180830381865afa1580156109e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a08919061301f565b9050610a1d6001600160a01b03821683611bfc565b8754886000610a2b8361303c565b909155508652336020870152466040870152610a4686610817565b604051635437cecf60e11b81529095506001600160a01b0388169063a86f9d9e90610a7690600090600401613055565b602060405180830381865afa158015610a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab7919061301f565b6001600160a01b03166366ca2bc0866040518263ffffffff1660e01b8152600401610ae491815260200190565b6020604051808303816000875af1158015610b03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b279190613077565b50847f238646a410b383b664b8d2fe57d2895c1ecd3464a3159cae73a93a9f21a4335587604051610b589190612eea565b60405180910390a2505050509392505050565b60018055565b600080610b7d83610d06565b8054909150806003811115610b9457610b94612a8f565b949350505050565b604051635437cecf60e11b81526000906001600160a01b0384169063a86f9d9e90610bcb908490600401613055565b602060405180830381865afa158015610be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0c919061301f565b604051631933b5e360e11b8152306004820152602481018490526001600160a01b0391909116906332676bc690604401602060405180830381865afa158015610c59573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a69190613090565b600080836001600160a01b0316636c6563f68460016040518363ffffffff1660e01b8152600401610caf9291906130ad565b602060405180830381865afa158015610ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf0919061301f565b6001600160a01b03811615159590945092505050565b60006040518060400160405280600e81526020016d4d4553534147455f53544154555360901b8152508260405160200161082a9291906130cc565b6000610d4f61060286612da4565b600081815260048901602052604090205490915060ff1615610d845760405163bd7e9a9d60e01b815260040160405180910390fd5b818015610d9f5750610d9d868287606001358787611227565b155b15610dbd5760405163498b0b1d60e01b815260040160405180910390fd5b600081815260048089016020526040808320805460ff191660019081179091559051635437cecf60e11b81526001600160a01b038a169263a86f9d9e92610e0692909101613000565b602060405180830381865afa158015610e23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e47919061301f565b90506001600160a01b03811615610ebc5760405163ba0bbd9560e01b815230600482015260e087013560248201526001600160a01b0382169063ba0bbd9590604401600060405180830381600087803b158015610ea357600080fd5b505af1158015610eb7573d6000803e3d6000fd5b505050505b610ee6631953216560e11b610ed76040890160208a01612a0c565b6001600160a01b031690611cb2565b15610f6257610efb6040870160208801612a0c565b6001600160a01b03166332a642ca8760e00135886040518363ffffffff1660e01b8152600401610f2b919061315c565b6000604051808303818588803b158015610f4457600080fd5b505af1158015610f58573d6000803e3d6000fd5b5050505050610f89565b610f8960e0870135610f7a60a0890160808a01612a0c565b6001600160a01b031690611bfc565b60405182907fc6fbc1fa0145a394c9c414b2ae7bd634eb50dd888938bcd75692ae427b680fa290600090a25050505050505050565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa15801561100f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611033919061301f565b90508115801561104a57506001600160a01b038116155b156106a657604051631467050360e21b81526004810185905260248101849052604401610575565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080866001600160a01b0316636c6563f68660006040518363ffffffff1660e01b81526004016110f69291906130ad565b602060405180830381865afa158015611113573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611137919061301f565b604051635437cecf60e11b81529091506001600160a01b0388169063a86f9d9e9061116790600090600401613055565b602060405180830381865afa158015611184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a8919061301f565b6001600160a01b0316635221f61386838988886040518663ffffffff1660e01b81526004016111db959493929190613262565b602060405180830381865afa1580156111f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121c9190613090565b979650505050505050565b60004684036112495760405163e822b48d60e01b815260040160405180910390fd5b600085900361126b5760405163a6407c9360e01b815260040160405180910390fd5b60006112798385018561332b565b604051635437cecf60e11b8152647461696b6f60d81b60048201526000602482018190529192506001600160a01b0389169063a86f9d9e90604401602060405180830381865afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f5919061301f565b82516101000151604051635eeb5e1b60e11b81526001600160401b0390911660048201526001600160a01b03919091169063bdd6bc3690602401602060405180830381865afa15801561134c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113709190613077565b90508015806113895750815161138590611d2b565b8114155b15611399576000925050506106d0565b815160600151604051633632b1fb60e11b8152738a9f79C3dc6158E58484ceEd46d93c4B0bAD082491636892abdc916001600160a01b038c1690636c6563f6906113ea908c906000906004016130ad565b602060405180830381865afa158015611407573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142b919061301f565b6114348b610d06565b602087015160405160e086901b6001600160e01b031916815261145f949392916003916004016134cf565b602060405180830381865af415801561147c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a09190613090565b98975050505050505050565b6101208401351580156114e057506114ca60a0850160808601612a0c565b6001600160a01b0316336001600160a01b031614155b156114fe5760405163398b635960e21b815260040160405180910390fd5b468460600135146115225760405163e822b48d60e01b815260040160405180910390fd5b600061153061060286612da4565b9050600061153d82610b71565b600381111561154e5761154e612a8f565b1461156c57604051630cfafbf960e01b815260040160405180910390fd5b6000866001600160a01b0316636c6563f6876040013560006040518363ffffffff1660e01b81526004016115a19291906130ad565b602060405180830381865afa1580156115be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e2919061301f565b90508280156116d45750604051635437cecf60e11b81526001600160a01b0388169063a86f9d9e9061161990600090600401613055565b602060405180830381865afa158015611636573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165a919061301f565b6001600160a01b0316635221f6138760400135838589896040518663ffffffff1660e01b8152600401611691959493929190613262565b602060405180830381865afa1580156116ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d29190613090565b155b156116f2576040516314504c7360e31b815260040160405180910390fd5b604051635437cecf60e11b81526000906001600160a01b0389169063a86f9d9e9061172290600190600401613000565b602060405180830381865afa15801561173f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611763919061301f565b90506001600160a01b038116156117f6576001600160a01b03811663ba0bbd95306117976101008b013560e08c0135612fed565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156117dd57600080fd5b505af11580156117f1573d6000803e3d6000fd5b505050505b6000803061180a60c08b0160a08c01612a0c565b6001600160a01b031614806118375750600061182c60c08b0160a08c01612a0c565b6001600160a01b0316145b1561184b57506002905060e08801356118c1565b600061185d60a08b0160808c01612a0c565b6001600160a01b0316336001600160a01b03161461188057896101200135611882565b5a5b905060006118928d8c8985611d50565b905080156118a357600293506118be565b600193506118be6001600160a01b03861660e08d0135611bfc565b50505b6118cb8583611ea7565b6000806118de60e08c0160c08d01612a0c565b6001600160a01b031614611901576118fc60e08b0160c08c01612a0c565b611911565b61191160a08b0160808c01612a0c565b90506001600160a01b038116330361194f576000611934836101008d0135612fed565b90506119496001600160a01b03831682611bfc565b50611971565b61195e336101008c0135611bfc565b6119716001600160a01b03821683611bfc565b505050505050505050505050565b610120820135158061198e5750805b156119d4576119a360a0830160808401612a0c565b6001600160a01b0316336001600160a01b0316146119d45760405163d7f4fc9f60e01b815260040160405180910390fd5b60006119e261060284612da4565b905060016119ef82610b71565b6003811115611a0057611a00612a8f565b14611a1e57604051631f6646b560e01b815260040160405180910390fd5b604051635437cecf60e11b81526000906001600160a01b0386169063a86f9d9e90611a4e90600190600401613000565b602060405180830381865afa158015611a6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8f919061301f565b90506001600160a01b03811615611b045760405163ba0bbd9560e01b815230600482015260e085013560248201526001600160a01b0382169063ba0bbd9590604401600060405180830381600087803b158015611aeb57600080fd5b505af1158015611aff573d6000803e3d6000fd5b505050505b6000611b128786855a611d50565b90508015611b2a57611b25836002611ea7565b611b4c565b611b35836003611ea7565b611b4c6001600160a01b03831660e0870135611bfc565b50505050505050565b600054610100900460ff16611b7c5760405162461bcd60e51b815260040161057590613502565b6106bf611f20565b600054610100900460ff16611bab5760405162461bcd60e51b815260040161057590613502565b6106bf611f47565b6001600160a01b038116611bda57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b801580611c1057506001600160a01b038216155b15611c19575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611c66576040519150601f19603f3d011682016040523d82523d6000602084013e611c6b565b606091505b50509050806106915760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610575565b6040516301ffc9a760e01b81526001600160e01b0319821660048201526000906001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015611d1f575060408051601f3d908101601f19168201909252611d1c91810190613090565b60015b15610607579392505050565b600080611d41611d3c846000611f77565b612398565b80516020909101209392505050565b600081600003611d7357604051637f0e960960e11b815260040160405180910390fd5b6040518060600160405280848152602001856020016020810190611d979190612a0c565b6001600160a01b039081168252604087810135602093840152835160018a0155918301516002890180546001600160a01b0319169190921617905501516003860155611de960c0850160a08601612a0c565b6001600160a01b03168260e0860135611e0661014088018861354d565b604051611e14929190613593565b600060405180830381858888f193505050503d8060008114611e52576040519150601f19603f3d011682016040523d82523d6000602084013e611e57565b606091505b505060408051606081018252600180825260208201819052600019919092018190528782018290556002880180546001600160a01b03191690921790915560039096019590955550929392505050565b806003811115611eb957611eb9612a8f565b611ec283610b71565b6003811115611ed357611ed3612a8f565b146105f057611ee282826123dc565b817f0af4d5247f6a4028d6699afb62871a76b398da1d1a626c8a9b90e0bd5f54c73c8233604051611f149291906135a3565b60405180910390a25050565b600054610100900460ff16610b6b5760405162461bcd60e51b815260040161057590613502565b600054610100900460ff16611f6e5760405162461bcd60e51b815260040161057590613502565b6106bf33611072565b61020082015160609015611fe257611f90826011612fed565b6001600160401b03811115611fa757611fa7612c94565b604051908082528060200260200182016040528015611fda57816020015b6060815260200190600190039081611fc55790505b509050612051565b6101e083015115611ff857611f90826010612fed565b61200382600f612fed565b6001600160401b0381111561201a5761201a612c94565b60405190808252806020026020018201604052801561204d57816020015b60608152602001906001900390816120385790505b5090505b825161205c90612405565b8160008151811061206f5761206f6135c9565b60200260200101819052506120878360200151612405565b8160018151811061209a5761209a6135c9565b60200260200101819052506120b28360400151612418565b816002815181106120c5576120c56135c9565b60200260200101819052506120dd8360600151612405565b816003815181106120f0576120f06135c9565b60200260200101819052506121088360800151612405565b8160048151811061211b5761211b6135c9565b60200260200101819052506121338360a00151612405565b81600581518110612146576121466135c9565b602002602001018190525061217d8360c0015160405160200161216991906135df565b604051602081830303815290604052612441565b81600681518110612190576121906135c9565b60200260200101819052506121a88360e001516124b0565b816007815181106121bb576121bb6135c9565b60200260200101819052506121dd8361010001516001600160801b03166124b0565b816008815181106121f0576121f06135c9565b60200260200101819052506122098361012001516124be565b8160098151811061221c5761221c6135c9565b60200260200101819052506122358361014001516124be565b81600a81518110612248576122486135c9565b60200260200101819052506122618361016001516124be565b81600b81518110612274576122746135c9565b602002602001018190525061228d836101800151612441565b81600c815181106122a0576122a06135c9565b60200260200101819052506122b9836101a00151612405565b81600d815181106122cc576122cc6135c9565b6020026020010181905250612303836101c00151604051602001612169919060c09190911b6001600160c01b031916815260080190565b81600e81518110612316576123166135c9565b6020026020010181905250826101e0015160001461235b5761233c836101e001516124b0565b81600f8151811061234f5761234f6135c9565b60200260200101819052505b6102008301511561060757612374836102000151612405565b81601081518110612387576123876135c9565b602002602001018190525092915050565b606060006123a5836124d5565b90506123b3815160c061260a565b816040516020016123c5929190613614565b604051602081830303815290604052915050919050565b60006123e783610d06565b905060008260038111156123fd576123fd612a8f565b909155505050565b6060610607612413836127b3565b612441565b604051606082811b6bffffffffffffffffffffffff191660208301529061060790603401612169565b6060808251600114801561246f5750608083600081518110612465576124656135c9565b016020015160f81c105b1561247b575081610607565b6124878351608061260a565b83604051602001612499929190613614565b604051602081830303815290604052905092915050565b606061060761241383612865565b6060610607612413836001600160401b0316612865565b606081516000036124f657604080516000808252602082019092529061065e565b6000805b835181101561253b57838181518110612515576125156135c9565b602002602001015151826125299190612fed565b91506125348161303c565b90506124fa565b6000826001600160401b0381111561255557612555612c94565b6040519080825280601f01601f19166020018201604052801561257f576020820181803683370190505b50600092509050602081015b85518310156126015760008684815181106125a8576125a86135c9565b6020026020010151905060006020820190506125c68382845161298f565b8785815181106125d8576125d86135c9565b602002602001015151836125ec9190612fed565b92505050826125fa9061303c565b925061258b565b50949350505050565b6060806038841015612671576040805160018082528183019092529060208201818036833701905050905061263f8385613643565b60f81b81600081518110612655576126556135c9565b60200101906001600160f81b031916908160001a9053506106a6565b600060015b6126808187613672565b156126a35761268e8261303c565b915061269c61010082613686565b9050612676565b6126ae826001612fed565b6001600160401b038111156126c5576126c5612c94565b6040519080825280601f01601f1916602001820160405280156126ef576020820181803683370190505b5092506126fc8583613643565b612707906037613643565b60f81b8360008151811061271d5761271d6135c9565b60200101906001600160f81b031916908160001a905350600190505b8181116127a95761010061274d828461369d565b61275990610100613794565b6127639088613672565b61276d91906137a0565b60f81b838281518110612782576127826135c9565b60200101906001600160f81b031916908160001a9053506127a28161303c565b9050612739565b5050905092915050565b60606000826040516020016127ca91815260200190565b60408051808303601f1901815260208084528383019092529250600091829160208201818036833701905050905060005b815181101561260157838361280f8161303c565b945081518110612821576128216135c9565b602001015160f81c60f81b82828151811061283e5761283e6135c9565b60200101906001600160f81b031916908160001a90535061285e8161303c565b90506127fb565b606060008260405160200161287c91815260200190565b604051602081830303815290604052905060005b60208110156128d1578181815181106128ab576128ab6135c9565b01602001516001600160f81b0319166000036128d1576128ca8161303c565b9050612890565b60006128de82602061369d565b6001600160401b038111156128f5576128f5612c94565b6040519080825280601f01601f19166020018201604052801561291f576020820181803683370190505b50905060005b81518110156126015783836129398161303c565b94508151811061294b5761294b6135c9565b602001015160f81c60f81b828281518110612968576129686135c9565b60200101906001600160f81b031916908160001a9053506129888161303c565b9050612925565b8282825b602081106129cb57815183526129aa602084612fed565b92506129b7602083612fed565b91506129c460208261369d565b9050612993565b905182516020929092036101000a6000190180199091169116179052505050565b6001600160a01b03811681146107a157600080fd5b8035610636816129ec565b600060208284031215612a1e57600080fd5b81356106a6816129ec565b60006101808284031215612a3c57600080fd5b50919050565b600060208284031215612a5457600080fd5b81356001600160401b03811115612a6a57600080fd5b610b9484828501612a29565b600060208284031215612a8857600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60048110612ac357634e487b7160e01b600052602160045260246000fd5b9052565b602081016106078284612aa5565b60008083601f840112612ae757600080fd5b5081356001600160401b03811115612afe57600080fd5b602083019150836020828501011115612b1657600080fd5b9250929050565b600080600060408486031215612b3257600080fd5b83356001600160401b0380821115612b4957600080fd5b612b5587838801612a29565b94506020860135915080821115612b6b57600080fd5b50612b7886828701612ad5565b9497909650939450505050565b80151581146107a157600080fd5b600080600060608486031215612ba857600080fd5b83359250602084013591506040840135612bc181612b85565b809150509250925092565b60008060008060608587031215612be257600080fd5b843593506020850135925060408501356001600160401b03811115612c0657600080fd5b612c1287828801612ad5565b95989497509550505050565b60008060408385031215612c3157600080fd5b823591506020830135612c4381612b85565b809150509250929050565b60008060408385031215612c6157600080fd5b82356001600160401b03811115612c7757600080fd5b612c8385828601612a29565b9250506020830135612c4381612b85565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b0381118282101715612ccd57612ccd612c94565b60405290565b604080519081016001600160401b0381118282101715612ccd57612ccd612c94565b60405161022081016001600160401b0381118282101715612ccd57612ccd612c94565b600082601f830112612d2957600080fd5b81356001600160401b0380821115612d4357612d43612c94565b604051601f8301601f19908116603f01168101908282118183101715612d6b57612d6b612c94565b81604052838152866020858801011115612d8457600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006101808236031215612db757600080fd5b612dbf612caa565b82358152612dcf60208401612a01565b60208201526040830135604082015260608301356060820152612df460808401612a01565b6080820152612e0560a08401612a01565b60a0820152612e1660c08401612a01565b60c082015260e0838101359082015261010080840135908201526101208084013590820152610140808401356001600160401b0380821115612e5757600080fd5b612e6336838801612d18565b83850152610160925082860135915080821115612e7f57600080fd5b50612e8c36828701612d18565b918301919091525092915050565b60005b83811015612eb5578181015183820152602001612e9d565b50506000910152565b60008151808452612ed6816020860160208601612e9a565b601f01601f19169290920160200192915050565b602081528151602082015260006020830151612f1160408401826001600160a01b03169052565b5060408301516060830152606083015160808301526080830151612f4060a08401826001600160a01b03169052565b5060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610180610160808501829052612fb16101a0860184612ebe565b90860151858203601f190183870152909250612fcd8382612ebe565b9695505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561060757610607612fd7565b6a195d1a195c97dd985d5b1d60aa1b8152901515602082015260400190565b60006020828403121561303157600080fd5b81516106a6816129ec565b60006001820161304e5761304e612fd7565b5060010190565b6d7369676e616c5f7365727669636560901b8152901515602082015260400190565b60006020828403121561308957600080fd5b5051919050565b6000602082840312156130a257600080fd5b81516106a681612b85565b9182526562726964676560d01b60208301521515604082015260600190565b600083516130de818460208801612e9a565b9190910191825250602001919050565b6000808335601e1984360301811261310557600080fd5b83016020810192503590506001600160401b0381111561312457600080fd5b803603821315612b1657600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815281356020820152600061317560208401612a01565b6001600160a01b03811660408401525060408301356060830152606083013560808301526131a560808401612a01565b6001600160a01b03811660a0840152506131c160a08401612a01565b6001600160a01b03811660c0840152506131dd60c08401612a01565b6001600160a01b03811660e08401525061010060e0840135818401526101208185013581850152610140915080850135828501525061321e818501856130ee565b9150610180610160818187015261323a6101a087018585613133565b9350613248818801886130ee565b878603601f1901848901529350905061121c848483613133565b85815260018060a01b038516602082015283604082015260806060820152600061121c608083018486613133565b600082601f8301126132a157600080fd5b6040516101008082018281106001600160401b03821117156132c5576132c5612c94565b604052830181858211156132d857600080fd5b845b828110156132f25780358252602091820191016132da565b509195945050505050565b80356001600160801b038116811461063657600080fd5b80356001600160401b038116811461063657600080fd5b60006020828403121561333d57600080fd5b81356001600160401b038082111561335457600080fd5b908301906040828603121561336857600080fd5b613370612cd3565b82358281111561337f57600080fd5b8301610300818803121561339257600080fd5b61339a612cf5565b81358152602082013560208201526133b460408301612a01565b6040820152606082013560608201526080820135608082015260a082013560a08201526133e48860c08401613290565b60c08201526101c08083013560e08301526101e06134038185016132fd565b610100840152610200613417818601613314565b61012085015261342a6102208601613314565b61014085015261343d6102408601613314565b6101608501526102608501358781111561345657600080fd5b6134628c828801612d18565b610180860152506102808501356101a08501526134826102a08601613314565b838501526102c0850135828501526102e08501358185015250505080835250506020830135828111156134b457600080fd5b6134c087828601612d18565b60208301525095945050505050565b85815260018060a01b038516602082015283604082015282606082015260a06080820152600061121c60a0830184612ebe565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000808335601e1984360301811261356457600080fd5b8301803591506001600160401b0382111561357e57600080fd5b602001915036819003821315612b1657600080fd5b8183823760009101908152919050565b604081016135b18285612aa5565b6001600160a01b039290921660209190910152919050565b634e487b7160e01b600052603260045260246000fd5b60008183825b60088110156136045781518352602092830192909101906001016135e5565b5050506101008201905092915050565b60008351613626818460208801612e9a565b83519083019061363a818360208801612e9a565b01949350505050565b60ff818116838216019081111561060757610607612fd7565b634e487b7160e01b600052601260045260246000fd5b6000826136815761368161365c565b500490565b808202811582820484141761060757610607612fd7565b8181038181111561060757610607612fd7565b600181815b808511156136eb5781600019048211156136d1576136d1612fd7565b808516156136de57918102915b93841c93908002906136b5565b509250929050565b60008261370257506001610607565b8161370f57506000610607565b8160018114613725576002811461372f5761374b565b6001915050610607565b60ff84111561374057613740612fd7565b50506001821b610607565b5060208310610133831016604e8410600b841016171561376e575081810a610607565b61377883836136b0565b806000190482111561378c5761378c612fd7565b029392505050565b60006106a683836136f3565b6000826137af576137af61365c565b50069056fea26469706673582212204997777a1031b83fdf2e825630d2f95588a7e236b52b64399419b4df680ff6ee64736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000004": { + "contractName": "BridgeProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000004" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122013e4be7fbb9448379ca283101ef1037ca99a17f6ad00269fe32f79bcefab6e1864736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000002": { + "contractName": "ProxiedERC20Vault", + "storage": {}, + "code": "0x608060405260043610620000fb5760003560e01c8063715018a61162000095578063c287e5781162000060578063c287e57814620002e0578063cb03d23c1462000314578063e2dc9033146200032b578063f2fde38b146200034257600080fd5b8063715018a6146200024b5780638da5cb5b14620002635780639aa8605c1462000283578063a86f9d9e14620002bb57600080fd5b806332a642ca11620000d657806332a642ca14620001965780633ab76e9f14620001ad57806367090ccf14620001e15780636c6563f6146200022657600080fd5b806301ffc9a714620001005780630652b57a146200014a57806319ab453c1462000171575b600080fd5b3480156200010d57600080fd5b50620001356200011f36600462002156565b6001600160e01b031916631953216560e11b1490565b60405190151581526020015b60405180910390f35b3480156200015757600080fd5b506200016f62000169366004620021a5565b62000367565b005b3480156200017e57600080fd5b506200016f62000190366004620021a5565b620003e3565b6200016f620001a7366004620021c5565b62000503565b348015620001ba57600080fd5b506097546001600160a01b03165b6040516001600160a01b03909116815260200162000141565b348015620001ee57600080fd5b50620001c86200020036600462002204565b60cb6020908152600092835260408084209091529082529020546001600160a01b031681565b3480156200023357600080fd5b50620001c86200024536600462002246565b620007b5565b3480156200025857600080fd5b506200016f620007ce565b3480156200027057600080fd5b506065546001600160a01b0316620001c8565b3480156200029057600080fd5b50620002a8620002a2366004620021a5565b620007e6565b60405162000141959493929190620022d6565b348015620002c857600080fd5b50620001c8620002da3660046200232b565b62000947565b348015620002ed57600080fd5b5062000135620002ff366004620021a5565b60c96020526000908152604090205460ff1681565b6200016f6200032536600462002353565b6200095f565b6200016f6200033c366004620023c9565b62000c0f565b3480156200034f57600080fd5b506200016f62000361366004620021a5565b62000fb4565b6200037162001030565b6001600160a01b0381166200039957604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040517f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b90600090a250565b600054610100900460ff1615808015620004045750600054600160ff909116105b80620004205750303b15801562000420575060005460ff166001145b620004895760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015620004ad576000805461ff0019166101001790555b620004b8826200108c565b8015620004ff576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6200050d620010ab565b6562726964676560d01b6200052481600162000947565b6001600160a01b0316336001600160a01b0316146200055657604051630d85cccf60e11b815260040160405180910390fd5b60006200056e6562726964676560d01b600062000947565b90506000816001600160a01b031663263463c8856040518263ffffffff1660e01b8152600401620005a0919062002481565b602060405180830381865afa158015620005be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005e49190620025a2565b9050600080620005f9610140870187620025bc565b6200060991600490829062002606565b8101906200061891906200273f565b919450909250506001600160a01b038316905062000649576040516303f8a7d360e01b815260040160405180910390fd5b801562000739576001600160a01b038216600090815260c9602052604090205460ff1680620006a357506200068e6a3a30b4b5b7afba37b5b2b760a91b600162000947565b6001600160a01b0316826001600160a01b0316145b156200071157604051632770a7eb60e21b8152306004820152602481018290526001600160a01b03831690639dc29fac90604401600060405180830381600087803b158015620006f257600080fd5b505af115801562000707573d6000803e3d6000fd5b5050505062000739565b620007396200072760a0880160808901620021a5565b6001600160a01b038416908362001106565b6200074b60a0870160808801620021a5565b6001600160a01b0316837f75c5fedbd5fff6123ad9b70827e9742ea1eee996583d6e14249f1429fc4fd99384846040516200079b9291906001600160a01b03929092168252602082015260400190565b60405180910390a35050505050620007b260018055565b50565b6000620007c484848462001165565b90505b9392505050565b620007d862001030565b620007e460006200121f565b565b60ca6020526000908152604090208054600182015460028301805492936001600160a01b03831693600160a01b90930460ff169290919062000828906200282d565b80601f016020809104026020016040519081016040528092919081815260200182805462000856906200282d565b8015620008a75780601f106200087b57610100808354040283529160200191620008a7565b820191906000526020600020905b8154815290600101906020018083116200088957829003601f168201915b505050505090806003018054620008be906200282d565b80601f0160208091040260200160405190810160405280929190818152602001828054620008ec906200282d565b80156200093d5780601f1062000911576101008083540402835291602001916200093d565b820191906000526020600020905b8154815290600101906020018083116200091f57829003601f168201915b5050505050905085565b60006200095646848462001165565b90505b92915050565b62000969620010ab565b6562726964676560d01b6200098081600162000947565b6001600160a01b0316336001600160a01b031614620009b257604051630d85cccf60e11b815260040160405180910390fd5b60405163881107d960e01b81526a195c98cc8c17dd985d5b1d60aa1b600482015230602482015260009073b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d9063881107d990604401606060405180830381865af415801562000a19573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a3f919062002869565b905060004687350362000b1a5762000a5e6040880160208901620021a5565b905062000a7b6a3a30b4b5b7afba37b5b2b760a91b600162000947565b6001600160a01b0316816001600160a01b03160362000afe576040516340c10f1960e01b81526001600160a01b038681166004830152602482018690528216906340c10f1990604401600060405180830381600087803b15801562000adf57600080fd5b505af115801562000af4573d6000803e3d6000fd5b5050505062000b8e565b62000b146001600160a01b038216868662001106565b62000b8e565b62000b258762001271565b6040516340c10f1960e01b81526001600160a01b03878116600483015260248201879052919250908216906340c10f1990604401600060405180830381600087803b15801562000b7457600080fd5b505af115801562000b89573d6000803e3d6000fd5b505050505b62000ba36001600160a01b03861634620012d0565b815160408084015181519081526001600160a01b0384811660208301529181018790528188169291891691907f883b72735ca0ee2cdd2a462a393658b1a0b36ebd8756e4c22b7509a92ff86a029060600160405180910390a450505062000c0960018055565b50505050565b62000c19620010ab565b80356a195c98cc8c17dd985d5b1d60aa1b62000c3c6040840160208501620021a5565b62000c4e6060850160408601620021a5565b6001600160a01b038216158062000c83575062000c6e84846000620007b5565b6001600160a01b0316826001600160a01b0316145b1562000ca25760405163def9481360e01b815260040160405180910390fd5b6001600160a01b03811662000cca576040516303f8a7d360e01b815260040160405180910390fd5b846060013560000362000cf057604051634299323b60e11b815260040160405180910390fd5b600062000d7b6040518061018001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160608152602001606081525090565b608081015162000db49062000d9760608a0160408b01620021a5565b62000da960408b0160208c01620021a5565b8a606001356200138c565b61014083019190915287356060830181905233608084015290925062000deb906a195c98cc8c17dd985d5b1d60aa1b6000620007b5565b6001600160a01b031660a080830191909152608088013561012083015262000e179088013534620028d1565b60e08083019190915260a088013561010083015262000e3c90880160c08901620021a5565b6001600160a01b031660c082015262000e5960e0880188620025bc565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101608601949094525062000eac91506562726964676560d01b90508262000947565b6001600160a01b0316634c1888bc34846040518363ffffffff1660e01b815260040162000eda9190620028f3565b60206040518083038185885af115801562000ef9573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062000f209190620025a2565b905062000f346040890160208a01620021a5565b60808301516001600160a01b039182169116827f91462591aed3d13dcadac8ed73fdc175ec6e79b798ca205822e7ec33dc019e888b3562000f7c60608e0160408f01620021a5565b604080519283526001600160a01b039091166020830152810188905260600160405180910390a450505050505050620007b260018055565b62000fbe62001030565b6001600160a01b038116620010255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000480565b620007b2816200121f565b6065546001600160a01b03163314620007e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000480565b62001096620019db565b620010a062001a0f565b620007b28162001a43565b600260015403620010ff5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640162000480565b6002600155565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526200115a90849062001a8d565b505050565b60018055565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa158015620011b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011dd9190620029e6565b905081158015620011f557506001600160a01b038116155b15620007c757604051631467050360e21b8152600481018590526024810184905260440162000480565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8035600090815260cb602090815260408083209183916200129891908601908601620021a5565b6001600160a01b03908116825260208201929092526040016000205416905080620012cb57620012c88262001b66565b90505b919050565b801580620012e557506001600160a01b038216155b15620012ef575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146200133e576040519150601f19603f3d011682016040523d82523d6000602084013e62001343565b606091505b50509050806200115a5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640162000480565b60606000620013cf6040518060a001604052806000815260200160006001600160a01b03168152602001600060ff16815260200160608152602001606081525090565b6001600160a01b038616600090815260c9602052604090205460ff161562001603576001600160a01b03868116600090815260ca6020908152604091829020825160a08101845281548152600182015494851692810192909252600160a01b90930460ff169181019190915260028201805491929160608401919062001455906200282d565b80601f016020809104026020016040519081016040528092919081815260200182805462001483906200282d565b8015620014d45780601f10620014a857610100808354040283529160200191620014d4565b820191906000526020600020905b815481529060010190602001808311620014b657829003601f168201915b50505050508152602001600382018054620014ef906200282d565b80601f01602080910402602001604051908101604052809291908181526020018280546200151d906200282d565b80156200156e5780601f1062001542576101008083540402835291602001916200156e565b820191906000526020600020905b8154815290600101906020018083116200155057829003601f168201915b5050509190925250505060208101519091506001600160a01b031662001598576200159862002a06565b604051632770a7eb60e21b8152336004820152602481018590526001600160a01b03871690639dc29fac90604401600060405180830381600087803b158015620015e157600080fd5b505af1158015620015f6573d6000803e3d6000fd5b505050508391506200197a565b60008690506040518060a00160405280468152602001886001600160a01b03168152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001667573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200168d919062002a1c565b60ff168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620016d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620016fe919081019062002a3c565b8152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801562001742573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200176c919081019062002a3c565b905291506200178b6a3a30b4b5b7afba37b5b2b760a91b600162000947565b6001600160a01b0316876001600160a01b0316036200180f57604051632770a7eb60e21b8152336004820152602481018690526001600160a01b03881690639dc29fac90604401600060405180830381600087803b158015620017ed57600080fd5b505af115801562001802573d6000803e3d6000fd5b5050505084925062001978565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801562001857573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200187d9190620025a2565b6040516323b872dd60e01b8152336004820152306024820152604481018890529091506001600160a01b038316906323b872dd906064016020604051808303816000875af1158015620018d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018fa919062002abc565b506040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa15801562001942573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019689190620025a2565b620019749190620028d1565b9350505b505b6040516332c0f48f60e21b906200199c9083908a908990879060240162002adc565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529791965090945050505050565b600054610100900460ff1662001a055760405162461bcd60e51b8152600401620004809062002b79565b620007e462001e42565b600054610100900460ff1662001a395760405162461bcd60e51b8152600401620004809062002b79565b620007e462001e6c565b6001600160a01b03811662001a6b57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600062001ae4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031662001ea19092919063ffffffff16565b8051909150156200115a578080602001905181019062001b05919062002abc565b6200115a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000480565b60008062001bc360008460405160200162001b82919062002bc4565b604051602081830303815290604052805190602001206040518060200162001baa9062002148565b601f1982820381018352601f9091011660405262001eb2565b905073b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d6378adc0d68262001bf36065546001600160a01b031690565b609754636c0db62b60e01b906001600160a01b031662001c1a60408a0160208b01620021a5565b893562001c2e60608c0160408d0162002c5c565b62001c3d60608d018d620025bc565b62001c4c60808f018f620025bc565b60405160200162001c6598979695949392919062002c7c565b60408051601f198184030181529082905262001c85929160200162002cdf565b6040516020818303038152906040526040518463ffffffff1660e01b815260040162001cb49392919062002d12565b602060405180830381865af415801562001cd2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001cf89190620029e6565b6001600160a01b038116600090815260c960209081526040808320805460ff1916600117905560ca9091529020909250839062001d36828262002e60565b50508235600090815260cb6020908152604080832085939092909162001d6291908801908801620021a5565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b031683602001602081019062001dc59190620021a5565b6001600160a01b031684357fb6b427556e8cb0ebf9175da4bc48c64c4f56e44cfaf8c3ab5ebf8e2ea130907962001e006060880188620025bc565b62001e0f60808a018a620025bc565b62001e2160608c0160408d0162002c5c565b60405162001e3495949392919062002ef3565b60405180910390a450919050565b600054610100900460ff166200115f5760405162461bcd60e51b8152600401620004809062002b79565b600054610100900460ff1662001e965760405162461bcd60e51b8152600401620004809062002b79565b620007e4336200121f565b6060620007c4848460008562001fbc565b60008347101562001f065760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640162000480565b815160000362001f595760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640162000480565b8282516020840186f590506001600160a01b038116620007c75760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640162000480565b6060824710156200201f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000480565b600080866001600160a01b031685876040516200203d919062002f34565b60006040518083038185875af1925050503d80600081146200207c576040519150601f19603f3d011682016040523d82523d6000602084013e62002081565b606091505b50915091506200209487838387620020a1565b925050505b949350505050565b60608315620021155782516000036200210d576001600160a01b0385163b6200210d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000480565b508162002099565b6200209983838151156200212c5781518083602001fd5b8060405162461bcd60e51b815260040162000480919062002f52565b6119788062002f6883390190565b6000602082840312156200216957600080fd5b81356001600160e01b031981168114620007c757600080fd5b6001600160a01b0381168114620007b257600080fd5b8035620012cb8162002182565b600060208284031215620021b857600080fd5b8135620007c78162002182565b600060208284031215620021d857600080fd5b813567ffffffffffffffff811115620021f057600080fd5b82016101808185031215620007c757600080fd5b600080604083850312156200221857600080fd5b8235915060208301356200222c8162002182565b809150509250929050565b8015158114620007b257600080fd5b6000806000606084860312156200225c57600080fd5b83359250602084013591506040840135620022778162002237565b809150509250925092565b60005b838110156200229f57818101518382015260200162002285565b50506000910152565b60008151808452620022c281602086016020860162002282565b601f01601f19169290920160200192915050565b8581526001600160a01b038516602082015260ff8416604082015260a0606082018190526000906200230b90830185620022a8565b82810360808401526200231f8185620022a8565b98975050505050505050565b600080604083850312156200233f57600080fd5b8235915060208301356200222c8162002237565b600080600080608085870312156200236a57600080fd5b843567ffffffffffffffff8111156200238257600080fd5b850160a081880312156200239557600080fd5b93506020850135620023a78162002182565b92506040850135620023b98162002182565b9396929550929360600135925050565b600060208284031215620023dc57600080fd5b813567ffffffffffffffff811115620023f457600080fd5b82016101008185031215620007c757600080fd5b6000808335601e198436030181126200242057600080fd5b830160208101925035905067ffffffffffffffff8111156200244157600080fd5b8036038213156200245157600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081528135602082015260006200249c6020840162002198565b6001600160a01b0381166040840152506040830135606083015260608301356080830152620024ce6080840162002198565b6001600160a01b03811660a084015250620024ec60a0840162002198565b6001600160a01b03811660c0840152506200250a60c0840162002198565b6001600160a01b03811660e08401525061010060e084013581840152610120818501358185015261014091508085013582850152506200254d8185018562002408565b915061018061016081818701526200256b6101a08701858562002458565b93506200257b8188018862002408565b878603601f190184890152935090506200259784848362002458565b979650505050505050565b600060208284031215620025b557600080fd5b5051919050565b6000808335601e19843603018112620025d457600080fd5b83018035915067ffffffffffffffff821115620025f057600080fd5b6020019150368190038213156200245157600080fd5b600080858511156200261757600080fd5b838611156200262557600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff811182821017156200266e576200266e62002632565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620026a057620026a062002632565b604052919050565b60ff81168114620007b257600080fd5b600067ffffffffffffffff821115620026d557620026d562002632565b50601f01601f191660200190565b600082601f830112620026f557600080fd5b81356200270c6200270682620026b8565b62002674565b8181528460208386010111156200272257600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156200275657600080fd5b843567ffffffffffffffff808211156200276f57600080fd5b9086019060a082890312156200278457600080fd5b6200278e62002648565b823581526020830135620027a28162002182565b60208201526040830135620027b781620026a8565b6040820152606083013582811115620027cf57600080fd5b620027dd8a828601620026e3565b606083015250608083013582811115620027f657600080fd5b620028048a828601620026e3565b60808301525095506200281d9150506020860162002198565b9250620023b96040860162002198565b600181811c908216806200284257607f821691505b6020821081036200286357634e487b7160e01b600052602260045260246000fd5b50919050565b6000606082840312156200287c57600080fd5b6040516060810181811067ffffffffffffffff82111715620028a257620028a262002632565b604052825181526020830151620028b98162002182565b60208201526040928301519281019290925250919050565b818103818111156200095957634e487b7160e01b600052601160045260246000fd5b6020815281516020820152600060208301516200291b60408401826001600160a01b03169052565b50604083015160608301526060830151608083015260808301516200294b60a08401826001600160a01b03169052565b5060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610180610160808501829052620029be6101a0860184620022a8565b90860151858203601f190183870152909250620029dc8382620022a8565b9695505050505050565b600060208284031215620029f957600080fd5b8151620007c78162002182565b634e487b7160e01b600052600160045260246000fd5b60006020828403121562002a2f57600080fd5b8151620007c781620026a8565b60006020828403121562002a4f57600080fd5b815167ffffffffffffffff81111562002a6757600080fd5b8201601f8101841362002a7957600080fd5b805162002a8a6200270682620026b8565b81815285602083850101111562002aa057600080fd5b62002ab382602083016020860162002282565b95945050505050565b60006020828403121562002acf57600080fd5b8151620007c78162002237565b60808152845160808201526000602086015160018060a01b0380821660a085015260ff60408901511660c08501526060880151915060a060e085015262002b28610120850183620022a8565b91506080880151607f198584030161010086015262002b488382620022a8565b9188166020860152506001600160a01b0386166040850152915062002b6a9050565b82606083015295945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208152813560208201526000602083013562002be18162002182565b6001600160a01b031660408381019190915283013562002c0181620026a8565b60ff811660608401525062002c1a606084018462002408565b60a0608085015262002c3160c08501828462002458565b91505062002c43608085018562002408565b848303601f190160a0860152620029dc83828462002458565b60006020828403121562002c6f57600080fd5b8135620007c781620026a8565b6001600160a01b038981168252881660208201526040810187905260ff8616606082015260c06080820181905260009062002cbb908301868862002458565b82810360a084015262002cd081858762002458565b9b9a5050505050505050505050565b6001600160e01b031983168152815160009062002d0481600485016020870162002282565b919091016004019392505050565b6001600160a01b0384811682528316602082015260606040820181905260009062002ab390830184620022a8565b601f8211156200115a57600081815260208120601f850160051c8101602086101562002d695750805b601f850160051c820191505b8181101562002d8a5782815560010162002d75565b505050505050565b67ffffffffffffffff83111562002dad5762002dad62002632565b62002dc58362002dbe83546200282d565b8362002d40565b6000601f84116001811462002dfc576000851562002de35750838201355b600019600387901b1c1916600186901b17835562002e59565b600083815260209020601f19861690835b8281101562002e2f578685013582556020948501946001909201910162002e0d565b508682101562002e4d5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8135815560018101602083013562002e788162002182565b8154604085013562002e8a81620026a8565b60ff60a01b60a09190911b166001600160a01b03929092166001600160a81b0319919091161717905562002ec26060830183620025bc565b62002ed281836002860162002d92565b505062002ee36080830183620025bc565b62000c0981836003860162002d92565b60608152600062002f0960608301878962002458565b828103602084015262002f1e81868862002458565b91505060ff831660408301529695505050505050565b6000825162002f4881846020870162002282565b9190910192915050565b602081526000620009566020830184620022a856fe608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61188b806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80636c6563f6116100c35780639dc29fac1161007c5780639dc29fac146102fa578063a457c2d71461030d578063a86f9d9e14610320578063a9059cbb14610333578063dd62ed3e14610346578063f2fde38b1461035957600080fd5b80636c6563f61461028a57806370a082311461029d578063715018a6146102c65780637cf8ed0d146102ce5780638da5cb5b146102e157806395d89b41146102f257600080fd5b8063313ce56711610115578063313ce5671461020e57806339509351146102235780633ab76e9f1461023657806340c10f191461025b57806349d126051461026e5780636c0db62b1461027757600080fd5b80630652b57a1461015d57806306fdde0314610172578063095ea7b31461019057806318160ddd146101b357806323b872dd146101c557806326afaadd146101d8575b600080fd5b61017061016b366004611349565b61036c565b005b61017a6103e5565b604051610187919061138a565b60405180910390f35b6101a361019e3660046113bd565b61041f565b6040519015158152602001610187565b60cb545b604051908152602001610187565b6101a36101d33660046113e9565b610439565b6101ef60fb5460fc546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610187565b60fd5460405160ff9091168152602001610187565b6101a36102313660046113bd565b610479565b6097546001600160a01b03165b6040516001600160a01b039091168152602001610187565b6101706102693660046113bd565b61049b565b6101b760fc5481565b6101706102853660046114cd565b610558565b61024361029836600461158c565b6106fe565b6101b76102ab366004611349565b6001600160a01b0316600090815260c9602052604090205490565b61017061070b565b60fb54610243906001600160a01b031681565b6065546001600160a01b0316610243565b61017a61071f565b6101706103083660046113bd565b6107b1565b6101a361031b3660046113bd565b61083b565b61024361032e3660046115c1565b6108c1565b6101a36103413660046113bd565b6108ce565b6101b76103543660046115ed565b610903565b610170610367366004611349565b61092e565b6103746109a7565b6001600160a01b03811661039b57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040517f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b90600090a250565b60606103ef610a01565b6103fa60fc54610a10565b60405160200161040b929190611626565b604051602081830303815290604052905090565b60003361042d818585610aa3565b60019150505b92915050565b6000306001600160a01b0384160361046457604051636cfe544760e01b815260040160405180910390fd5b61046f848484610bbf565b90505b9392505050565b60003361042d81858561048c8383610903565b6104969190611664565b610aa3565b6a195c98cc8c17dd985d5b1d60aa1b647461696b6f60d81b6104be8260016108c1565b6001600160a01b0316336001600160a01b0316141580156104fb57506104e58160016108c1565b6001600160a01b0316336001600160a01b031614155b1561051957604051630d85cccf60e11b815260040160405180910390fd5b6105238484610bd8565b6040518381526001600160a01b038516906000906000805160206118368339815191529060200160405180910390a350505050565b600054610100900460ff16158080156105785750600054600160ff909116105b806105925750303b158015610592575060005460ff166001145b6105fa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561061d576000805461ff0019166101001790555b6001600160a01b0386161580610631575084155b8061063b57504685145b8061064557508251155b8061064f57508151155b1561066d57604051635d061ab760e11b815260040160405180910390fd5b61067687610c88565b6106808284610ca1565b60fb80546001600160a01b0319166001600160a01b03881617905560fc85905560fd805460ff191660ff861617905580156106f5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600061046f848484610cd2565b6107136109a7565b61071d6000610d86565b565b606060cd805461072e90611685565b80601f016020809104026020016040519081016040528092919081815260200182805461075a90611685565b80156107a75780601f1061077c576101008083540402835291602001916107a7565b820191906000526020600020905b81548152906001019060200180831161078a57829003601f168201915b5050505050905090565b6a195c98cc8c17dd985d5b1d60aa1b6107cb8160016108c1565b6001600160a01b0316336001600160a01b0316146107fc57604051630d85cccf60e11b815260040160405180910390fd5b6108068383610dd8565b6040518281526000906001600160a01b03851690600080516020611836833981519152906020015b60405180910390a3505050565b600033816108498286610903565b9050838110156108a95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105f1565b6108b68286868403610aa3565b506001949350505050565b6000610472468484610cd2565b6000306001600160a01b038416036108f957604051636cfe544760e01b815260040160405180910390fd5b6104728383610ef7565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b6109366109a7565b6001600160a01b03811661099b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105f1565b6109a481610d86565b50565b6065546001600160a01b0316331461071d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f1565b606060cc805461072e90611685565b60606000610a1d83610f05565b600101905060008167ffffffffffffffff811115610a3d57610a3d61142a565b6040519080825280601f01601f191660200182016040528015610a67576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a7157509392505050565b6001600160a01b038316610b055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105f1565b6001600160a01b038216610b665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105f1565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910161082e565b600033610bcd858285610fdd565b6108b6858585611057565b6001600160a01b038216610c2e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105f1565b8060cb6000828254610c409190611664565b90915550506001600160a01b038216600081815260c96020908152604080832080548601905551848152600080516020611836833981519152910160405180910390a35b5050565b610c906111f0565b610c9861121f565b6109a48161124e565b600054610100900460ff16610cc85760405162461bcd60e51b81526004016105f1906116bf565b610c848282611297565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d47919061170a565b905081158015610d5e57506001600160a01b038116155b1561047257604051631467050360e21b815260048101859052602481018490526044016105f1565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610e385760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105f1565b6001600160a01b038216600090815260c9602052604090205481811015610eac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105f1565b6001600160a01b038316600081815260c960209081526040808320868603905560cb8054879003905551858152919291600080516020611836833981519152910161082e565b505050565b60003361042d818585611057565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610f445772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610f70576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610f8e57662386f26fc10000830492506010015b6305f5e1008310610fa6576305f5e100830492506008015b6127108310610fba57612710830492506004015b60648310610fcc576064830492506002015b600a83106104335760010192915050565b6000610fe98484610903565b9050600019811461105157818110156110445760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105f1565b6110518484848403610aa3565b50505050565b6001600160a01b0383166110bb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105f1565b6001600160a01b03821661111d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105f1565b6001600160a01b038316600090815260c96020526040902054818110156111955760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105f1565b6001600160a01b03808516600081815260c960205260408082208686039055928616808252908390208054860190559151600080516020611836833981519152906111e39086815260200190565b60405180910390a3611051565b600054610100900460ff166112175760405162461bcd60e51b81526004016105f1906116bf565b61071d6112d7565b600054610100900460ff166112465760405162461bcd60e51b81526004016105f1906116bf565b61071d611304565b6001600160a01b03811661127557604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166112be5760405162461bcd60e51b81526004016105f1906116bf565b60cc6112ca8382611775565b5060cd610ef28282611775565b600054610100900460ff166112fe5760405162461bcd60e51b81526004016105f1906116bf565b60018055565b600054610100900460ff1661132b5760405162461bcd60e51b81526004016105f1906116bf565b61071d33610d86565b6001600160a01b03811681146109a457600080fd5b60006020828403121561135b57600080fd5b813561047281611334565b60005b83811015611381578181015183820152602001611369565b50506000910152565b60208152600082518060208401526113a9816040850160208701611366565b601f01601f19169190910160400192915050565b600080604083850312156113d057600080fd5b82356113db81611334565b946020939093013593505050565b6000806000606084860312156113fe57600080fd5b833561140981611334565b9250602084013561141981611334565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261145157600080fd5b813567ffffffffffffffff8082111561146c5761146c61142a565b604051601f8301601f19908116603f011681019082821181831017156114945761149461142a565b816040528381528660208588010111156114ad57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c087890312156114e657600080fd5b86356114f181611334565b9550602087013561150181611334565b945060408701359350606087013560ff8116811461151e57600080fd5b9250608087013567ffffffffffffffff8082111561153b57600080fd5b6115478a838b01611440565b935060a089013591508082111561155d57600080fd5b5061156a89828a01611440565b9150509295509295509295565b8035801515811461158757600080fd5b919050565b6000806000606084860312156115a157600080fd5b83359250602084013591506115b860408501611577565b90509250925092565b600080604083850312156115d457600080fd5b823591506115e460208401611577565b90509250929050565b6000806040838503121561160057600080fd5b823561160b81611334565b9150602083013561161b81611334565b809150509250929050565b60008351611638818460208801611366565b6241c55b60e71b9083019081528351611658816004840160208801611366565b01600401949350505050565b8082018082111561043357634e487b7160e01b600052601160045260246000fd5b600181811c9082168061169957607f821691505b6020821081036116b957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561171c57600080fd5b815161047281611334565b601f821115610ef257600081815260208120601f850160051c8101602086101561174e5750805b601f850160051c820191505b8181101561176d5782815560010161175a565b505050505050565b815167ffffffffffffffff81111561178f5761178f61142a565b6117a38161179d8454611685565b84611727565b602080601f8311600181146117d857600084156117c05750858301515b600019600386901b1c1916600185901b17855561176d565b600085815260208120601f198616915b82811015611807578886015182559484019460019091019084016117e8565b50858210156118255787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122084c55b31f1ca31a63eb2f494abc3a7a53871a4d74e8f1a0d4a8487fc410374b564736f6c63430008140033a2646970667358221220fb6838adab59caf0c87ea98c1d46d8afdd628bcbc80e276935e7eb4856c7485964736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000002": { + "contractName": "ERC20VaultProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000002" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122013e4be7fbb9448379ca283101ef1037ca99a17f6ad00269fe32f79bcefab6e1864736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000008": { + "contractName": "ProxiedERC721Vault", + "storage": {}, + "code": "0x6080604052600436106200011f5760003560e01c80636c6563f611620000a15780639aa8605c116200006c5780639aa8605c1462000342578063a86f9d9e1462000379578063a9976baf146200039e578063c287e57814620003b5578063f2fde38b14620003e957600080fd5b80636c6563f614620002ce578063715018a614620002f357806373339643146200030b5780638da5cb5b146200032257600080fd5b80632ca069a511620000ee5780632ca069a5146200020457806332a642ca14620002215780633ab76e9f146200023857806359f4a907146200026c57806367090ccf146200028957600080fd5b806301ffc9a714620001245780630652b57a146200016e578063150b7a02146200019557806319ab453c14620001df575b600080fd5b3480156200013157600080fd5b50620001596200014336600462002112565b6001600160e01b031916631953216560e11b1490565b60405190151581526020015b60405180910390f35b3480156200017b57600080fd5b50620001936200018d36600462002161565b6200040e565b005b348015620001a257600080fd5b50620001c5620001b436600462002181565b630a85bd0160e11b95945050505050565b6040516001600160e01b0319909116815260200162000165565b348015620001ec57600080fd5b5062000193620001fe36600462002161565b6200048a565b3480156200021157600080fd5b50620001c5636cdb3d1360e11b81565b620001936200023236600462002228565b620005aa565b3480156200024557600080fd5b506097546001600160a01b03165b6040516001600160a01b03909116815260200162000165565b3480156200027957600080fd5b50620001c56380ac58cd60e01b81565b3480156200029657600080fd5b5062000253620002a836600462002266565b60cb6020908152600092835260408084209091529082529020546001600160a01b031681565b348015620002db57600080fd5b5062000253620002ed366004620022a8565b620009cd565b3480156200030057600080fd5b5062000193620009e6565b620001936200031c366004620022e4565b620009fe565b3480156200032f57600080fd5b506065546001600160a01b031662000253565b3480156200034f57600080fd5b50620003676200036136600462002161565b62000eaa565b60405162000165949392919062002376565b3480156200038657600080fd5b506200025362000398366004620023c1565b62000ffd565b62000193620003af366004620024af565b62001015565b348015620003c257600080fd5b5062000159620003d436600462002161565b60c96020526000908152604090205460ff1681565b348015620003f657600080fd5b50620001936200040836600462002161565b62001336565b62000418620013b2565b6001600160a01b0381166200044057604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040517f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b90600090a250565b600054610100900460ff1615808015620004ab5750600054600160ff909116105b80620004c75750303b158015620004c7575060005460ff166001145b620005305760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000554576000805461ff0019166101001790555b6200055f826200140e565b8015620005a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b620005b46200142d565b6562726964676560d01b620005cb81600162000ffd565b6001600160a01b0316336001600160a01b031614620005fd57604051630d85cccf60e11b815260040160405180910390fd5b60006200061160a084016080850162002161565b6001600160a01b031603620006395760405163016a294f60e41b815260040160405180910390fd5b468260400135146200065e57604051630a15fbb960e01b815260040160405180910390fd5b600080620006716101408501856200254d565b620006819160049082906200259d565b81019062000690919062002704565b935050509150600073b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d632c6a56af86620006c96562726964676560d01b600062000ffd565b86602001516040518463ffffffff1660e01b8152600401620006ee93929190620027c6565b602060405180830381865af41580156200070c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000732919062002920565b6020808501516001600160a01b0316600090815260c9909152604090205490915060ff1615620008245760005b82518110156200081d5760208401516001600160a01b03166340c10f196200078e60a0890160808a0162002161565b858481518110620007a357620007a36200293a565b60200260200101516040518363ffffffff1660e01b8152600401620007dd9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015620007f857600080fd5b505af11580156200080d573d6000803e3d6000fd5b505050508060010190506200075f565b50620008ee565b60005b8251811015620008ec5760208401516001600160a01b03166342842e0e306200085760a08a0160808b0162002161565b8685815181106200086c576200086c6200293a565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b158015620008c757600080fd5b505af1158015620008dc573d6000803e3d6000fd5b5050505080600101905062000827565b505b6200091960e08601356200090960a088016080890162002161565b6001600160a01b03169062001488565b6200092b60a086016080870162002161565b6001600160a01b0316817fe8449897bd3c926a272780c39ba13e77bf7a2c823479a75bfbc13ef631183dfd85602001518560006001600160401b03811115620009785762000978620023e9565b604051908082528060200260200182016040528015620009a2578160200160208202803683370190505b50604051620009b4939291906200298d565b60405180910390a350505050620009ca60018055565b50565b6000620009dc8484846200154f565b90505b9392505050565b620009f0620013b2565b620009fc600062001609565b565b62000a086200142d565b73b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d63c0619cc262000a316080840184620029d1565b62000a406060860186620029d1565b60016040518663ffffffff1660e01b815260040162000a6495949392919062002a50565b60006040518083038186803b15801562000a7d57600080fd5b505af415801562000a92573d6000803e3d6000fd5b5050505073b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d6393522e3e62000ad183600001356b195c98cdcc8c57dd985d5b1d60a21b6000620009cd565b62000ae3604085016020860162002161565b62000af5606086016040870162002161565b60405160e085901b6001600160e01b03191681526001600160a01b0393841660048201529183166024830152909116604482015260640160006040518083038186803b15801562000b4557600080fd5b505af415801562000b5a573d6000803e3d6000fd5b5062000b8f92506380ac58cd60e01b915062000b7f9050606084016040850162002161565b6001600160a01b0316906200165b565b62000bad57604051633ee915f560e11b815260040160405180910390fd5b600062000bbe6080830183620029d1565b80806020026020016040519081016040528093929190818152602001838360200280828437600092018290525093945062000c0492505050606084016040850162002161565b9050600062000c176060850185620029d1565b80806020026020016040519081016040528093929190818152602001838360200280828437600092018290525060408051610180810182528281526020810183905290810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820192909252610140810182905261016081019190915293945062000cb292505050565b8435606082015262000cc53386620016d8565b610140820152336080820152606081015162000cf3906b195c98cdcc8c57dd985d5b1d60a21b6000620009cd565b6001600160a01b031660a08083019190915285013561012082015262000d1e60c08601353462002a90565b60e08083019190915260c08601356101008084019190915262000d479190870190870162002161565b6001600160a01b031660c082015262000d656101008601866200254d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101608601949094525062000db891506562726964676560d01b90508262000ffd565b6001600160a01b0316634c1888bc34846040518363ffffffff1660e01b815260040162000de6919062002ab2565b60206040518083038185885af115801562000e05573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062000e2c919062002920565b905062000e40604087016020880162002161565b6001600160a01b031682608001516001600160a01b0316827f5e54276405062454e6226625b28a6fea0a838d6b054e38955667234afb3345a3856060015188888b60405162000e93949392919062002b9b565b60405180910390a45050505050620009ca60018055565b60ca6020526000908152604090208054600182015460028301805492936001600160a01b039092169262000ede9062002bdb565b80601f016020809104026020016040519081016040528092919081815260200182805462000f0c9062002bdb565b801562000f5d5780601f1062000f315761010080835404028352916020019162000f5d565b820191906000526020600020905b81548152906001019060200180831162000f3f57829003601f168201915b50505050509080600301805462000f749062002bdb565b80601f016020809104026020016040519081016040528092919081815260200182805462000fa29062002bdb565b801562000ff35780601f1062000fc75761010080835404028352916020019162000ff3565b820191906000526020600020905b81548152906001019060200180831162000fd557829003601f168201915b5050505050905084565b60006200100c4684846200154f565b90505b92915050565b6200101f6200142d565b6562726964676560d01b6200103681600162000ffd565b6001600160a01b0316336001600160a01b0316146200106857604051630d85cccf60e11b815260040160405180910390fd5b60405163881107d960e01b81526b195c98cdcc8c57dd985d5b1d60a21b600482015230602482015260009073b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d9063881107d990604401606060405180830381865af4158015620010d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010f6919062002c17565b9050600046873503620011d15762001115604088016020890162002161565b905060005b8451811015620011ca57816001600160a01b03166323b872dd30888885815181106200114a576200114a6200293a565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b158015620011a557600080fd5b505af1158015620011ba573d6000803e3d6000fd5b505050508060010190506200111a565b506200128c565b620011dc8762001c07565b905060005b84518110156200128a57816001600160a01b03166340c10f19878784815181106200121057620012106200293a565b60200260200101516040518363ffffffff1660e01b81526004016200124a9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b1580156200126557600080fd5b505af11580156200127a573d6000803e3d6000fd5b50505050806001019050620011e1565b505b620012a16001600160a01b0386163462001488565b815160408301516001600160a01b0380881692908916917f0f60c37489e435ed8490c30b01c1fa57e62510e88b351b75796ad3d95babe6b1908589600060405190808252806020026020018201604052801562001308578160200160208202803683370190505b506040516200131b949392919062002b9b565b60405180910390a45050506200133060018055565b50505050565b62001340620013b2565b6001600160a01b038116620013a75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000527565b620009ca8162001609565b6065546001600160a01b03163314620009fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000527565b6200141862001c70565b6200142262001ca4565b620009ca8162001cd8565b600260015403620014815760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640162000527565b6002600155565b8015806200149d57506001600160a01b038216155b15620014a7575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114620014f6576040519150601f19603f3d011682016040523d82523d6000602084013e620014fb565b606091505b5050905080620015445760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015260640162000527565b505050565b60018055565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa158015620015a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015c7919062002c7e565b905081158015620015df57506001600160a01b038116155b15620009df57604051631467050360e21b8152600481018590526024810184905260440162000527565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516301ffc9a760e01b81526001600160e01b0319821660048201526000906001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015620016cb575060408051601f3d908101601f19168201909252620016c89181019062002c9e565b60015b156200100f579392505050565b6040805160808101825260008082526020820152606091810182905280820182905260c9600062001710606086016040870162002161565b6001600160a01b0316815260208101919091526040016000205460ff1615620019985760ca600062001749606086016040870162002161565b6001600160a01b0390811682526020808301939093526040918201600020825160808101845281548152600182015490921693820193909352600283018054919392840191620017999062002bdb565b80601f0160208091040260200160405190810160405280929190818152602001828054620017c79062002bdb565b8015620018185780601f10620017ec5761010080835404028352916020019162001818565b820191906000526020600020905b815481529060010190602001808311620017fa57829003601f168201915b50505050508152602001600382018054620018339062002bdb565b80601f0160208091040260200160405190810160405280929190818152602001828054620018619062002bdb565b8015620018b25780601f106200188657610100808354040283529160200191620018b2565b820191906000526020600020905b8154815290600101906020018083116200189457829003601f168201915b505050505081525050905060005b620018cf6060850185620029d1565b90508110156200199157620018eb606085016040860162002161565b6001600160a01b0316639dc29fac86620019096060880188620029d1565b858181106200191c576200191c6200293a565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526020029190910135602483015250604401600060405180830381600087803b1580156200196c57600080fd5b505af115801562001981573d6000803e3d6000fd5b50505050806001019050620018c0565b5062001b8c565b6000620019ac606085016040860162002161565b90506040518060800160405280468152602001856040016020810190620019d4919062002161565b6001600160a01b03168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562001a21573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001a4b919081019062002cbe565b8152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801562001a8f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001ab9919081019062002cbe565b9052915060005b62001acf6060860186620029d1565b905081101562001b89576001600160a01b0382166323b872dd873062001af960608a018a620029d1565b8681811062001b0c5762001b0c6200293a565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b15801562001b6457600080fd5b505af115801562001b79573d6000803e3d6000fd5b5050505080600101905062001ac0565b50505b63a9976baf60e01b818562001ba8604087016020880162002161565b62001bb76060880188620029d1565b60405160240162001bcd95949392919062002d8b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152949350505050565b8035600090815260cb6020908152604080832091839162001c2e9190860190860162002161565b6001600160a01b0390811682526020820192909252604001600020541690508062001c6b5762001c6862001c628362002dd8565b62001d22565b90505b919050565b600054610100900460ff1662001c9a5760405162461bcd60e51b8152600401620005279062002de6565b620009fc62001f9b565b600054610100900460ff1662001cce5760405162461bcd60e51b8152600401620005279062002de6565b620009fc62001fc5565b6001600160a01b03811662001d0057604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b60008062001d7f60008460405160200162001d3e919062002e31565b604051602081830303815290604052805190602001206040518060200162001d669062002104565b601f1982820381018352601f9091011660405262001ffa565b905073b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d6378adc0d68262001daf6065546001600160a01b031690565b60975460208089015189516040808c015160608d0151915163689ccd8d60e11b9662001deb966001600160a01b03909116959493910162002e46565b60408051601f198184030181529082905262001e0b929160200162002e8f565b6040516020818303038152906040526040518463ffffffff1660e01b815260040162001e3a9392919062002ec2565b602060405180830381865af415801562001e58573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e7e919062002c7e565b6001600160a01b03818116600090815260c9602090815260408083208054600160ff19909116811790915560ca835292819020885181559188015192820180546001600160a01b03191693909416929092179092558501519193508491600282019062001eec908262002f42565b506060820151600382019062001f03908262002f42565b50508351600090815260cb6020908152604080832082880180516001600160a01b039081168652919093529281902080546001600160a01b031916878516908117909155915187518289015160608a015193519496509190941693927f2da3c4d305298f6df3653c23d98b4c055f72f7e6f981b2c477ccbec92b1ee5799262001f8d92916200300e565b60405180910390a450919050565b600054610100900460ff16620015495760405162461bcd60e51b8152600401620005279062002de6565b600054610100900460ff1662001fef5760405162461bcd60e51b8152600401620005279062002de6565b620009fc3362001609565b6000834710156200204e5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640162000527565b8151600003620020a15760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640162000527565b8282516020840186f590506001600160a01b038116620009df5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640162000527565b611f55806200303883390190565b6000602082840312156200212557600080fd5b81356001600160e01b0319811681146200100c57600080fd5b6001600160a01b0381168114620009ca57600080fd5b803562001c6b816200213e565b6000602082840312156200217457600080fd5b81356200100c816200213e565b6000806000806000608086880312156200219a57600080fd5b8535620021a7816200213e565b94506020860135620021b9816200213e565b93506040860135925060608601356001600160401b0380821115620021dd57600080fd5b818801915088601f830112620021f257600080fd5b8135818111156200220257600080fd5b8960208285010111156200221557600080fd5b9699959850939650602001949392505050565b6000602082840312156200223b57600080fd5b81356001600160401b038111156200225257600080fd5b820161018081850312156200100c57600080fd5b600080604083850312156200227a57600080fd5b8235915060208301356200228e816200213e565b809150509250929050565b8015158114620009ca57600080fd5b600080600060608486031215620022be57600080fd5b83359250602084013591506040840135620022d98162002299565b809150509250925092565b600060208284031215620022f757600080fd5b81356001600160401b038111156200230e57600080fd5b820161012081850312156200100c57600080fd5b60005b838110156200233f57818101518382015260200162002325565b50506000910152565b600081518084526200236281602086016020860162002322565b601f01601f19169290920160200192915050565b8481526001600160a01b0384166020820152608060408201819052600090620023a29083018562002348565b8281036060840152620023b6818562002348565b979650505050505050565b60008060408385031215620023d557600080fd5b8235915060208301356200228e8162002299565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200242a576200242a620023e9565b604052919050565b600082601f8301126200244457600080fd5b813560206001600160401b03821115620024625762002462620023e9565b8160051b62002473828201620023ff565b92835284810182019282810190878511156200248e57600080fd5b83870192505b84831015620023b65782358252918301919083019062002494565b60008060008060808587031215620024c657600080fd5b84356001600160401b0380821115620024de57600080fd5b9086019060808289031215620024f357600080fd5b90945060208601359062002507826200213e565b9093506040860135906200251b826200213e565b909250606086013590808211156200253257600080fd5b50620025418782880162002432565b91505092959194509250565b6000808335601e198436030181126200256557600080fd5b8301803591506001600160401b038211156200258057600080fd5b6020019150368190038213156200259657600080fd5b9250929050565b60008085851115620025ae57600080fd5b83861115620025bc57600080fd5b5050820193919092039150565b60006001600160401b03821115620025e557620025e5620023e9565b50601f01601f191660200190565b600082601f8301126200260557600080fd5b81356200261c6200261682620025c9565b620023ff565b8181528460208386010111156200263257600080fd5b816020850160208301376000918101602001919091529392505050565b6000608082840312156200266257600080fd5b604051608081016001600160401b038282108183111715620026885762002688620023e9565b816040528293508435835260208501359150620026a5826200213e565b8160208401526040850135915080821115620026c057600080fd5b620026ce86838701620025f3565b60408401526060850135915080821115620026e857600080fd5b50620026f785828601620025f3565b6060830152505092915050565b600080600080608085870312156200271b57600080fd5b84356001600160401b03808211156200273357600080fd5b62002741888389016200264f565b95506020870135915062002507826200213e565b6000808335601e198436030181126200276d57600080fd5b83016020810192503590506001600160401b038111156200278d57600080fd5b8036038213156200259657600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60608152833560608201526000620027e16020860162002154565b6001600160a01b038116608084015250604085013560a0830152606085013560c0830152620028136080860162002154565b6001600160a01b031660e08301526200282f60a0860162002154565b61010062002847818501836001600160a01b03169052565b6200285560c0880162002154565b91506101206200286f818601846001600160a01b03169052565b610140925060e088013583860152610160828901358187015261018092508189013583870152620028a3848a018a62002755565b94509150826101a0870152620028bf6101e0870185846200279d565b9350620028cf818a018a62002755565b9350915050605f19858403016101c0860152620028ee8383836200279d565b93505050506200290960208301856001600160a01b03169052565b6001600160a01b0383166040830152949350505050565b6000602082840312156200293357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b83811015620029825781518752958201959082019060010162002964565b509495945050505050565b6001600160a01b0384168152606060208201819052600090620029b39083018562002950565b8281036040840152620029c7818562002950565b9695505050505050565b6000808335601e19843603018112620029e957600080fd5b8301803591506001600160401b0382111562002a0457600080fd5b6020019150600581901b36038213156200259657600080fd5b81835260006001600160fb1b0383111562002a3757600080fd5b8260051b80836020870137939093016020019392505050565b60608152600062002a6660608301878962002a1d565b828103602084015262002a7b81868862002a1d565b91505082151560408301529695505050505050565b818103818111156200100f57634e487b7160e01b600052601160045260246000fd5b60208152815160208201526000602083015162002ada60408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015162002b0a60a08401826001600160a01b03169052565b5060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e083015161010083810191909152830151610120808401919091528301516101408084019190915283015161018061016080850182905262002b7d6101a086018462002348565b90860151858203601f190183870152909250620029c7838262002348565b8481526001600160a01b038416602082015260806040820181905260009062002bc79083018562002950565b8281036060840152620023b6818562002950565b600181811c9082168062002bf057607f821691505b60208210810362002c1157634e487b7160e01b600052602260045260246000fd5b50919050565b60006060828403121562002c2a57600080fd5b604051606081018181106001600160401b038211171562002c4f5762002c4f620023e9565b60405282518152602083015162002c66816200213e565b60208201526040928301519281019290925250919050565b60006020828403121562002c9157600080fd5b81516200100c816200213e565b60006020828403121562002cb157600080fd5b81516200100c8162002299565b60006020828403121562002cd157600080fd5b81516001600160401b0381111562002ce857600080fd5b8201601f8101841362002cfa57600080fd5b805162002d0b6200261682620025c9565b81815285602083850101111562002d2157600080fd5b62002d3482602083016020860162002322565b95945050505050565b8051825260018060a01b036020820151166020830152600060408201516080604085015262002d70608085018262002348565b90506060830151848203606086015262002d34828262002348565b60808152600062002da0608083018862002d3d565b6001600160a01b03878116602085015286166040840152828103606084015262002dcc81858762002a1d565b98975050505050505050565b600062001c6836836200264f565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6020815260006200100c602083018462002d3d565b6001600160a01b038681168252851660208201526040810184905260a06060820181905260009062002e7b9083018562002348565b828103608084015262002dcc818562002348565b6001600160e01b031983168152815160009062002eb481600485016020870162002322565b919091016004019392505050565b6001600160a01b0384811682528316602082015260606040820181905260009062002d349083018462002348565b601f8211156200154457600081815260208120601f850160051c8101602086101562002f195750805b601f850160051c820191505b8181101562002f3a5782815560010162002f25565b505050505050565b81516001600160401b0381111562002f5e5762002f5e620023e9565b62002f768162002f6f845462002bdb565b8462002ef0565b602080601f83116001811462002fae576000841562002f955750858301515b600019600386901b1c1916600185901b17855562002f3a565b600085815260208120601f198616915b8281101562002fdf5788860151825594840194600190910190840162002fbe565b508582101562002ffe5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408152600062003023604083018562002348565b828103602084015262002d3481856200234856fe608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611e68806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de578063a22cb46511610097578063c87b56dd11610071578063c87b56dd14610377578063d1399b1a14610398578063e985e9c5146103ab578063f2fde38b146103e857600080fd5b8063a22cb4651461033e578063a86f9d9e14610351578063b88d4fde1461036457600080fd5b806370a08231146102e3578063715018a6146102f65780637cf8ed0d146102fe5780638da5cb5b1461031257806395d89b41146103235780639dc29fac1461032b57600080fd5b80633ab76e9f1161014b57806349d126051161012557806349d126051461026d5780636352211e1461028557806367e828bf146102985780636c6563f6146102d057600080fd5b80633ab76e9f1461023657806340c10f191461024757806342842e0e1461025a57600080fd5b806301ffc9a7146101935780630652b57a146101bb57806306fdde03146101d0578063081812fc146101e5578063095ea7b31461021057806323b872dd14610223575b600080fd5b6101a66101a136600461171c565b6103fb565b60405190151581526020015b60405180910390f35b6101ce6101c936600461174e565b61044d565b005b6101d86104c6565b6040516101b291906117bb565b6101f86101f33660046117ce565b610501565b6040516001600160a01b0390911681526020016101b2565b6101ce61021e3660046117e7565b610528565b6101ce610231366004611813565b610642565b6097546001600160a01b03166101f8565b6101ce6102553660046117e7565b610676565b6101ce610268366004611813565b6106f7565b61027761012e5481565b6040519081526020016101b2565b6101f86102933660046117ce565b610712565b6102b161012d5461012e546001600160a01b0390911691565b604080516001600160a01b0390931683526020830191909152016101b2565b6101f86102de366004611869565b610772565b6102776102f136600461174e565b610789565b6101ce61080f565b61012d546101f8906001600160a01b031681565b6065546001600160a01b03166101f8565b6101d8610823565b6101ce6103393660046117e7565b6108b5565b6101ce61034c36600461189e565b61096f565b6101f861035f3660046118d3565b61097e565b6101ce610372366004611982565b61098b565b6101d86103853660046117ce565b5060408051602081019091526000815290565b6101ce6103a6366004611a22565b6109c3565b6101a66103b9366004611ab5565b6001600160a01b0391821660009081526101006020908152604080832093909416825291909152205460ff1690565b6101ce6103f636600461174e565b610b56565b60006001600160e01b031982166380ac58cd60e01b148061042c57506001600160e01b03198216635b5e139f60e01b145b8061044757506301ffc9a760e01b6001600160e01b03198316145b92915050565b610455610bcf565b6001600160a01b03811661047c57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040517f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b90600090a250565b60606104d0610c29565b6104dc61012e54610c38565b6040516020016104ed929190611aee565b604051602081830303815290604052905090565b600061050c82610ccb565b50600090815260ff60205260409020546001600160a01b031690565b600061053382610712565b9050806001600160a01b0316836001600160a01b0316036105a55760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105c157506105c181336103b9565b6106335760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161059c565b61063d8383610d2a565b505050565b306001600160a01b0383160361066b57604051636cfe544760e01b815260040160405180910390fd5b61063d838383610d98565b6b195c98cdcc8c57dd985d5b1d60a21b61069181600161097e565b6001600160a01b0316336001600160a01b0316146106c257604051630d85cccf60e11b815260040160405180910390fd5b6106cc8383610dc9565b60405182906001600160a01b03851690600090600080516020611e13833981519152908290a4505050565b61063d8383836040518060200160405280600081525061098b565b600081815260fd60205260408120546001600160a01b0316806104475760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161059c565b600061077f848484610f42565b90505b9392505050565b60006001600160a01b0382166107f35760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161059c565b506001600160a01b0316600090815260fe602052604090205490565b610817610bcf565b6108216000610ff6565b565b606060fc805461083290611b2c565b80601f016020809104026020016040519081016040528092919081815260200182805461085e90611b2c565b80156108ab5780601f10610880576101008083540402835291602001916108ab565b820191906000526020600020905b81548152906001019060200180831161088e57829003601f168201915b5050505050905090565b6b195c98cdcc8c57dd985d5b1d60a21b6108d081600161097e565b6001600160a01b0316336001600160a01b03161461090157604051630d85cccf60e11b815260040160405180910390fd5b826001600160a01b031661091483610712565b6001600160a01b03161461093b576040516302dca79760e41b815260040160405180910390fd5b61094482611048565b60405182906000906001600160a01b03861690600080516020611e13833981519152908390a4505050565b61097a3383836110cb565b5050565b6000610782468484610f42565b610995338361119a565b6109b15760405162461bcd60e51b815260040161059c90611b66565b6109bd8484848461121a565b50505050565b600054610100900460ff16158080156109e35750600054600160ff909116105b806109fd5750303b1580156109fd575060005460ff166001145b610a605760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161059c565b6000805460ff191660011790558015610a83576000805461ff0019166101001790555b6001600160a01b0385161580610a97575083155b80610aa157504684145b80610aab57508251155b80610ab557508151155b15610ad357604051635d061ab760e11b815260040160405180910390fd5b610adc8661124d565b610ae68284611266565b61012d80546001600160a01b0319166001600160a01b03871617905561012e8490558015610b4e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b610b5e610bcf565b6001600160a01b038116610bc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059c565b610bcc81610ff6565b50565b6065546001600160a01b031633146108215760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161059c565b606060fb805461083290611b2c565b60606000610c4583611297565b600101905060008167ffffffffffffffff811115610c6557610c656118f6565b6040519080825280601f01601f191660200182016040528015610c8f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610c9957509392505050565b600081815260fd60205260409020546001600160a01b0316610bcc5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161059c565b600081815260ff6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610d5f82610712565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b610da2338261119a565b610dbe5760405162461bcd60e51b815260040161059c90611b66565b61063d83838361136f565b6001600160a01b038216610e1f5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161059c565b600081815260fd60205260409020546001600160a01b031615610e845760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161059c565b600081815260fd60205260409020546001600160a01b031615610ee95760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161059c565b6001600160a01b038216600081815260fe602090815260408083208054600101905584835260fd90915280822080546001600160a01b031916841790555183929190600080516020611e13833981519152908290a45050565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb79190611bb3565b905081158015610fce57506001600160a01b038116155b1561078257604051631467050360e21b8152600481018590526024810184905260440161059c565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600061105382610712565b905061105e82610712565b600083815260ff6020908152604080832080546001600160a01b03199081169091556001600160a01b03851680855260fe8452828520805460001901905587855260fd90935281842080549091169055519293508492600080516020611e13833981519152908390a45050565b816001600160a01b0316836001600160a01b03160361112c5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161059c565b6001600160a01b0383811660008181526101006020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000806111a683610712565b9050806001600160a01b0316846001600160a01b031614806111ee57506001600160a01b038082166000908152610100602090815260408083209388168352929052205460ff165b806112125750836001600160a01b031661120784610501565b6001600160a01b0316145b949350505050565b61122584848461136f565b611231848484846114c1565b6109bd5760405162461bcd60e51b815260040161059c90611bd0565b6112556115c2565b61125d6115f1565b610bcc81611620565b600054610100900460ff1661128d5760405162461bcd60e51b815260040161059c90611c22565b61097a8282611669565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106112d65772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611302576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061132057662386f26fc10000830492506010015b6305f5e1008310611338576305f5e100830492506008015b612710831061134c57612710830492506004015b6064831061135e576064830492506002015b600a83106104475760010192915050565b826001600160a01b031661138282610712565b6001600160a01b0316146113a85760405162461bcd60e51b815260040161059c90611c6d565b6001600160a01b03821661140a5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161059c565b826001600160a01b031661141d82610712565b6001600160a01b0316146114435760405162461bcd60e51b815260040161059c90611c6d565b600081815260ff6020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260fe855283862080546000190190559087168086528386208054600101905586865260fd9094528285208054909216841790915590518493600080516020611e1383398151915291a4505050565b60006001600160a01b0384163b156115b757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611505903390899088908890600401611cb2565b6020604051808303816000875af1925050508015611540575060408051601f3d908101601f1916820190925261153d91810190611cef565b60015b61159d573d80801561156e576040519150601f19603f3d011682016040523d82523d6000602084013e611573565b606091505b5080516000036115955760405162461bcd60e51b815260040161059c90611bd0565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611212565b506001949350505050565b600054610100900460ff166115e95760405162461bcd60e51b815260040161059c90611c22565b6108216116a9565b600054610100900460ff166116185760405162461bcd60e51b815260040161059c90611c22565b6108216116d6565b6001600160a01b03811661164757604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166116905760405162461bcd60e51b815260040161059c90611c22565b60fb61169c8382611d52565b5060fc61063d8282611d52565b600054610100900460ff166116d05760405162461bcd60e51b815260040161059c90611c22565b60018055565b600054610100900460ff166116fd5760405162461bcd60e51b815260040161059c90611c22565b61082133610ff6565b6001600160e01b031981168114610bcc57600080fd5b60006020828403121561172e57600080fd5b813561078281611706565b6001600160a01b0381168114610bcc57600080fd5b60006020828403121561176057600080fd5b813561078281611739565b60005b8381101561178657818101518382015260200161176e565b50506000910152565b600081518084526117a781602086016020860161176b565b601f01601f19169290920160200192915050565b602081526000610782602083018461178f565b6000602082840312156117e057600080fd5b5035919050565b600080604083850312156117fa57600080fd5b823561180581611739565b946020939093013593505050565b60008060006060848603121561182857600080fd5b833561183381611739565b9250602084013561184381611739565b929592945050506040919091013590565b8035801515811461186457600080fd5b919050565b60008060006060848603121561187e57600080fd5b833592506020840135915061189560408501611854565b90509250925092565b600080604083850312156118b157600080fd5b82356118bc81611739565b91506118ca60208401611854565b90509250929050565b600080604083850312156118e657600080fd5b823591506118ca60208401611854565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611927576119276118f6565b604051601f8501601f19908116603f0116810190828211818310171561194f5761194f6118f6565b8160405280935085815286868601111561196857600080fd5b858560208301376000602087830101525050509392505050565b6000806000806080858703121561199857600080fd5b84356119a381611739565b935060208501356119b381611739565b925060408501359150606085013567ffffffffffffffff8111156119d657600080fd5b8501601f810187136119e757600080fd5b6119f68782356020840161190c565b91505092959194509250565b600082601f830112611a1357600080fd5b6107828383356020850161190c565b600080600080600060a08688031215611a3a57600080fd5b8535611a4581611739565b94506020860135611a5581611739565b935060408601359250606086013567ffffffffffffffff80821115611a7957600080fd5b611a8589838a01611a02565b93506080880135915080821115611a9b57600080fd5b50611aa888828901611a02565b9150509295509295909350565b60008060408385031215611ac857600080fd5b8235611ad381611739565b91506020830135611ae381611739565b809150509250929050565b60008351611b0081846020880161176b565b6241c55b60e71b9083019081528351611b2081600484016020880161176b565b01600401949350505050565b600181811c90821680611b4057607f821691505b602082108103611b6057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b600060208284031215611bc557600080fd5b815161078281611739565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611ce59083018461178f565b9695505050505050565b600060208284031215611d0157600080fd5b815161078281611706565b601f82111561063d57600081815260208120601f850160051c81016020861015611d335750805b601f850160051c820191505b81811015610b4e57828155600101611d3f565b815167ffffffffffffffff811115611d6c57611d6c6118f6565b611d8081611d7a8454611b2c565b84611d0c565b602080601f831160018114611db55760008415611d9d5750858301515b600019600386901b1c1916600185901b178555610b4e565b600085815260208120601f198616915b82811015611de457888601518255948401946001909101908401611dc5565b5085821015611e025787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220982ed42a531dac25c2cd2d24df34757ecf10be7c97db68448affe62cbba75e9764736f6c63430008140033a2646970667358221220fee14084f7c8b84170ddb74bcefdd41ccd4dfdb6fcb6f2b4715d9e5da996604564736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000008": { + "contractName": "ERC721VaultProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000008" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122013e4be7fbb9448379ca283101ef1037ca99a17f6ad00269fe32f79bcefab6e1864736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000009": { + "contractName": "ProxiedERC1155Vault", + "storage": {}, + "code": "0x6080604052600436106200012b5760003560e01c80636c6563f611620000ad578063a86f9d9e116200006c578063a86f9d9e146200035c578063bc197c811462000381578063c287e57814620003b4578063f23a6e6114620003e8578063f2fde38b146200041957600080fd5b80636c6563f614620002b1578063715018a614620002d65780637333964314620002ee5780638da5cb5b14620003055780639aa8605c146200032557600080fd5b80632ca069a511620000fa5780632ca069a514620001cd57806332a642ca14620002045780633ab76e9f146200021b57806359f4a907146200024f57806367090ccf146200026c57600080fd5b806301ffc9a714620001305780630652b57a146200016a57806319ab453c146200019157806320b8155914620001b6575b600080fd5b3480156200013d57600080fd5b50620001556200014f36600462001fcf565b6200043e565b60405190151581526020015b60405180910390f35b3480156200017757600080fd5b506200018f620001893660046200201e565b62000488565b005b3480156200019e57600080fd5b506200018f620001b03660046200201e565b62000504565b6200018f620001c73660046200213b565b62000624565b348015620001da57600080fd5b50620001ea636cdb3d1360e11b81565b6040516001600160e01b0319909116815260200162000161565b6200018f6200021536600462002201565b62000953565b3480156200022857600080fd5b506097546001600160a01b03165b6040516001600160a01b03909116815260200162000161565b3480156200025c57600080fd5b50620001ea6380ac58cd60e01b81565b3480156200027957600080fd5b50620002366200028b3660046200223f565b60cb6020908152600092835260408084209091529082529020546001600160a01b031681565b348015620002be57600080fd5b5062000236620002d036600462002281565b62000cfb565b348015620002e357600080fd5b506200018f62000d14565b6200018f620002ff36600462002343565b62000d2c565b3480156200031257600080fd5b506065546001600160a01b031662000236565b3480156200033257600080fd5b506200034a620003443660046200201e565b620010a7565b604051620001619493929190620024b5565b3480156200036957600080fd5b50620002366200037b366004620024f5565b620011fa565b3480156200038e57600080fd5b50620001ea620003a0366004620025af565b63bc197c8160e01b98975050505050505050565b348015620003c157600080fd5b5062000155620003d33660046200201e565b60c96020526000908152604090205460ff1681565b348015620003f557600080fd5b50620001ea620004073660046200267b565b63f23a6e6160e01b9695505050505050565b3480156200042657600080fd5b506200018f620004383660046200201e565b62001209565b60006001600160e01b031982166301ffc9a760e01b14806200047057506001600160e01b03198216631953216560e11b145b80620004825750620004828262001285565b92915050565b62000492620012bc565b6001600160a01b038116620004ba57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040517f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b90600090a250565b600054610100900460ff1615808015620005255750600054600160ff909116105b80620005415750303b15801562000541575060005460ff166001145b620005aa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015620005ce576000805461ff0019166101001790555b620005d98262001318565b801562000620576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6200062e62001337565b6562726964676560d01b62000645816001620011fa565b6001600160a01b0316336001600160a01b0316146200067757604051630d85cccf60e11b815260040160405180910390fd5b60405163881107d960e01b81526c195c98cc4c4d4d57dd985d5b1d609a1b600482015230602482015260009073b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d9063881107d990604401606060405180830381865af4158015620006e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007069190620026fe565b9050600046883503620007e757620007256040890160208a016200201e565b905060005b8551811015620007e057816001600160a01b031663f242432a30898985815181106200075a576200075a62002765565b602002602001015189868151811062000777576200077762002765565b60200260200101516040518563ffffffff1660e01b8152600401620007a094939291906200277b565b600060405180830381600087803b158015620007bb57600080fd5b505af1158015620007d0573d6000803e3d6000fd5b505050508060010190506200072a565b50620008ce565b620007fc620007f68962002868565b62001392565b905060005b8551811015620008cc57816001600160a01b031663156e29f68888848151811062000830576200083062002765565b60200260200101518885815181106200084d576200084d62002765565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b158015620008a757600080fd5b505af1158015620008bc573d6000803e3d6000fd5b5050505080600101905062000801565b505b620008e36001600160a01b03871634620013d3565b856001600160a01b0316876001600160a01b031683600001517f0f60c37489e435ed8490c30b01c1fa57e62510e88b351b75796ad3d95babe6b18560400151858a8a604051620009379493929190620028b3565b60405180910390a45050506200094c60018055565b5050505050565b6200095d62001337565b6562726964676560d01b62000974816001620011fa565b6001600160a01b0316336001600160a01b031614620009a657604051630d85cccf60e11b815260040160405180910390fd5b60008080620009ba610140860186620028f3565b620009ca9160049082906200293c565b810190620009d9919062002968565b9450945050509250600073b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d632c6a56af8762000a146562726964676560d01b6000620011fa565b87602001516040518463ffffffff1660e01b815260040162000a399392919062002a2c565b602060405180830381865af415801562000a57573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a7d919062002b86565b6020808601516001600160a01b0316600090815260c9909152604090205490915060ff161562000b915760005b835181101562000b8a5760208501516001600160a01b031663156e29f662000ad960a08a0160808b016200201e565b86848151811062000aee5762000aee62002765565b602002602001015186858151811062000b0b5762000b0b62002765565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b15801562000b6557600080fd5b505af115801562000b7a573d6000803e3d6000fd5b5050505080600101905062000aaa565b5062000c61565b60005b835181101562000c5f5760208501516001600160a01b031663f242432a3062000bc460a08b0160808c016200201e565b87858151811062000bd95762000bd962002765565b602002602001015187868151811062000bf65762000bf662002765565b60200260200101516040518563ffffffff1660e01b815260040162000c1f94939291906200277b565b600060405180830381600087803b15801562000c3a57600080fd5b505af115801562000c4f573d6000803e3d6000fd5b5050505080600101905062000b94565b505b62000c8c60e087013562000c7c60a0890160808a016200201e565b6001600160a01b031690620013d3565b62000c9e60a08701608088016200201e565b6001600160a01b0316817fe8449897bd3c926a272780c39ba13e77bf7a2c823479a75bfbc13ef631183dfd8660200151868660405162000ce19392919062002ba0565b60405180910390a3505050505062000cf860018055565b50565b600062000d0a8484846200149a565b90505b9392505050565b62000d1e620012bc565b62000d2a600062001554565b565b62000d3662001337565b60808101516060820151604051636030ce6160e11b815273b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d9263c0619cc29262000d7a9260009060040162002be4565b60006040518083038186803b15801562000d9357600080fd5b505af415801562000da8573d6000803e3d6000fd5b5050505073b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d6393522e3e62000de883600001516c195c98cc4c4d4d57dd985d5b1d609a1b600062000cfb565b602084015160408086015190516001600160e01b031960e086901b1681526001600160a01b039384166004820152918316602483015291909116604482015260640160006040518083038186803b15801562000e4357600080fd5b505af415801562000e58573d6000803e3d6000fd5b505050604082015162000e7d91506001600160a01b0316636cdb3d1360e11b620015a6565b62000e9b57604051633ee915f560e11b815260040160405180910390fd5b60808082015160408084015160608086015183516101808101855260008082526020820181905294810185905280830185905295860184905260a0860184905260c0860184905260e086018490526101008601849052610120860193909352610140850181905261016085015291928451606082015262000f1d338662001623565b610140820152336080820152606081015162000f4c906c195c98cc4c4d4d57dd985d5b1d609a1b600062000cfb565b6001600160a01b031660a08083019190915285015161012082015260c085015162000f78903462002c20565b60e08083019190915260c08087015161010080850191909152918701516001600160a01b031690830152850151610160820152600062000fc26562726964676560d01b82620011fa565b6001600160a01b0316634c1888bc34846040518363ffffffff1660e01b815260040162000ff0919062002c42565b60206040518083038185885af11580156200100f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062001036919062002b86565b905085602001516001600160a01b031682608001516001600160a01b0316827f5e54276405062454e6226625b28a6fea0a838d6b054e38955667234afb3345a3856060015188888b604051620010909493929190620028b3565b60405180910390a4505050505062000cf860018055565b60ca6020526000908152604090208054600182015460028301805492936001600160a01b0390921692620010db9062002d2b565b80601f0160208091040260200160405190810160405280929190818152602001828054620011099062002d2b565b80156200115a5780601f106200112e576101008083540402835291602001916200115a565b820191906000526020600020905b8154815290600101906020018083116200113c57829003601f168201915b505050505090806003018054620011719062002d2b565b80601f01602080910402602001604051908101604052809291908181526020018280546200119f9062002d2b565b8015620011f05780601f10620011c457610100808354040283529160200191620011f0565b820191906000526020600020905b815481529060010190602001808311620011d257829003601f168201915b5050505050905084565b600062000d0d4684846200149a565b62001213620012bc565b6001600160a01b0381166200127a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620005a1565b62000cf88162001554565b60006001600160e01b03198216630271189760e51b14806200048257506301ffc9a760e01b6001600160e01b031983161462000482565b6065546001600160a01b0316331462000d2a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620005a1565b6200132262001b2d565b6200132c62001b61565b62000cf88162001b95565b6002600154036200138b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401620005a1565b6002600155565b8051600090815260cb60209081526040808320828501516001600160a01b0390811685529252909120541680620013ce57620004828262001bdf565b919050565b801580620013e857506001600160a01b038216155b15620013f2575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811462001441576040519150601f19603f3d011682016040523d82523d6000602084013e62001446565b606091505b50509050806200148f5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401620005a1565b505050565b60018055565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa158015620014ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001512919062002d67565b9050811580156200152a57506001600160a01b038116155b1562000d0d57604051631467050360e21b81526004810185905260248101849052604401620005a1565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516301ffc9a760e01b81526001600160e01b0319821660048201526000906001600160a01b038416906301ffc9a790602401602060405180830381865afa92505050801562001616575060408051601f3d908101601f19168201909252620016139181019062002d87565b60015b1562000482579392505050565b604080516080810182526000808252602082015260609181018290528082018290526040808401516001600160a01b0316600090815260c9602052205460ff1615620018c7576040808401516001600160a01b03908116600090815260ca6020908152908390208351608081018552815481526001820154909316918301919091526002810180549293919291840191620016be9062002d2b565b80601f0160208091040260200160405190810160405280929190818152602001828054620016ec9062002d2b565b80156200173d5780601f1062001711576101008083540402835291602001916200173d565b820191906000526020600020905b8154815290600101906020018083116200171f57829003601f168201915b50505050508152602001600382018054620017589062002d2b565b80601f0160208091040260200160405190810160405280929190818152602001828054620017869062002d2b565b8015620017d75780601f10620017ab57610100808354040283529160200191620017d7565b820191906000526020600020905b815481529060010190602001808311620017b957829003601f168201915b505050505081525050905060005b836060015151811015620018c05783604001516001600160a01b031663f5298aca868660600151848151811062001820576200182062002765565b60200260200101518760800151858151811062001841576200184162002765565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b1580156200189b57600080fd5b505af1158015620018b0573d6000803e3d6000fd5b50505050806001019050620017e5565b5062001ac6565b604051806080016040528046815260200184604001516001600160a01b03168152602001604051806020016040528060008152508152602001604051806020016040528060008152508152509050600083604001519050806001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156200198057506040513d6000823e601f3d908101601f191682016040526200197d919081019062002da7565b60015b156200198c5760608301525b806001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa925050508015620019ee57506040513d6000823e601f3d908101601f19168201604052620019eb919081019062002da7565b60015b15620019fa5760408301525b60005b84606001515181101562001ac35784604001516001600160a01b031663f242432a33308860600151858151811062001a395762001a3962002765565b60200260200101518960800151868151811062001a5a5762001a5a62002765565b60200260200101516040518563ffffffff1660e01b815260040162001a8394939291906200277b565b600060405180830381600087803b15801562001a9e57600080fd5b505af115801562001ab3573d6000803e3d6000fd5b50505050806001019050620019fd565b50505b6020830151606084015160808501516040516320b8155960e01b9362001af39386938a9360240162002e74565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152949350505050565b600054610100900460ff1662001b575760405162461bcd60e51b8152600401620005a19062002ed6565b62000d2a62001e58565b600054610100900460ff1662001b8b5760405162461bcd60e51b8152600401620005a19062002ed6565b62000d2a62001e82565b6001600160a01b03811662001bbd57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b60008062001c3c60008460405160200162001bfb919062002f21565b604051602081830303815290604052805190602001206040518060200162001c239062001fc1565b601f1982820381018352601f9091011660405262001eb7565b905073b2Bcd028F53637a4FC4E06C52d247F38f44cBe4d6378adc0d68262001c6c6065546001600160a01b031690565b60975460208089015189516040808c015160608d0151915163689ccd8d60e11b9662001ca8966001600160a01b03909116959493910162002f36565b60408051601f198184030181529082905262001cc8929160200162002f7f565b6040516020818303038152906040526040518463ffffffff1660e01b815260040162001cf79392919062002fb2565b602060405180830381865af415801562001d15573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d3b919062002d67565b6001600160a01b03818116600090815260c9602090815260408083208054600160ff19909116811790915560ca835292819020885181559188015192820180546001600160a01b03191693909416929092179092558501519193508491600282019062001da9908262003032565b506060820151600382019062001dc0908262003032565b50508351600090815260cb6020908152604080832082880180516001600160a01b039081168652919093529281902080546001600160a01b031916878516908117909155915187518289015160608a015193519496509190941693927f2da3c4d305298f6df3653c23d98b4c055f72f7e6f981b2c477ccbec92b1ee5799262001e4a9291620030fe565b60405180910390a450919050565b600054610100900460ff16620014945760405162461bcd60e51b8152600401620005a19062002ed6565b600054610100900460ff1662001eac5760405162461bcd60e51b8152600401620005a19062002ed6565b62000d2a3362001554565b60008347101562001f0b5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401620005a1565b815160000362001f5e5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401620005a1565b8282516020840186f590506001600160a01b03811662000d0d5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401620005a1565b612546806200312883390190565b60006020828403121562001fe257600080fd5b81356001600160e01b03198116811462000d0d57600080fd5b6001600160a01b038116811462000cf857600080fd5b8035620013ce8162001ffb565b6000602082840312156200203157600080fd5b813562000d0d8162001ffb565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156200207a576200207a6200203e565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620020ab57620020ab6200203e565b604052919050565b600082601f830112620020c557600080fd5b813560206001600160401b03821115620020e357620020e36200203e565b8160051b620020f482820162002080565b92835284810182019282810190878511156200210f57600080fd5b83870192505b84831015620021305782358252918301919083019062002115565b979650505050505050565b600080600080600060a086880312156200215457600080fd5b85356001600160401b03808211156200216c57600080fd5b908701906080828a0312156200218157600080fd5b909550602087013590620021958262001ffb565b909450604087013590620021a98262001ffb565b90935060608701359080821115620021c057600080fd5b620021ce89838a01620020b3565b93506080880135915080821115620021e557600080fd5b50620021f488828901620020b3565b9150509295509295909350565b6000602082840312156200221457600080fd5b81356001600160401b038111156200222b57600080fd5b8201610180818503121562000d0d57600080fd5b600080604083850312156200225357600080fd5b823591506020830135620022678162001ffb565b809150509250929050565b801515811462000cf857600080fd5b6000806000606084860312156200229757600080fd5b83359250602084013591506040840135620022b28162002272565b809150509250925092565b60006001600160401b03821115620022d957620022d96200203e565b50601f01601f191660200190565b600082601f830112620022f957600080fd5b8135620023106200230a82620022bd565b62002080565b8181528460208386010111156200232657600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156200235657600080fd5b81356001600160401b03808211156200236e57600080fd5b9083019061012082860312156200238457600080fd5b6200238e62002054565b82358152620023a06020840162002011565b6020820152620023b36040840162002011565b6040820152606083013582811115620023cb57600080fd5b620023d987828601620020b3565b606083015250608083013582811115620023f257600080fd5b6200240087828601620020b3565b60808301525060a083013560a082015260c083013560c08201526200242860e0840162002011565b60e082015261010080840135838111156200244257600080fd5b6200245088828701620022e7565b918301919091525095945050505050565b60005b838110156200247e57818101518382015260200162002464565b50506000910152565b60008151808452620024a181602086016020860162002461565b601f01601f19169290920160200192915050565b8481526001600160a01b0384166020820152608060408201819052600090620024e19083018562002487565b828103606084015262002130818562002487565b600080604083850312156200250957600080fd5b823591506020830135620022678162002272565b60008083601f8401126200253057600080fd5b5081356001600160401b038111156200254857600080fd5b6020830191508360208260051b85010111156200256457600080fd5b9250929050565b60008083601f8401126200257e57600080fd5b5081356001600160401b038111156200259657600080fd5b6020830191508360208285010111156200256457600080fd5b60008060008060008060008060a0898b031215620025cc57600080fd5b8835620025d98162001ffb565b97506020890135620025eb8162001ffb565b965060408901356001600160401b03808211156200260857600080fd5b620026168c838d016200251d565b909850965060608b01359150808211156200263057600080fd5b6200263e8c838d016200251d565b909650945060808b01359150808211156200265857600080fd5b50620026678b828c016200256b565b999c989b5096995094979396929594505050565b60008060008060008060a087890312156200269557600080fd5b8635620026a28162001ffb565b95506020870135620026b48162001ffb565b9450604087013593506060870135925060808701356001600160401b03811115620026de57600080fd5b620026ec89828a016200256b565b979a9699509497509295939492505050565b6000606082840312156200271157600080fd5b604051606081018181106001600160401b03821117156200273657620027366200203e565b6040528251815260208301516200274d8162001ffb565b60208201526040928301519281019290925250919050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b600060808284031215620027c657600080fd5b604051608081016001600160401b038282108183111715620027ec57620027ec6200203e565b816040528293508435835260208501359150620028098262001ffb565b81602084015260408501359150808211156200282457600080fd5b6200283286838701620022e7565b604084015260608501359150808211156200284c57600080fd5b506200285b85828601620022e7565b6060830152505092915050565b6000620004823683620027b3565b600081518084526020808501945080840160005b83811015620028a8578151875295820195908201906001016200288a565b509495945050505050565b8481526001600160a01b0384166020820152608060408201819052600090620028df9083018562002876565b828103606084015262002130818562002876565b6000808335601e198436030181126200290b57600080fd5b8301803591506001600160401b038211156200292657600080fd5b6020019150368190038213156200256457600080fd5b600080858511156200294d57600080fd5b838611156200295b57600080fd5b5050820193919092039150565b600080600080600060a086880312156200298157600080fd5b85356001600160401b03808211156200299957600080fd5b620029a789838a01620027b3565b965060208801359150620021958262001ffb565b6000808335601e19843603018112620029d357600080fd5b83016020810192503590506001600160401b03811115620029f357600080fd5b8036038213156200256457600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815283356060820152600062002a476020860162002011565b6001600160a01b038116608084015250604085013560a0830152606085013560c083015262002a796080860162002011565b6001600160a01b031660e083015262002a9560a0860162002011565b61010062002aad818501836001600160a01b03169052565b62002abb60c0880162002011565b915061012062002ad5818601846001600160a01b03169052565b610140925060e08801358386015261016082890135818701526101809250818901358387015262002b09848a018a620029bb565b94509150826101a087015262002b256101e08701858462002a03565b935062002b35818a018a620029bb565b9350915050605f19858403016101c086015262002b5483838362002a03565b935050505062002b6f60208301856001600160a01b03169052565b6001600160a01b0383166040830152949350505050565b60006020828403121562002b9957600080fd5b5051919050565b6001600160a01b038416815260606020820181905260009062002bc69083018562002876565b828103604084015262002bda818562002876565b9695505050505050565b60608152600062002bf9606083018662002876565b828103602084015262002c0d818662002876565b9150508215156040830152949350505050565b818103818111156200048257634e487b7160e01b600052601160045260246000fd5b60208152815160208201526000602083015162002c6a60408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015162002c9a60a08401826001600160a01b03169052565b5060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e083015161010083810191909152830151610120808401919091528301516101408084019190915283015161018061016080850182905262002d0d6101a086018462002487565b90860151858203601f19018387015290925062002bda838262002487565b600181811c9082168062002d4057607f821691505b60208210810362002d6157634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121562002d7a57600080fd5b815162000d0d8162001ffb565b60006020828403121562002d9a57600080fd5b815162000d0d8162002272565b60006020828403121562002dba57600080fd5b81516001600160401b0381111562002dd157600080fd5b8201601f8101841362002de357600080fd5b805162002df46200230a82620022bd565b81815285602083850101111562002e0a57600080fd5b62002e1d82602083016020860162002461565b95945050505050565b8051825260018060a01b036020820151166020830152600060408201516080604085015262002e59608085018262002487565b90506060830151848203606086015262002e1d828262002487565b60a08152600062002e8960a083018862002e26565b6001600160a01b03878116602085015286166040840152828103606084015262002eb4818662002876565b9050828103608084015262002eca818562002876565b98975050505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208152600062000d0d602083018462002e26565b6001600160a01b038681168252851660208201526040810184905260a06060820181905260009062002f6b9083018562002487565b828103608084015262002eca818562002487565b6001600160e01b031983168152815160009062002fa481600485016020870162002461565b919091016004019392505050565b6001600160a01b0384811682528316602082015260606040820181905260009062002e1d9083018462002487565b601f8211156200148f57600081815260208120601f850160051c81016020861015620030095750805b601f850160051c820191505b818110156200302a5782815560010162003015565b505050505050565b81516001600160401b038111156200304e576200304e6200203e565b62003066816200305f845462002d2b565b8462002fe0565b602080601f8311600181146200309e5760008415620030855750858301515b600019600386901b1c1916600185901b1785556200302a565b600085815260208120601f198616915b82811015620030cf57888601518255948401946001909101908401620030ae565b5085821015620030ee5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408152600062003113604083018562002487565b828103602084015262002e1d81856200248756fe608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61245880620000ee6000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c8063715018a6116100b8578063a86f9d9e1161007c578063a86f9d9e1461029c578063d1399b1a146102af578063e985e9c5146102c2578063f242432a146102fe578063f2fde38b14610311578063f5298aca1461032457600080fd5b8063715018a6146102545780637cf8ed0d1461025c5780638da5cb5b1461027057806395d89b4114610281578063a22cb4651461028957600080fd5b8063156e29f61161010a578063156e29f6146101cc5780632eb2c2d6146101df5780633ab76e9f146101f257806349d12605146102175780634e1273f4146102215780636c6563f61461024157600080fd5b8062fdd58e1461014657806301ffc9a71461016c5780630652b57a1461018f57806306fdde03146101a45780630e89341c146101b9575b600080fd5b6101596101543660046118e5565b610337565b6040519081526020015b60405180910390f35b61017f61017a366004611927565b6103d2565b6040519015158152602001610163565b6101a261019d366004611944565b610422565b005b6101ac61049b565b60405161016391906119b1565b6101ac6101c73660046119c4565b6104d1565b6101a26101da3660046119dd565b610565565b6101a26101ed366004611b5e565b61061b565b6097546001600160a01b03165b6040516001600160a01b039091168152602001610163565b61015961012e5481565b61023461022f366004611c0c565b610667565b6040516101639190611d14565b6101ff61024f366004611d3c565b610791565b6101a26107a8565b61012d546101ff906001600160a01b031681565b6065546001600160a01b03166101ff565b6101ac6107bc565b6101a2610297366004611d71565b61084b565b6101ff6102aa366004611da6565b61085a565b6101a26102bd366004611dc9565b610867565b61017f6102d0366004611e2c565b6001600160a01b03918216600090815260fc6020908152604080832093909416825291909152205460ff1690565b6101a261030c366004611e65565b610a10565b6101a261031f366004611944565b610a46565b6101a26103323660046119dd565b610abf565b60006001600160a01b0383166103a75760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b50600081815260fb602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b148061040357506001600160e01b031982166303a24d0760e21b145b806103cc57506301ffc9a760e01b6001600160e01b03198316146103cc565b61042a610b5b565b6001600160a01b03811661045157604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040517f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b90600090a250565b60606101306104ac61012e54610bb5565b6040516020016104bd929190611f08565b604051602081830303815290604052905090565b606060fd80546104e090611ece565b80601f016020809104026020016040519081016040528092919081815260200182805461050c90611ece565b80156105595780601f1061052e57610100808354040283529160200191610559565b820191906000526020600020905b81548152906001019060200180831161053c57829003601f168201915b50505050509050919050565b6c195c98cc4c4d4d57dd985d5b1d609a1b61058181600161085a565b6001600160a01b0316336001600160a01b0316146105b257604051630d85cccf60e11b815260040160405180910390fd5b6105cd84848460405180602001604052806000815250610c48565b60408051848152602081018490526001600160a01b038616916000917f9ed053bb818ff08b8353cd46f78db1f0799f31c9e4458fdb425c10eccd2efc4491015b60405180910390a350505050565b6001600160a01b038516331480610637575061063785336102d0565b6106535760405162461bcd60e51b815260040161039e90611f9e565b6106608585858585610d5e565b5050505050565b606081518351146106cc5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161039e565b6000835167ffffffffffffffff8111156106e8576106e8611a12565b604051908082528060200260200182016040528015610711578160200160208202803683370190505b50905060005b84518110156107895761075c85828151811061073557610735611fec565b602002602001015185838151811061074f5761074f611fec565b6020026020010151610337565b82828151811061076e5761076e611fec565b602090810291909101015261078281612018565b9050610717565b509392505050565b600061079e848484610f36565b90505b9392505050565b6107b0610b5b565b6107ba6000610fea565b565b61012f80546107ca90611ece565b80601f01602080910402602001604051908101604052809291908181526020018280546107f690611ece565b80156108435780601f1061081857610100808354040283529160200191610843565b820191906000526020600020905b81548152906001019060200180831161082657829003601f168201915b505050505081565b61085633838361103c565b5050565b60006107a1468484610f36565b600054610100900460ff16158080156108875750600054600160ff909116105b806108a15750303b1580156108a1575060005460ff166001145b6109045760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161039e565b6000805460ff191660011790558015610927576000805461ff0019166101001790555b6001600160a01b038516158061093b575083155b8061094557504684145b1561096357604051635d061ab760e11b815260040160405180910390fd5b61096c8661111c565b61098460405180602001604052806000815250611135565b61012d80546001600160a01b0319166001600160a01b03871617905561012e84905561012f6109b3848261207c565b506101306109c1838261207c565b508015610a08576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b306001600160a01b03851603610a3957604051636cfe544760e01b815260040160405180910390fd5b6106608585858585611165565b610a4e610b5b565b6001600160a01b038116610ab35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161039e565b610abc81610fea565b50565b6c195c98cc4c4d4d57dd985d5b1d609a1b610adb81600161085a565b6001600160a01b0316336001600160a01b031614610b0c57604051630d85cccf60e11b815260040160405180910390fd5b610b178484846111aa565b60408051848152602081018490526000916001600160a01b038716917f9ed053bb818ff08b8353cd46f78db1f0799f31c9e4458fdb425c10eccd2efc44910161060d565b6065546001600160a01b031633146107ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039e565b60606000610bc283611329565b600101905060008167ffffffffffffffff811115610be257610be2611a12565b6040519080825280601f01601f191660200182016040528015610c0c576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610c1657509392505050565b6001600160a01b038416610ca85760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161039e565b336000610cb485611401565b90506000610cc185611401565b9050600086815260fb602090815260408083206001600160a01b038b16845290915281208054879290610cf590849061213c565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610d558360008989898961144c565b50505050505050565b8151835114610dc05760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b606482015260840161039e565b6001600160a01b038416610de65760405162461bcd60e51b815260040161039e9061214f565b3360005b8451811015610ed0576000858281518110610e0757610e07611fec565b602002602001015190506000858381518110610e2557610e25611fec565b602090810291909101810151600084815260fb835260408082206001600160a01b038e168352909352919091205490915081811015610e765760405162461bcd60e51b815260040161039e90612194565b600083815260fb602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610eb590849061213c565b9250508190555050505080610ec990612018565b9050610dea565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610f209291906121de565b60405180910390a4610a088187878787876115a7565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa158015610f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fab919061220c565b905081158015610fc257506001600160a01b038116155b156107a157604051631467050360e21b8152600481018590526024810184905260440161039e565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316036110af5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161039e565b6001600160a01b03838116600081815260fc6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611124611662565b61112c611691565b610abc816116c0565b600054610100900460ff1661115c5760405162461bcd60e51b815260040161039e90612229565b610abc81611709565b6001600160a01b038516331480611181575061118185336102d0565b61119d5760405162461bcd60e51b815260040161039e90611f9e565b6106608585858585611739565b6001600160a01b03831661120c5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161039e565b33600061121884611401565b9050600061122584611401565b604080516020808201835260009182905288825260fb81528282206001600160a01b038b16835290522054909150848110156112af5760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161039e565b600086815260fb602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052610d55565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106113685772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611394576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106113b257662386f26fc10000830492506010015b6305f5e10083106113ca576305f5e100830492506008015b61271083106113de57612710830492506004015b606483106113f0576064830492506002015b600a83106103cc5760010192915050565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061143b5761143b611fec565b602090810291909101015292915050565b6001600160a01b0384163b15610a085760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906114909089908990889088908890600401612274565b6020604051808303816000875af19250505080156114cb575060408051601f3d908101601f191682019092526114c8918101906122b9565b60015b611577576114d76122d6565b806308c379a00361151057506114eb6122f2565b806114f65750611512565b8060405162461bcd60e51b815260040161039e91906119b1565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161039e565b6001600160e01b0319811663f23a6e6160e01b14610d555760405162461bcd60e51b815260040161039e9061237c565b6001600160a01b0384163b15610a085760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906115eb90899089908890889088906004016123c4565b6020604051808303816000875af1925050508015611626575060408051601f3d908101601f19168201909252611623918101906122b9565b60015b611632576114d76122d6565b6001600160e01b0319811663bc197c8160e01b14610d555760405162461bcd60e51b815260040161039e9061237c565b600054610100900460ff166116895760405162461bcd60e51b815260040161039e90612229565b6107ba611867565b600054610100900460ff166116b85760405162461bcd60e51b815260040161039e90612229565b6107ba611894565b6001600160a01b0381166116e757604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166117305760405162461bcd60e51b815260040161039e90612229565b610abc816118c4565b6001600160a01b03841661175f5760405162461bcd60e51b815260040161039e9061214f565b33600061176b85611401565b9050600061177885611401565b9050600086815260fb602090815260408083206001600160a01b038c168452909152902054858110156117bd5760405162461bcd60e51b815260040161039e90612194565b600087815260fb602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906117fc90849061213c565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461185c848a8a8a8a8a61144c565b505050505050505050565b600054610100900460ff1661188e5760405162461bcd60e51b815260040161039e90612229565b60018055565b600054610100900460ff166118bb5760405162461bcd60e51b815260040161039e90612229565b6107ba33610fea565b60fd610856828261207c565b6001600160a01b0381168114610abc57600080fd5b600080604083850312156118f857600080fd5b8235611903816118d0565b946020939093013593505050565b6001600160e01b031981168114610abc57600080fd5b60006020828403121561193957600080fd5b81356107a181611911565b60006020828403121561195657600080fd5b81356107a1816118d0565b60005b8381101561197c578181015183820152602001611964565b50506000910152565b6000815180845261199d816020860160208601611961565b601f01601f19169290920160200192915050565b6020815260006107a16020830184611985565b6000602082840312156119d657600080fd5b5035919050565b6000806000606084860312156119f257600080fd5b83356119fd816118d0565b95602085013595506040909401359392505050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e611a12565b6040525050565b600067ffffffffffffffff821115611a6f57611a6f611a12565b5060051b60200190565b600082601f830112611a8a57600080fd5b81356020611a9782611a55565b604051611aa48282611a28565b83815260059390931b8501820192828101915086841115611ac457600080fd5b8286015b84811015611adf5780358352918301918301611ac8565b509695505050505050565b600082601f830112611afb57600080fd5b813567ffffffffffffffff811115611b1557611b15611a12565b604051611b2c601f8301601f191660200182611a28565b818152846020838601011115611b4157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611b7657600080fd5b8535611b81816118d0565b94506020860135611b91816118d0565b9350604086013567ffffffffffffffff80821115611bae57600080fd5b611bba89838a01611a79565b94506060880135915080821115611bd057600080fd5b611bdc89838a01611a79565b93506080880135915080821115611bf257600080fd5b50611bff88828901611aea565b9150509295509295909350565b60008060408385031215611c1f57600080fd5b823567ffffffffffffffff80821115611c3757600080fd5b818501915085601f830112611c4b57600080fd5b81356020611c5882611a55565b604051611c658282611a28565b83815260059390931b8501820192828101915089841115611c8557600080fd5b948201945b83861015611cac578535611c9d816118d0565b82529482019490820190611c8a565b96505086013592505080821115611cc257600080fd5b50611ccf85828601611a79565b9150509250929050565b600081518084526020808501945080840160005b83811015611d0957815187529582019590820190600101611ced565b509495945050505050565b6020815260006107a16020830184611cd9565b80358015158114611d3757600080fd5b919050565b600080600060608486031215611d5157600080fd5b8335925060208401359150611d6860408501611d27565b90509250925092565b60008060408385031215611d8457600080fd5b8235611d8f816118d0565b9150611d9d60208401611d27565b90509250929050565b60008060408385031215611db957600080fd5b82359150611d9d60208401611d27565b600080600080600060a08688031215611de157600080fd5b8535611dec816118d0565b94506020860135611dfc816118d0565b935060408601359250606086013567ffffffffffffffff80821115611e2057600080fd5b611bdc89838a01611aea565b60008060408385031215611e3f57600080fd5b8235611e4a816118d0565b91506020830135611e5a816118d0565b809150509250929050565b600080600080600060a08688031215611e7d57600080fd5b8535611e88816118d0565b94506020860135611e98816118d0565b93506040860135925060608601359150608086013567ffffffffffffffff811115611ec257600080fd5b611bff88828901611aea565b600181811c90821680611ee257607f821691505b602082108103611f0257634e487b7160e01b600052602260045260246000fd5b50919050565b6000808454611f1681611ece565b60018281168015611f2e5760018114611f4357611f72565b60ff1984168752821515830287019450611f72565b8860005260208060002060005b85811015611f695781548a820152908401908201611f50565b50505082870194505b50506241c55b60e71b835250508351611f92816004840160208801611961565b01600401949350505050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161202a5761202a612002565b5060010190565b601f82111561207757600081815260208120601f850160051c810160208610156120585750805b601f850160051c820191505b81811015610a0857828155600101612064565b505050565b815167ffffffffffffffff81111561209657612096611a12565b6120aa816120a48454611ece565b84612031565b602080601f8311600181146120df57600084156120c75750858301515b600019600386901b1c1916600185901b178555610a08565b600085815260208120601f198616915b8281101561210e578886015182559484019460019091019084016120ef565b508582101561212c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156103cc576103cc612002565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6040815260006121f16040830185611cd9565b82810360208401526122038185611cd9565b95945050505050565b60006020828403121561221e57600080fd5b81516107a1816118d0565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906122ae90830184611985565b979650505050505050565b6000602082840312156122cb57600080fd5b81516107a181611911565b600060033d11156122ef5760046000803e5060005160e01c5b90565b600060443d10156123005790565b6040516003193d81016004833e81513d67ffffffffffffffff816024840111818411171561233057505050505090565b82850191508151818111156123485750505050505090565b843d87010160208285010111156123625750505050505090565b61237160208286010187611a28565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b0386811682528516602082015260a0604082018190526000906123f090830186611cd9565b82810360608401526124028186611cd9565b905082810360808401526124168185611985565b9897505050505050505056fea2646970667358221220ee7f810feef1b382c8ef11eb3d6f0b845bda726deaea1e489e353f59025211be64736f6c63430008140033a2646970667358221220ea3ce65f4b921acac47f314a689a5ec16ba6d76cce7b6d58b3b98a450302fd6b64736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000009": { + "contractName": "ERC1155VaultProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000009" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122013e4be7fbb9448379ca283101ef1037ca99a17f6ad00269fe32f79bcefab6e1864736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000003": { + "contractName": "ProxiedEtherVault", + "storage": {}, + "code": "0x6080604052600436106100ab5760003560e01c80638da5cb5b116100645780638da5cb5b146101c0578063a86f9d9e146101de578063ba0bbd95146101fe578063d73bb3d01461021e578063f2fde38b1461023e578063fe9fbb801461025e57600080fd5b80630652b57a146100f457806319ab453c146101145780632d1fb389146101345780633ab76e9f146101545780636c6563f61461018b578063715018a6146101ab57600080fd5b366100ef5747158015906100cf575033600090815260c9602052604090205460ff16155b156100ed57604051634fa3f24560e01b815260040160405180910390fd5b005b600080fd5b34801561010057600080fd5b506100ed61010f366004610a8d565b6102a7565b34801561012057600080fd5b506100ed61012f366004610a8d565b610320565b34801561014057600080fd5b506100ed61014f366004610abf565b610438565b34801561016057600080fd5b506097546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561019757600080fd5b5061016e6101a6366004610af4565b6104f1565b3480156101b757600080fd5b506100ed610508565b3480156101cc57600080fd5b506065546001600160a01b031661016e565b3480156101ea57600080fd5b5061016e6101f9366004610b29565b61051c565b34801561020a57600080fd5b506100ed610219366004610b4c565b610529565b34801561022a57600080fd5b506100ed610239366004610b78565b6105ee565b34801561024a57600080fd5b506100ed610259366004610a8d565b610671565b34801561026a57600080fd5b50610297610279366004610a8d565b6001600160a01b0316600090815260c9602052604090205460ff1690565b6040519015158152602001610182565b6102af6106e7565b6001600160a01b0381166102d657604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040517f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b90600090a250565b600054610100900460ff16158080156103405750600054600160ff909116105b8061035a5750303b15801561035a575060005460ff166001145b6103c25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156103e5576000805461ff0019166101001790555b6103ee82610741565b8015610434576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6104406106e7565b6001600160a01b038216158061047457506001600160a01b038216600090815260c9602052604090205460ff161515811515145b1561049257604051631bebdfa760e21b815260040160405180910390fd5b6001600160a01b038216600081815260c96020908152604091829020805460ff191685151590811790915591519182527f4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf910160405180910390a25050565b60006104fe84848461075a565b90505b9392505050565b6105106106e7565b61051a600061080e565b565b600061050146848461075a565b33600090815260c9602052604090205460ff1661055957604051634fa3f24560e01b815260040160405180910390fd5b610561610860565b80156105e5576001600160a01b03821661058e5760405163687563df60e01b815260040160405180910390fd5b6105a16001600160a01b038316826108b9565b816001600160a01b03167f7b9f77d35803cd201eac9c4ed739bc1fcd3f1be6ab8877d925d1e55517b6fd6e826040516105dc91815260200190565b60405180910390a25b61043460018055565b33600090815260c9602052604090205460ff1661061e57604051634fa3f24560e01b815260040160405180910390fd5b610626610860565b61063033826108b9565b60405181815233907f7b9f77d35803cd201eac9c4ed739bc1fcd3f1be6ab8877d925d1e55517b6fd6e9060200160405180910390a261066e60018055565b50565b6106796106e7565b6001600160a01b0381166106de5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103b9565b61066e8161080e565b6065546001600160a01b0316331461051a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103b9565b61074961097a565b6107516109a9565b61066e816109d8565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa1580156107ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cf9190610b91565b9050811580156107e657506001600160a01b038116155b1561050157604051631467050360e21b815260048101859052602481018490526044016103b9565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6002600154036108b25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016103b9565b6002600155565b8015806108cd57506001600160a01b038216155b156108d6575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610923576040519150601f19603f3d011682016040523d82523d6000602084013e610928565b606091505b505090508061096f5760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b60448201526064016103b9565b505050565b60018055565b600054610100900460ff166109a15760405162461bcd60e51b81526004016103b990610bae565b61051a610a21565b600054610100900460ff166109d05760405162461bcd60e51b81526004016103b990610bae565b61051a610a48565b6001600160a01b0381166109ff57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166109745760405162461bcd60e51b81526004016103b990610bae565b600054610100900460ff16610a6f5760405162461bcd60e51b81526004016103b990610bae565b61051a3361080e565b6001600160a01b038116811461066e57600080fd5b600060208284031215610a9f57600080fd5b813561050181610a78565b80358015158114610aba57600080fd5b919050565b60008060408385031215610ad257600080fd5b8235610add81610a78565b9150610aeb60208401610aaa565b90509250929050565b600080600060608486031215610b0957600080fd5b8335925060208401359150610b2060408501610aaa565b90509250925092565b60008060408385031215610b3c57600080fd5b82359150610aeb60208401610aaa565b60008060408385031215610b5f57600080fd5b8235610b6a81610a78565b946020939093013593505050565b600060208284031215610b8a57600080fd5b5035919050565b600060208284031215610ba357600080fd5b815161050181610a78565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212204c31d592cfc1ec7ee55355c17834d2e62089d97edf1b79bd01f89108c83709d164736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000003": { + "contractName": "EtherVaultProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xa738d3397c1eb96f671d7e4bd29cabbfa1a9c9ebc0db4142aee17809c43ab720": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000003" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122013e4be7fbb9448379ca283101ef1037ca99a17f6ad00269fe32f79bcefab6e1864736f6c63430008140033", + "balance": "0xffffffffffffff21f494c589bfffffff" + }, + "0x0000777700000000000000000000000000000007": { + "contractName": "ProxiedSignalService", + "storage": {}, + "code": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80636c6563f6116100715780636c6563f614610162578063715018a6146101755780638da5cb5b1461017d578063a86f9d9e1461018e578063f2fde38b146101a1578063f8f3f844146101b457600080fd5b80630652b57a146100b957806319ab453c146100ce57806332676bc6146100e15780633ab76e9f146101095780635221f6131461012e57806366ca2bc014610141575b600080fd5b6100cc6100c7366004611a23565b6101e0565b005b6100cc6100dc366004611a23565b610259565b6100f46100ef366004611a40565b610371565b60405190151581526020015b60405180910390f35b6097546001600160a01b03165b6040516001600160a01b039091168152602001610100565b6100f461013c366004611a6c565b6103e3565b61015461014f366004611b02565b61055d565b604051908152602001610100565b610116610170366004611b30565b6105a4565b6100cc6105bb565b6065546001600160a01b0316610116565b61011661019c366004611b65565b6105cf565b6100cc6101af366004611a23565b6105e5565b6101546101c2366004611a40565b6040805192835260208301919091526034600c830120918101905290565b6101e861065e565b6001600160a01b03811661020f57604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0383169081179091556040517f399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b90600090a250565b600054610100900460ff16158080156102795750600054600160ff909116105b806102935750303b158015610293575060005460ff166001145b6102fb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561031e576000805461ff0019166101001790555b610327826106b8565b801561036d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000826001600160a01b03811661039b576040516354cdfc8d60e11b815260040160405180910390fd5b8260008190036103be5760405163014f1da760e21b815260040160405180910390fd5b5050604080519384526020840192909252506034600c83012091810190525460011490565b6000854681036104065760405163e822b48d60e01b815260040160405180910390fd5b856001600160a01b03811661042e576040516354cdfc8d60e11b815260040160405180910390fd5b8560008190036104515760405163014f1da760e21b815260040160405180910390fd5b600061045f86880188611c01565b90506000610476647461696b6f60d81b60006105cf565b825160405163016674a560e21b815267ffffffffffffffff90911660048201526001600160a01b039190911690630599d29490602401602060405180830381865afa1580156104c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ed9190611cd6565b604080518c8152602081018c90526034600c820120818301909252606081019190915290915061054e90608001604051602081830303815290604052604051806040016040528060018152602001600160f81b8152508460200151846106d1565b9b9a5050505050505050505050565b6000818082036105805760405163014f1da760e21b815260040160405180910390fd5b50506040805133815260208101929092526034600c83012091810190526001815590565b60006105b18484846106f5565b90505b9392505050565b6105c361065e565b6105cd60006107a9565b565b60006105dc4684846106f5565b90505b92915050565b6105ed61065e565b6001600160a01b0381166106525760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102f2565b61065b816107a9565b50565b6065546001600160a01b031633146105cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102f2565b6106c06107fb565b6106c861082a565b61065b81610859565b6000806106dd866108a2565b90506106eb818686866108d4565b9695505050505050565b60975460405163195ac1a960e21b815260048101859052602481018490526000916001600160a01b03169063656b06a490604401602060405180830381865afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190611cef565b90508115801561078157506001600160a01b038116155b156105b457604051631467050360e21b815260048101859052602481018490526044016102f2565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166108225760405162461bcd60e51b81526004016102f290611d0c565b6105cd610911565b600054610100900460ff166108515760405162461bcd60e51b81526004016102f290611d0c565b6105cd61093e565b6001600160a01b03811661088057604051634d084d8560e11b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b606081805190602001206040516020016108be91815260200190565b6040516020818303038152906040529050919050565b60008060006108e487868661096e565b9150915081801561090657508051602080830191909120875191880191909120145b979650505050505050565b600054610100900460ff166109385760405162461bcd60e51b81526004016102f290611d0c565b60018055565b600054610100900460ff166109655760405162461bcd60e51b81526004016102f290611d0c565b6105cd336107a9565b60006060600061097d85610a49565b9050600080600061098f848a89610b42565b815192955090935091501580806109a35750815b6109ef5760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e00000000000060448201526064016102f2565b600081610a0b5760405180602001604052806000815250610a37565b610a3786610a1a600188611d6d565b81518110610a2a57610a2a611d80565b6020026020010151610f62565b919b919a509098505050505050505050565b60606000610a5683610f89565b90506000815167ffffffffffffffff811115610a7457610a74611b91565b604051908082528060200260200182016040528015610ab957816020015b6040805180820190915260608082526020820152815260200190600190039081610a925790505b50905060005b8251811015610b3a576000610aec848381518110610adf57610adf611d80565b6020026020010151610fbc565b90506040518060400160405280610b0283610f89565b815260200182815250838381518110610b1d57610b1d611d80565b60200260200101819052505080610b3390611d96565b9050610abf565b509392505050565b600060606000806000610b548761104c565b90506000869050600080610b7b604051806040016040528060608152602001606081525090565b60005b8c51811015610f3a578c8181518110610b9957610b99611d80565b602002602001015191508284610baf9190611daf565b9350610bbc600188611daf565b965083600003610c19578482602001518051906020012014610c145760405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b60448201526064016102f2565b610cdb565b602082602001515110610c80578482602001518051906020012014610c145760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c2068617368000000000060448201526064016102f2565b84610c8e8360200151611185565b14610cdb5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f6465206861736800000000000060448201526064016102f2565b610ce760106001611dc2565b60ff1682600001515103610d555785518414610f3a576000868581518110610d1157610d11611d80565b01602001518351805160f89290921c925060009183908110610d3557610d35611d80565b60200260200101519050610d48816111ad565b9650600194505050610f2a565b81515160011901610ee2576000610d6b836111e3565b9050600081600081518110610d8257610d82611d80565b016020015160f81c90506000610d99600283611ddb565b610da4906002611e0b565b90506000610db5848360ff16611207565b90506000610dc38b8a611207565b90506000610dd1838361123d565b905060ff851660021480610de8575060ff85166003145b15610e2257808351148015610dfd5750808251145b15610e0f57610e0c818b611daf565b99505b50600160ff1b9950610f3a945050505050565b60ff85161580610e35575060ff85166001145b15610e8b5782518114610e555750600160ff1b9950610f3a945050505050565b610e7c8860000151600181518110610e6f57610e6f611d80565b60200260200101516111ad565b9a509750610f2a945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e206044820152650e0e4caccd2f60d31b60648201526084016102f2565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e00000060448201526064016102f2565b610f3381611d96565b9050610b7e565b50600160ff1b841486610f4d8786611207565b909e909d50909b509950505050505050505050565b805180516060916105df91610f7990600190611d6d565b81518110610adf57610adf611d80565b6040805180820182526000808252602091820152815180830190925282518252808301908201526060906105df906112b7565b60606000806000610fcc856114a3565b919450925090506000816001811115610fe757610fe7611e24565b146110345760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e000000000000000060448201526064016102f2565b611043856020015184846117ed565b95945050505050565b606060008251600261105e9190611e3a565b67ffffffffffffffff81111561107657611076611b91565b6040519080825280601f01601f1916602001820160405280156110a0576020820181803683370190505b50905060005b835181101561117e5760048482815181106110c3576110c3611d80565b01602001516001600160f81b031916901c826110e0836002611e3a565b815181106110f0576110f0611d80565b60200101906001600160f81b031916908160001a905350601084828151811061111b5761111b611d80565b016020015161112d919060f81c611ddb565b60f81b8261113c836002611e3a565b611147906001611daf565b8151811061115757611157611d80565b60200101906001600160f81b031916908160001a90535061117781611d96565b90506110a6565b5092915050565b600060208251101561119957506020015190565b818060200190518101906105df9190611cd6565b600060606020836000015110156111ce576111c783611896565b90506111da565b6111d783610fbc565b90505b6105b481611185565b60606105df6112028360000151600081518110610adf57610adf611d80565b61104c565b60608251821061122657506040805160208101909152600081526105df565b6105dc83838486516112389190611d6d565b6118a1565b6000805b8084511180156112515750808351115b80156112a2575082818151811061126a5761126a611d80565b602001015160f81c60f81b6001600160f81b03191684828151811061129157611291611d80565b01602001516001600160f81b031916145b156105dc576112b081611d96565b9050611241565b60606000806112c5846114a3565b919350909150600190508160018111156112e1576112e1611e24565b1461132e5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e00000000000000000060448201526064016102f2565b6040805160208082526104208201909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816113475790505090506000835b865181101561149857602082106113e05760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201526939ba103632b733ba341760b11b60648201526084016102f2565b60008061141d6040518060400160405280858c600001516114019190611d6d565b8152602001858c602001516114169190611daf565b90526114a3565b5091509150604051806040016040528083836114399190611daf565b8152602001848b6020015161144e9190611daf565b81525085858151811061146357611463611d80565b6020908102919091010152611479600185611daf565b93506114858183611daf565b61148f9084611daf565b92505050611374565b508152949350505050565b6000806000808460000151116114fb5760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e000000000000000060448201526064016102f2565b6020840151805160001a607f81116115205760006001600094509450945050506117e6565b60b7811161159c576000611535608083611d6d565b90508087600001511161158a5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e0000000000000060448201526064016102f2565b600195509350600092506117e6915050565b60bf811161168b5760006115b160b783611d6d565b9050808760000151116116065760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e0060448201526064016102f2565b600183015160208290036101000a90046116208183611daf565b88511161166f5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e000000000000000060448201526064016102f2565b61167a826001611daf565b96509450600093506117e692505050565b60f781116117065760006116a060c083611d6d565b9050808760000151116116f55760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e00000000000000000060448201526064016102f2565b6001955093508492506117e6915050565b600061171360f783611d6d565b9050808760000151116117685760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e00000060448201526064016102f2565b600183015160208290036101000a90046117828183611daf565b8851116117ca5760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b210292628103637b733903634b9ba1760511b60448201526064016102f2565b6117d5826001611daf565b96509450600193506117e692505050565b9193909250565b606060008267ffffffffffffffff81111561180a5761180a611b91565b6040519080825280601f01601f191660200182016040528015611834576020820181803683370190505b50905080516000036118475790506105b4565b8484016020820160005b85811015611869578281015182820152602001611851565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60606105df826119f8565b6060816118af81601f611daf565b10156118ee5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102f2565b826118f98382611daf565b10156119385760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016102f2565b6119428284611daf565b845110156119865760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016102f2565b6060821580156119a557604051915060008252602082016040526119ef565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156119de5780518352602092830192016119c6565b5050858452601f01601f1916604052505b50949350505050565b60606105df8260200151600084600001516117ed565b6001600160a01b038116811461065b57600080fd5b600060208284031215611a3557600080fd5b81356105dc81611a0e565b60008060408385031215611a5357600080fd5b8235611a5e81611a0e565b946020939093013593505050565b600080600080600060808688031215611a8457600080fd5b853594506020860135611a9681611a0e565b935060408601359250606086013567ffffffffffffffff80821115611aba57600080fd5b818801915088601f830112611ace57600080fd5b813581811115611add57600080fd5b896020828501011115611aef57600080fd5b9699959850939650602001949392505050565b600060208284031215611b1457600080fd5b5035919050565b80358015158114611b2b57600080fd5b919050565b600080600060608486031215611b4557600080fd5b8335925060208401359150611b5c60408501611b1b565b90509250925092565b60008060408385031215611b7857600080fd5b82359150611b8860208401611b1b565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611bca57611bca611b91565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611bf957611bf9611b91565b604052919050565b60006020808385031215611c1457600080fd5b823567ffffffffffffffff80821115611c2c57600080fd5b9084019060408287031215611c4057600080fd5b611c48611ba7565b82358281168114611c5857600080fd5b81528284013582811115611c6b57600080fd5b80840193505086601f840112611c8057600080fd5b823582811115611c9257611c92611b91565b611ca4601f8201601f19168601611bd0565b92508083528785828601011115611cba57600080fd5b8085850186850137600090830185015292830152509392505050565b600060208284031215611ce857600080fd5b5051919050565b600060208284031215611d0157600080fd5b81516105dc81611a0e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156105df576105df611d57565b634e487b7160e01b600052603260045260246000fd5b600060018201611da857611da8611d57565b5060010190565b808201808211156105df576105df611d57565b60ff81811683821601908111156105df576105df611d57565b600060ff831680611dfc57634e487b7160e01b600052601260045260246000fd5b8060ff84160691505092915050565b60ff82811682821603908111156105df576105df611d57565b634e487b7160e01b600052602160045260246000fd5b80820281158282048414176105df576105df611d5756fea2646970667358221220c8e5d2f03cdfd05271211f91051ea017cc78712d374c157f61c7f6293b421c5864736f6c63430008140033", + "balance": "0x0" + }, + "0x1000777700000000000000000000000000000007": { + "contractName": "SignalServiceProxy", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000019b4f9c381c7927fe33d853e48b560141a380c44", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001000777700000000000000000000000000000006", + "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x113cE23c9e0cc50F4D41d7cE6DA02dCAFf8BFF85", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0000777700000000000000000000000000000007" + }, + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106b3565b610118565b61005b6100933660046106ce565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106b3565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107c560279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b6060600080856001600160a01b0316856040516105919190610775565b600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e2868383876105ec565b9695505050505050565b6060831561065b578251600003610654576001600160a01b0385163b6106545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102ba565b5081610665565b610665838361066d565b949350505050565b81511561067d5781518083602001fd5b8060405162461bcd60e51b81526004016102ba9190610791565b80356001600160a01b03811681146106ae57600080fd5b919050565b6000602082840312156106c557600080fd5b61043082610697565b6000806000604084860312156106e357600080fd5b6106ec84610697565b9250602084013567ffffffffffffffff8082111561070957600080fd5b818601915086601f83011261071d57600080fd5b81358181111561072c57600080fd5b87602082850101111561073e57600080fd5b6020830194508093505050509250925092565b60005b8381101561076c578181015183820152602001610754565b50506000910152565b60008251610787818460208701610751565b9190910192915050565b60208152600082518060208401526107b0816040850160208701610751565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122013e4be7fbb9448379ca283101ef1037ca99a17f6ad00269fe32f79bcefab6e1864736f6c63430008140033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000005": { + "contractName": "RegularERC20", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x526567756c617245524332300000000000000000000000000000000000000018", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x52474c0000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000000000000000003e8000", + "0xc4fd933fc30203af5f8bd19ad30e064c96642a369b9fc4288ea95569541f4034": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x967c153683def525608ec6efe0cac3319a9c97a6d4164fb43765c79311abffdc": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x4b9b777e5e3847acfd8740f275a6896b3f3a10ae36191d153fdb5ef40d61b6c1": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x9e7a5276a30d934c5fffd9ef18e4dcae10597352188cecf658522b6bf4d924d3": "0x00000000000000000000000000000000000000000000000000000000000fa000" + }, + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069c565b60405180910390f35b6100df6100da366004610706565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610730565b61024c565b604051601281526020016100c3565b6100df610131366004610706565b610270565b6100f361014436600461076c565b6001600160a01b031660009081526020819052604090205490565b6100b6610292565b6100df610175366004610706565b6102a1565b6100df610188366004610706565b610321565b6100f361019b36600461078e565b61032f565b6060600380546101af906107c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c1565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b60003361024081858561035a565b60019150505b92915050565b60003361025a85828561047e565b6102658585856104f8565b506001949350505050565b600033610240818585610283838361032f565b61028d91906107fb565b61035a565b6060600480546101af906107c1565b600033816102af828661032f565b9050838110156103145760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610265828686840361035a565b6000336102408185856104f8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103bc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161030b565b6001600160a01b03821661041d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161030b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061048a848461032f565b905060001981146104f257818110156104e55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161030b565b6104f2848484840361035a565b50505050565b6001600160a01b03831661055c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161030b565b6001600160a01b0382166105be5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161030b565b6001600160a01b038316600090815260208190526040902054818110156106365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161030b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f2565b600060208083528351808285015260005b818110156106c9578581018301518582016040015282016106ad565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461070157600080fd5b919050565b6000806040838503121561071957600080fd5b610722836106ea565b946020939093013593505050565b60008060006060848603121561074557600080fd5b61074e846106ea565b925061075c602085016106ea565b9150604084013590509250925092565b60006020828403121561077e57600080fd5b610787826106ea565b9392505050565b600080604083850312156107a157600080fd5b6107aa836106ea565b91506107b8602084016106ea565b90509250929050565b600181811c908216806107d557607f821691505b6020821081036107f557634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561024657634e487b7160e01b600052601160045260246000fdfea26469706673582212200c6a590d0220261e9ad2a153910ca40f21f69a425e5af92fee3a769ffc07753764736f6c63430008140033", + "balance": "0x0" + } +} diff --git a/crates/chainspec/res/genesis/taiko/katla.json b/crates/chainspec/res/genesis/taiko/katla.json new file mode 100644 index 000000000000..4622e8c45d5b --- /dev/null +++ b/crates/chainspec/res/genesis/taiko/katla.json @@ -0,0 +1,206 @@ +{ + "0x1D2D1bb9D180541E88a6a682aCf3f61c1605B190": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x39aF15916b41548f04D731079F283135B276652F": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x0167008000000000000000000000000000000006": { + "contractName": "SharedAddressManagerImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x6080604052600436106100a75760003560e01c8063715018a611610064578063715018a6146101b45780638456cb59146101c95780638da5cb5b146101de578063d8f4648f146101fc578063e1c7392a1461021c578063f2fde38b1461023157600080fd5b806328f713cc146100ac5780633659cfe6146101165780633f4ba83a146101385780634f1ef2861461014d57806352d1902d146101605780635c975abb14610183575b600080fd5b3480156100b857600080fd5b506100f96100c7366004610ce9565b67ffffffffffffffff91909116600090815260976020908152604080832093835292905220546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561012257600080fd5b50610136610131366004610d2a565b610251565b005b34801561014457600080fd5b50610136610339565b61013661015b366004610d5b565b6103b7565b34801561016c57600080fd5b50610175610487565b60405190815260200161010d565b34801561018f57600080fd5b506101a4606554610100900460ff1660021490565b604051901515815260200161010d565b3480156101c057600080fd5b5061013661053a565b3480156101d557600080fd5b5061013661054e565b3480156101ea57600080fd5b506033546001600160a01b03166100f9565b34801561020857600080fd5b50610136610217366004610e1d565b6105c7565b34801561022857600080fd5b50610136610654565b34801561023d57600080fd5b5061013661024c366004610d2a565b610764565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000000061630036102a25760405162461bcd60e51b815260040161029990610e59565b60405180910390fd5b7f00000000000000000000000001670080000000000000000000000000000000066001600160a01b03166102eb600080516020610fc9833981519152546001600160a01b031690565b6001600160a01b0316146103115760405162461bcd60e51b815260040161029990610ea5565b61031a816107da565b60408051600080825260208201909252610336918391906107e2565b50565b61034d606554610100900460ff1660021490565b61036a5760405163bae6e2a960e01b815260040160405180910390fd5b610372610952565b6065805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000000061630036103ff5760405162461bcd60e51b815260040161029990610e59565b7f00000000000000000000000001670080000000000000000000000000000000066001600160a01b0316610448600080516020610fc9833981519152546001600160a01b031690565b6001600160a01b03161461046e5760405162461bcd60e51b815260040161029990610ea5565b610477826107da565b610483828260016107e2565b5050565b6000306001600160a01b037f000000000000000000000000016700800000000000000000000000000000000616146105275760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610299565b50600080516020610fc983398151915290565b610542610952565b61054c60006109ac565b565b610562606554610100900460ff1660021490565b156105805760405163bae6e2a960e01b815260040160405180910390fd5b610588610952565b6065805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016103ad565b6105cf610952565b67ffffffffffffffff8316600081815260976020908152604080832086845282529182902080546001600160a01b038681166001600160a01b0319831681179093558451928352169181018290529092859290917f500dcd607a98daece9bccc2511bf6032471252929de73caf507aae0e082f8453910160405180910390a350505050565b600054610100900460ff16158080156106745750600054600160ff909116105b8061068e5750303b15801561068e575060005460ff166001145b6106f15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610299565b6000805460ff191660011790558015610714576000805461ff0019166101001790555b61071c6109fe565b8015610336576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b61076c610952565b6001600160a01b0381166107d15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610299565b610336816109ac565b610336610952565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561081a5761081583610a17565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610874575060408051601f3d908101601f1916820190925261087191810190610ef1565b60015b6108d75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610299565b600080516020610fc983398151915281146109465760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610299565b50610815838383610ab3565b6033546001600160a01b0316331461054c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610299565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610a06610ade565b6065805461ffff1916610101179055565b6001600160a01b0381163b610a845760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610299565b600080516020610fc983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610abc83610b0d565b600082511180610ac95750805b1561081557610ad88383610b4d565b50505050565b600054610100900460ff16610b055760405162461bcd60e51b815260040161029990610f0a565b61054c610b79565b610b1681610a17565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610b728383604051806060016040528060278152602001610fe960279139610ba9565b9392505050565b600054610100900460ff16610ba05760405162461bcd60e51b815260040161029990610f0a565b61054c336109ac565b6060600080856001600160a01b031685604051610bc69190610f79565b600060405180830381855af49150503d8060008114610c01576040519150601f19603f3d011682016040523d82523d6000602084013e610c06565b606091505b5091509150610c1786838387610c21565b9695505050505050565b60608315610c90578251600003610c89576001600160a01b0385163b610c895760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610299565b5081610c9a565b610c9a8383610ca2565b949350505050565b815115610cb25781518083602001fd5b8060405162461bcd60e51b81526004016102999190610f95565b803567ffffffffffffffff81168114610ce457600080fd5b919050565b60008060408385031215610cfc57600080fd5b610d0583610ccc565b946020939093013593505050565b80356001600160a01b0381168114610ce457600080fd5b600060208284031215610d3c57600080fd5b610b7282610d13565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610d6e57600080fd5b610d7783610d13565b9150602083013567ffffffffffffffff80821115610d9457600080fd5b818501915085601f830112610da857600080fd5b813581811115610dba57610dba610d45565b604051601f8201601f19908116603f01168101908382118183101715610de257610de2610d45565b81604052828152886020848701011115610dfb57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600060608486031215610e3257600080fd5b610e3b84610ccc565b925060208401359150610e5060408501610d13565b90509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215610f0357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b83811015610f70578181015183820152602001610f58565b50506000910152565b60008251610f8b818460208701610f55565b9190910192915050565b6020815260008251806020840152610fb4816040850160208701610f55565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204e2030d9883d08dca7ecdc1d78b36ee54b3130abcb1c45646b02f76d950ff54a64736f6c63430008140033", + "balance": "0x0" + }, + "0x1670080000000000000000000000000000000006": { + "contractName": "SharedAddressManager", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0xcffa903d987c324286ac7635484e4c4cfab2b3bddddb45773db47593d56d5616": "0x0000000000000000000000001670080000000000000000000000000000000001", + "0x69945f7fb90fd606de42db577551f6eb68877935d99314a2706f3cbe614d714d": "0x0000000000000000000000001670080000000000000000000000000000000002", + "0x0e20b25daa3a523d27c8749dd04006a44414b4569e0b5639cc8bc2cbc8d143ec": "0x0000000000000000000000001670080000000000000000000000000000000003", + "0xc8e904a2a894d2e5590835bec6cb78755de7e546a44a4bede5bccee5641e227e": "0x0000000000000000000000001670080000000000000000000000000000000004", + "0x72cf3566ee7eea8d37039862c9f5956b8622ca74729c83890cfd90fc8645bdcc": "0x0000000000000000000000001670080000000000000000000000000000000005", + "0xdcd7088979e9e1e0b5e55f2c5e67cc79f77b5ff5fc73719c45425ee4ef73911c": "0x0000000000000000000000000167008000000000000000000000000000010096", + "0xd8a967abc0370c9bc69725e8b0433ed844d6abb7e639863dbfb50f4eb3b0a7a6": "0x0000000000000000000000000167008000000000000000000000000000010097", + "0x4ebdc5a0aa6a37034598482e87dac4dbac06e9e750c7c9b4b0606b27f5196be3": "0x0000000000000000000000000167008000000000000000000000000000010098", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167008000000000000000000000000000000006" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122086939faa9cc2f3fe1410043eff38cc933fdbaa97744a116ffa0de4487915f87464736f6c63430008140033", + "balance": "0x0" + }, + "0x0167008000000000000000000000000000000001": { + "contractName": "BridgeImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x6080604052600436106101855760003560e01c80635c975abb116100d15780638da5cb5b1161008a578063a86f9d9e11610064578063a86f9d9e146104a5578063d0496d6a146104c5578063eefbf17e1461050e578063f2fde38b1461054657600080fd5b80638da5cb5b146104285780638e3881a914610446578063a24f721b1461048557600080fd5b80635c975abb1461037d57806360ecbdfd1461039e578063625e5b7f146103be578063715018a6146103de578063783f8c93146103f35780638456cb591461041357600080fd5b80633c6cf4731161013e57806348c095391161011857806348c09539146102e75780634f1ef286146103155780634f5f97721461032857806352d1902d1461036857600080fd5b80633c6cf473146102755780633eb6b8cf146102b25780633f4ba83a146102d257600080fd5b8063013824081461019157806319ab453c146101b35780631a92e520146101d357806333bcd0cc146101f35780633659cfe61461021d5780633ab76e9f1461023d57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101b16101ac3660046124f4565b610566565b005b3480156101bf57600080fd5b506101b16101ce3660046125af565b61089e565b3480156101df57600080fd5b506101b16101ee3660046124f4565b6109b6565b6102066102013660046125cc565b610d7a565b60405161021492919061275a565b60405180910390f35b34801561022957600080fd5b506101b16102383660046125af565b611062565b34801561024957600080fd5b5060975461025d906001600160a01b031681565b6040516001600160a01b039091168152602001610214565b34801561028157600080fd5b506102a5610290366004612773565b60fd6020526000908152604090205460ff1681565b60405161021491906127a2565b3480156102be57600080fd5b5061025d6102cd3660046127ef565b611141565b3480156102de57600080fd5b506101b1611158565b3480156102f357600080fd5b50610307610302366004612a1c565b6111d6565b604051908152602001610214565b6101b1610323366004612a50565b611206565b34801561033457600080fd5b50610358610343366004612773565b60fc6020526000908152604090205460ff1681565b6040519015158152602001610214565b34801561037457600080fd5b506103076112d2565b34801561038957600080fd5b50610358606554610100900460ff1660021490565b3480156103aa57600080fd5b506103586103b93660046125cc565b611385565b3480156103ca57600080fd5b506103586103d93660046124f4565b611458565b3480156103ea57600080fd5b506101b16114cc565b3480156103ff57600080fd5b5061035861040e3660046124f4565b6114e0565b34801561041f57600080fd5b506101b1611544565b34801561043457600080fd5b506033546001600160a01b031661025d565b34801561045257600080fd5b50610466610461366004612a9f565b6115bd565b6040805192151583526001600160a01b03909116602083015201610214565b34801561049157600080fd5b506101b16104a0366004612aba565b6115ea565b3480156104b157600080fd5b5061025d6104c0366004612b0b565b6117ad565b3480156104d157600080fd5b506104da6117ba565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610214565b34801561051a57600080fd5b5060fb5461052e906001600160801b031681565b6040516001600160801b039091168152602001610214565b34801561055257600080fd5b506101b16105613660046125af565b611843565b60655460ff166001190161058d5760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff191660021790556105ae606554610100900460ff1660021490565b156105cc5760405163bae6e2a960e01b815260040160405180910390fd5b6105dc6080840160608501612a9f565b46816001600160401b03161461060557604051631c6c777560e31b815260040160405180910390fd5b610120840135158015610639575061062360a08501608086016125af565b6001600160a01b0316336001600160a01b031614155b15610657576040516372b6e1c360e11b815260040160405180910390fd5b600061066561030286612b30565b905060008082815260fd602052604090205460ff16600381111561068b5761068b61278c565b146106a957604051630cfafbf960e01b815260040160405180910390fd5b60006106c76d7369676e616c5f7365727669636560901b60006117ad565b90506106e581836106de60608a0160408b01612a9f565b88886118b9565b61070257604051635ea5ecc760e01b815260040160405180910390fd5b6000808061071660c08a0160a08b016125af565b6001600160a01b0316148061074257503061073760c08a0160a08b016125af565b6001600160a01b0316145b8061076d57506001600160a01b03831661076260c08a0160a08b016125af565b6001600160a01b0316145b1561078157506002905060e08701356107da565b600061079360a08a0160808b016125af565b6001600160a01b0316336001600160a01b0316146107b6578861012001356107b8565b5a5b90506107c589868361194e565b156107d357600292506107d8565b600192505b505b6107e5838584611af1565b6000806107f860e08b0160c08c016125af565b6001600160a01b03161461081b5761081660e08a0160c08b016125af565b61082b565b61082b60a08a0160808b016125af565b90506001600160a01b03811633036108645761085f61084f836101008c0135612b52565b6001600160a01b03831690611c25565b610886565b610873336101008b0135611c25565b6108866001600160a01b03821683611c25565b50506065805460ff1916600117905550505050505050565b600054610100900460ff16158080156108be5750600054600160ff909116105b806108d85750303b1580156108d8575060005460ff166001145b6109405760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610963576000805461ff0019166101001790555b61096c82611c30565b80156109b2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60655460ff16600119016109dd5760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff191660021790556109fe606554610100900460ff1660021490565b15610a1c5760405163bae6e2a960e01b815260040160405180910390fd5b610a2c6060840160408501612a9f565b46816001600160401b031614610a5557604051631c6c777560e31b815260040160405180910390fd5b6000610a6361030286612b30565b600081815260fc602052604090205490915060ff1615610a9657604051638759835d60e01b815260040160405180910390fd5b6000610ab46d7369676e616c5f7365727669636560901b60006117ad565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015610b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b269190612b65565b610b435760405163ab035ad560e01b815260040160405180910390fd5b6000610b648260038518610b5d60808b0160608c01612a9f565b89896118b9565b905080610b845760405163f149234f60e01b815260040160405180910390fd5b600083815260fc60209081526040808320805460ff19166001179055610bcb91630187134360e71b91610bbc91908c01908c016125af565b6001600160a01b031690611c41565b90508015610d11576040518060600160405280858152602001306001600160a01b03168152602001896040016020810190610c069190612a9f565b6001600160401b03908116909152815160fe5560208083015160ff8054604095860151909416600160a01b026001600160e01b03199094166001600160a01b039092169190911792909217909155610c62918a01908a016125af565b6001600160a01b031663c389a1808960e001358a876040518463ffffffff1660e01b8152600401610c94929190612bf7565b6000604051808303818588803b158015610cad57600080fd5b505af1158015610cc1573d6000803e3d6000fd5b5050604080516060810182526000198082526001600160a01b0360208301526001600160401b03919092015260fe55505060ff80546001600160e01b0319166001600160e01b0317905550610d38565b610d3860e0890135610d2960a08b0160808c016125af565b6001600160a01b031690611c25565b60405184907fc6fbc1fa0145a394c9c414b2ae7bd634eb50dd888938bcd75692ae427b680fa290600090a250506065805460ff19166001179055505050505050565b604080516101808101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820181905261016082015260655460ff1660011901610e005760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff19166002179055610e21606554610100900460ff1660021490565b15610e3f5760405163bae6e2a960e01b815260040160405180910390fd5b6000610e5160a08501608086016125af565b6001600160a01b031603610e7857604051633c4f94dd60e11b815260040160405180910390fd5b6000610e8d6104616080860160608701612a9f565b50905080610eae57604051631c6c777560e31b815260040160405180910390fd5b46610ebf6080860160608701612a9f565b6001600160401b031603610ee657604051631c6c777560e31b815260040160405180910390fd5b6000610efb61010086013560e0870135612b52565b9050348114610f1d57604051634ac2abdf60e11b815260040160405180910390fd5b610f2685612b30565b60fb80549194506001600160801b03909116906000610f4483612d46565b82546101009290920a6001600160801b03818102199093169183160217909155168352336020840152466001600160401b03166040840152610f85836111d6565b9350610fa36d7369676e616c5f7365727669636560901b60006117ad565b6001600160a01b03166366ca2bc0856040518263ffffffff1660e01b8152600401610fd091815260200190565b6020604051808303816000875af1158015610fef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110139190612d6c565b50837f3406baf0dfd13f7f0ce1d077c461a35b763927e1438d49749442de2eb42148ba846040516110449190612d85565b60405180910390a250506065805460ff191660011790559092909150565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000000011630036110aa5760405162461bcd60e51b815260040161093790612d98565b7f00000000000000000000000001670080000000000000000000000000000000016001600160a01b03166110f3600080516020612fcf833981519152546001600160a01b031690565b6001600160a01b0316146111195760405162461bcd60e51b815260040161093790612de4565b61112281611cd0565b6040805160008082526020820190925261113e91839190611cd8565b50565b600061114e848484611e43565b90505b9392505050565b61116c606554610100900460ff1660021490565b6111895760405163bae6e2a960e01b815260040160405180910390fd5b611191611f2c565b6065805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6000816040516020016111e99190612e30565b604051602081830303815290604052805190602001209050919050565b6001600160a01b037f000000000000000000000000016700800000000000000000000000000000000116300361124e5760405162461bcd60e51b815260040161093790612d98565b7f00000000000000000000000001670080000000000000000000000000000000016001600160a01b0316611297600080516020612fcf833981519152546001600160a01b031690565b6001600160a01b0316146112bd5760405162461bcd60e51b815260040161093790612de4565b6112c682611cd0565b6109b282826001611cd8565b6000306001600160a01b037f000000000000000000000000016700800000000000000000000000000000000116146113725760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610937565b50600080516020612fcf83398151915290565b6000466113986060840160408501612a9f565b6001600160401b0316146113ae57506000919050565b6113ca6d7369676e616c5f7365727669636560901b60006117ad565b6001600160a01b03166332676bc6306113e561030286612b30565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa15801561142e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114529190612b65565b92915050565b60004661146b6060860160408701612a9f565b6001600160401b03161461148157506000611151565b61114e6114a06d7369676e616c5f7365727669636560901b60006117ad565b6114b56114af61030288612b30565b60031890565b6114c56080880160608901612a9f565b86866118b9565b6114d4611f2c565b6114de6000611f86565b565b6000466114f36080860160608701612a9f565b6001600160401b03161461150957506000611151565b61114e6115286d7369676e616c5f7365727669636560901b60006117ad565b61153461030287612b30565b6114c56060880160408901612a9f565b611558606554610100900460ff1660021490565b156115765760405163bae6e2a960e01b815260040160405180910390fd5b61157e611f2c565b6065805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016111cc565b6000806115d5836562726964676560d01b6001611141565b6001600160a01b038116151594909350915050565b60655460ff16600119016116115760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff19166002179055611632606554610100900460ff1660021490565b156116505760405163bae6e2a960e01b815260040160405180910390fd5b6116606080830160608401612a9f565b46816001600160401b03161461168957604051631c6c777560e31b815260040160405180910390fd5b61012083013515806116985750815b156116de576116ad60a08401608085016125af565b6001600160a01b0316336001600160a01b0316146116de576040516372b6e1c360e11b815260040160405180910390fd5b60006116ec61030285612b30565b90506001600082815260fd602052604090205460ff1660038111156117135761171361278c565b1461173157604051636e10a9f360e01b815260040160405180910390fd5b61173c84825a61194e565b1561176d576117686117606d7369676e616c5f7365727669636560901b60006117ad565b826002611af1565b61179a565b821561179a5761179a6117926d7369676e616c5f7365727669636560901b60006117ad565b826003611af1565b50506065805460ff191660011790555050565b6000611151468484611e43565b604080516060810182526000808252602082018190529181019190915260fe5460001914806117e9575060fe54155b1561180757604051635ceed17360e01b815260040160405180910390fd5b506040805160608101825260fe54815260ff546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b61184b611f2c565b6001600160a01b0381166118b05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610937565b61113e81611f86565b6000856001600160a01b031663910af6ed856118e0876562726964676560d01b6000611141565b8887876040518663ffffffff1660e01b8152600401611903959493929190612e67565b602060405180830381865afa158015611920573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119449190612b65565b9695505050505050565b600081600003611971576040516308c2ad5360e01b815260040160405180910390fd5b3061198260408601602087016125af565b6001600160a01b03160361199857611998612ea9565b60405180606001604052808481526020018560200160208101906119bc91906125af565b6001600160a01b031681526020016119da6060870160408801612a9f565b6001600160401b03908116909152815160fe55602082015160ff8054604090940151909216600160a01b026001600160e01b03199093166001600160a01b0390911617919091179055611a3360c0850160a086016125af565b6001600160a01b03168260e0860135611a50610140880188612ebf565b604051611a5e929190612f05565b600060405180830381858888f193505050503d8060008114611a9c576040519150601f19603f3d011682016040523d82523d6000602084013e611aa1565b606091505b5050604080516060810182526000198082526001600160a01b0360208301526001600160401b03919092015260fe5560ff80546001600160e01b0319166001600160e01b03179055949350505050565b806003811115611b0357611b0361278c565b600083815260fd602052604090205460ff166003811115611b2657611b2661278c565b03611b3057505050565b600082815260fd60205260409020805482919060ff19166001836003811115611b5b57611b5b61278c565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b257563482604051611b9091906127a2565b60405180910390a26003816003811115611bac57611bac61278c565b03611c205760405163019b28af60e61b81526003831860048201526001600160a01b038416906366ca2bc0906024016020604051808303816000875af1158015611bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1e9190612d6c565b505b505050565b6109b282825a611fd8565b611c38612076565b61113e8161208f565b60006001600160a01b0383163b611c5a57506000611452565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015611cc4575060408051601f3d908101601f19168201909252611cc191810190612b65565b60015b15611452579392505050565b61113e611f2c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611d0b57611c20836120d8565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611d65575060408051601f3d908101601f19168201909252611d6291810190612d6c565b60015b611dc85760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610937565b600080516020612fcf8339815191528114611e375760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610937565b50611c20838383612174565b6097546000906001600160a01b0316611e6f57604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015611ec7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eeb9190612f15565b905081158015611f0257506001600160a01b038116155b156111515783611f1184612199565b604051630d69e23960e41b8152600401610937929190612f32565b6033546001600160a01b031633146114de5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610937565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316611fff57604051634c67134d60e11b815260040160405180910390fd5b6000836001600160a01b0316838390604051600060405180830381858888f193505050503d806000811461204f576040519150601f19603f3d011682016040523d82523d6000602084013e612054565b606091505b5050905080611c1e57604051634c67134d60e11b815260040160405180910390fd5b61207e61222b565b6065805461ffff1916610101179055565b6001600160401b0346106120b65760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381163b6121455760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610937565b600080516020612fcf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61217d8361225a565b60008251118061218a5750805b15611c2057611c1e838361229a565b606060006121a6836122bf565b60010190506000816001600160401b038111156121c5576121c561282f565b6040519080825280601f01601f1916602001820160405280156121ef576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846121f957509392505050565b600054610100900460ff166122525760405162461bcd60e51b815260040161093790612f54565b6114de612397565b612263816120d8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606111518383604051806060016040528060278152602001612fef602791396123c7565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106122fe5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061232a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061234857662386f26fc10000830492506010015b6305f5e1008310612360576305f5e100830492506008015b612710831061237457612710830492506004015b60648310612386576064830492506002015b600a83106114525760010192915050565b600054610100900460ff166123be5760405162461bcd60e51b815260040161093790612f54565b6114de33611f86565b6060600080856001600160a01b0316856040516123e49190612f9f565b600060405180830381855af49150503d806000811461241f576040519150601f19603f3d011682016040523d82523d6000602084013e612424565b606091505b5091509150611944868383876060831561249f578251600003612498576001600160a01b0385163b6124985760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610937565b50816124a9565b6124a983836124b1565b949350505050565b8151156124c15781518083602001fd5b8060405162461bcd60e51b81526004016109379190612fbb565b600061018082840312156124ee57600080fd5b50919050565b60008060006040848603121561250957600080fd5b83356001600160401b038082111561252057600080fd5b61252c878388016124db565b9450602086013591508082111561254257600080fd5b818601915086601f83011261255657600080fd5b81358181111561256557600080fd5b87602082850101111561257757600080fd5b6020830194508093505050509250925092565b6001600160a01b038116811461113e57600080fd5b80356125aa8161258a565b919050565b6000602082840312156125c157600080fd5b81356111518161258a565b6000602082840312156125de57600080fd5b81356001600160401b038111156125f457600080fd5b6124a9848285016124db565b60005b8381101561261b578181015183820152602001612603565b50506000910152565b6000815180845261263c816020860160208601612600565b601f01601f19169290920160200192915050565b80516001600160801b031682526000610180602083015161267c60208601826001600160a01b03169052565b50604083015161269760408601826001600160401b03169052565b5060608301516126b260608601826001600160401b03169052565b5060808301516126cd60808601826001600160a01b03169052565b5060a08301516126e860a08601826001600160a01b03169052565b5060c083015161270360c08601826001600160a01b03169052565b5060e083015160e085015261010080840151818601525061012080840151818601525061014080840151828287015261273e83870182612624565b9250505061016080840151858303828701526119448382612624565b82815260406020820152600061114e6040830184612650565b60006020828403121561278557600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60208101600483106127c457634e487b7160e01b600052602160045260246000fd5b91905290565b80356001600160401b03811681146125aa57600080fd5b801515811461113e57600080fd5b60008060006060848603121561280457600080fd5b61280d846127ca565b9250602084013591506040840135612824816127e1565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156128685761286861282f565b60405290565b80356001600160801b03811681146125aa57600080fd5b600082601f83011261289657600080fd5b81356001600160401b03808211156128b0576128b061282f565b604051601f8301601f19908116603f011681019082821181831017156128d8576128d861282f565b816040528381528660208588010111156128f157600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000610180828403121561292457600080fd5b61292c612845565b90506129378261286e565b81526129456020830161259f565b6020820152612956604083016127ca565b6040820152612967606083016127ca565b60608201526129786080830161259f565b608082015261298960a0830161259f565b60a082015261299a60c0830161259f565b60c082015260e0828101359082015261010080830135908201526101208083013590820152610140808301356001600160401b03808211156129db57600080fd5b6129e786838701612885565b83850152610160925082850135915080821115612a0357600080fd5b50612a1085828601612885565b82840152505092915050565b600060208284031215612a2e57600080fd5b81356001600160401b03811115612a4457600080fd5b6124a984828501612911565b60008060408385031215612a6357600080fd5b8235612a6e8161258a565b915060208301356001600160401b03811115612a8957600080fd5b612a9585828601612885565b9150509250929050565b600060208284031215612ab157600080fd5b611151826127ca565b60008060408385031215612acd57600080fd5b82356001600160401b03811115612ae357600080fd5b612aef858286016124db565b9250506020830135612b00816127e1565b809150509250929050565b60008060408385031215612b1e57600080fd5b823591506020830135612b00816127e1565b60006114523683612911565b634e487b7160e01b600052601160045260246000fd5b8082018082111561145257611452612b3c565b600060208284031215612b7757600080fd5b8151611151816127e1565b6000808335601e19843603018112612b9957600080fd5b83016020810192503590506001600160401b03811115612bb857600080fd5b803603821315612bc757600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152612c1860408201612c0b8561286e565b6001600160801b03169052565b6000612c266020850161259f565b6001600160a01b03166060830152612c40604085016127ca565b6001600160401b03166080830152612c5a606085016127ca565b6001600160401b031660a0830152612c746080850161259f565b6001600160a01b031660c0830152612c8e60a0850161259f565b6001600160a01b031660e0830152612ca860c0850161259f565b610100612cbf818501836001600160a01b03169052565b610120915060e086013582850152610140818701358186015261016091508287013582860152612cf181880188612b82565b6101808781015293509050612d0b6101c086018483612bce565b925050612d1a81870187612b82565b858403603f19016101a08701529150612d34838383612bce565b93505050508260208301529392505050565b60006001600160801b03808316818103612d6257612d62612b3c565b6001019392505050565b600060208284031215612d7e57600080fd5b5051919050565b6020815260006111516020830184612650565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60408152600d60408201526c5441494b4f5f4d45535341474560981b60608201526080602082015260006111516080830184612650565b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201526000612e9e608083018486612bce565b979650505050505050565b634e487b7160e01b600052600160045260246000fd5b6000808335601e19843603018112612ed657600080fd5b8301803591506001600160401b03821115612ef057600080fd5b602001915036819003821315612bc757600080fd5b8183823760009101908152919050565b600060208284031215612f2757600080fd5b81516111518161258a565b6001600160401b038316815260406020820152600061114e6040830184612624565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251612fb1818460208701612600565b9190910192915050565b602081526000611151602083018461262456fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e892cdceae8d4b60780b9127de196345c4092abe37dfdd4712cf041b1bee238f64736f6c63430008140033", + "balance": "0x0" + }, + "0x1670080000000000000000000000000000000001": { + "contractName": "Bridge", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670080000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167008000000000000000000000000000000001" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122086939faa9cc2f3fe1410043eff38cc933fdbaa97744a116ffa0de4487915f87464736f6c63430008140033", + "balance": "0x033b2dcd9a1ae301c8000000" + }, + "0x0167008000000000000000000000000000000002": { + "contractName": "ERC20VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x6080604052600436106200014f5760003560e01c80635c975abb11620000b95780638da5cb5b11620000785780638da5cb5b14620003b85780639aa8605c14620003d8578063a86f9d9e1462000410578063c389a1801462000435578063caec3e4e146200044c578063f2fde38b146200048057600080fd5b80635c975abb14620002fa57806367090ccf146200031d578063715018a61462000362578063755fc20c146200037a5780638456cb5914620003a057600080fd5b80633659cfe611620001125780633659cfe614620002475780633ab76e9f146200026c5780633eb6b8cf146200028e5780633f4ba83a14620002b35780634f1ef28614620002cb57806352d1902d14620002e257600080fd5b806301ffc9a7146200015457806306fdde03146200019e5780630ecd8be914620001cb57806319ab453c1462000209578063240f6a5f1462000230575b600080fd5b3480156200016157600080fd5b506200018962000173366004620031e0565b6001600160e01b031916630187134360e71b1490565b60405190151581526020015b60405180910390f35b348015620001ab57600080fd5b506a195c98cc8c17dd985d5b1d60aa1b5b60405190815260200162000195565b348015620001d857600080fd5b50620001f0620001ea3660046200323b565b620004a5565b6040516001600160a01b03909116815260200162000195565b3480156200021657600080fd5b506200022e6200022836600462003292565b62000b92565b005b6200022e62000241366004620032b2565b62000cb2565b3480156200025457600080fd5b506200022e6200026636600462003292565b62000ead565b3480156200027957600080fd5b50609754620001f0906001600160a01b031681565b3480156200029b57600080fd5b50620001f0620002ad36600462003348565b62000f98565b348015620002c057600080fd5b506200022e62000fb1565b6200022e620002dc36600462003496565b62001033565b348015620002ef57600080fd5b50620001bc6200110b565b3480156200030757600080fd5b5062000189606554610100900460ff1660021490565b3480156200032a57600080fd5b50620001f06200033c36600462003500565b60fc6020908152600092835260408084209091529082529020546001600160a01b031681565b3480156200036f57600080fd5b506200022e620011c2565b620003916200038b36600462003528565b620011da565b604051620001959190620035ba565b348015620003ad57600080fd5b506200022e62001584565b348015620003c557600080fd5b506033546001600160a01b0316620001f0565b348015620003e557600080fd5b50620003fd620003f736600462003292565b62001602565b60405162000195959493929190620036c2565b3480156200041d57600080fd5b50620001f06200042f36600462003720565b6200176b565b6200022e6200044636600462003748565b62001783565b3480156200045957600080fd5b50620001896200046b36600462003292565b60fd6020526000908152604090205460ff1681565b3480156200048d57600080fd5b506200022e6200049f36600462003292565b620019e2565b60655460009060ff1660011901620004d05760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff19166002179055620004f2606554610100900460ff1660021490565b15620005115760405163bae6e2a960e01b815260040160405180910390fd5b6200051b62001a5e565b6001600160a01b03821615806200055257506001600160a01b03828116600090815260fb6020526040902054600160401b90041615155b15620005715760405163dc63f98760e01b815260040160405180910390fd5b6001600160a01b038216600090815260fd602052604090205460ff1615620005ac576040516375c42fc160e01b815260040160405180910390fd5b6033546001600160a01b03166001600160a01b0316826001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000600573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006269190620037a2565b6001600160a01b0316146200064e5760405163c0507c1760e01b815260040160405180910390fd5b60fc6000620006616020860186620037c2565b6001600160401b0316815260200190815260200160002060008460200160208101906200068f919062003292565b6001600160a01b039081168252602082019290925260400160002054169050801562000a2a576001600160a01b03818116600090815260fb60209081526040808320815160a08101835281546001600160401b0381168252600160401b810490961693810193909352600160e01b90940460ff1690820152600183018054929391926060840191906200072290620037e2565b80601f01602080910402602001604051908101604052809291908181526020018280546200075090620037e2565b8015620007a15780601f106200077557610100808354040283529160200191620007a1565b820191906000526020600020905b8154815290600101906020018083116200078357829003601f168201915b50505050508152602001600282018054620007bc90620037e2565b80601f0160208091040260200160405190810160405280929190818152602001828054620007ea90620037e2565b80156200083b5780601f106200080f576101008083540402835291602001916200083b565b820191906000526020600020905b8154815290600101906020018083116200081d57829003601f168201915b50505050508152505090508360400160208101906200085b919062003835565b60ff16816040015160ff16141580620008a557506200087e606085018562003855565b6040516200088e929190620038a5565b604051809103902081606001518051906020012014155b80620008e25750620008bb608085018562003855565b604051620008cb929190620038a5565b604051809103902081608001518051906020012014155b156200090157604051632f9d1d7b60e11b815260040160405180910390fd5b6001600160a01b038216600090815260fb6020526040812080546001600160e81b031916815590620009376001830182620030dc565b62000947600283016000620030dc565b50506001600160a01b03828116600081815260fd6020526040808220805460ff191660011790555163b8f2e0c560e01b8152928616600484015260248301529063b8f2e0c590604401600060405180830381600087803b158015620009ab57600080fd5b505af1158015620009c0573d6000803e3d6000fd5b505060405163b8f2e0c560e01b81526001600160a01b038581166004830152600160248301528616925063b8f2e0c59150604401600060405180830381600087803b15801562000a0f57600080fd5b505af115801562000a24573d6000803e3d6000fd5b50505050505b6001600160a01b038216600090815260fb60205260409020839062000a508282620039d4565b5082905060fc600062000a676020870187620037c2565b6001600160401b03168152602001908152602001600020600085602001602081019062000a95919062003292565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082602001602081019062000aee919062003292565b6001600160a01b031662000b066020850185620037c2565b6001600160401b03167f031d68e1805917560c34a5f55a7dd91bef98f911190ed02cdbb53caedae6c39d838562000b41606089018962003855565b62000b5060808b018b62003855565b62000b6260608d0160408e0162003835565b60405162000b77979695949392919062003ad0565b60405180910390a36065805460ff1916600117905592915050565b600054610100900460ff161580801562000bb35750600054600160ff909116105b8062000bcf5750303b15801562000bcf575060005460ff166001145b62000c385760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000c5c576000805461ff0019166101001790555b62000c678262001aba565b801562000cae576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60655460ff166001190162000cda5760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff1916600217905562000cfc606554610100900460ff1660021490565b1562000d1b5760405163bae6e2a960e01b815260040160405180910390fd5b600062000d2762001acf565b905060006001600160a01b038416158062000d4a57506001600160a01b03841630145b62000d56578362000d58565b845b905060004662000d6c6020890189620037c2565b6001600160401b03160362000dab5762000d8d604088016020890162003292565b905062000da56001600160a01b038216838662001bf9565b62000e1f565b62000db68762001c63565b6040516340c10f1960e01b81526001600160a01b03848116600483015260248201879052919250908216906340c10f1990604401600060405180830381600087803b15801562000e0557600080fd5b505af115801562000e1a573d6000803e3d6000fd5b505050505b62000e346001600160a01b0383163462001cdd565b825160408085015181516001600160401b0390911681526001600160a01b0384811660208301529181018790528188169291891691907fc8d296a7a3ffa2fb1e316d8c6cbaf5f7ea5e12f11abd76e61f47d2dfa12bb4679060600160405180910390a450506065805460ff191660011790555050505050565b6001600160a01b037f000000000000000000000000016700800000000000000000000000000000000216300362000ef85760405162461bcd60e51b815260040162000c2f9062003b2c565b7f00000000000000000000000001670080000000000000000000000000000000026001600160a01b031662000f436000805160206200472b833981519152546001600160a01b031690565b6001600160a01b03161462000f6c5760405162461bcd60e51b815260040162000c2f9062003b78565b62000f778162001cea565b6040805160008082526020820190925262000f959183919062001cf4565b50565b600062000fa784848462001e6c565b90505b9392505050565b62000fc6606554610100900460ff1660021490565b62000fe45760405163bae6e2a960e01b815260040160405180910390fd5b62000fee62001a5e565b6065805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000000021630036200107e5760405162461bcd60e51b815260040162000c2f9062003b2c565b7f00000000000000000000000001670080000000000000000000000000000000026001600160a01b0316620010c96000805160206200472b833981519152546001600160a01b031690565b6001600160a01b031614620010f25760405162461bcd60e51b815260040162000c2f9062003b78565b620010fd8262001cea565b62000cae8282600162001cf4565b6000306001600160a01b037f00000000000000000000000001670080000000000000000000000000000000021614620011ad5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000c2f565b506000805160206200472b8339815191525b90565b620011cc62001a5e565b620011d8600062001f5f565b565b620011e46200311b565b60655460ff16600119016200120c5760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff191660021790556200122e606554610100900460ff1660021490565b156200124d5760405163bae6e2a960e01b815260040160405180910390fd5b81606001356000036200127357604051634299323b60e11b815260040160405180910390fd5b600062001287606084016040850162003292565b6001600160a01b031603620012af576040516303f8a7d360e01b815260040160405180910390fd5b60fd6000620012c5606085016040860162003292565b6001600160a01b0316815260208101919091526040016000205460ff161562001301576040516375c42fc160e01b815260040160405180910390fd5b60006200130d6200311b565b620013413362001324606087016040880162003292565b62001336604088016020890162003292565b876060013562001fb1565b61014083019190915291506200135b6020850185620037c2565b6001600160401b031660608201523360808201526200139a620013826020860186620037c2565b6a195c98cc8c17dd985d5b1d60aa1b5b600062000f98565b6001600160a01b031660a0808301919091526080850135610120830152620013c6908501353462003bc4565b60e08083019190915260a0850135610100830152620013eb90850160c0860162003292565b6001600160a01b031660c08201526200140860e085018562003855565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250610160860194909452506200145b91506562726964676560d01b9050826200176b565b6001600160a01b03166333bcd0cc34846040518363ffffffff1660e01b8152600401620014899190620035ba565b60006040518083038185885af1158015620014a8573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052620014d3919081019062003c57565b94509050620014e9604086016020870162003292565b60808501516001600160a01b039182169116827fd2934b7e737b6465ee52ffdc702435c483343c4354cafc7f296e05e890358e486200152c60208a018a620037c2565b6200153e60608b0160408c0162003292565b604080516001600160401b0390931683526001600160a01b039091166020830152810188905260600160405180910390a450506065805460ff1916600117905550919050565b62001599606554610100900460ff1660021490565b15620015b85760405163bae6e2a960e01b815260040160405180910390fd5b620015c262001a5e565b6065805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200162001029565b60fb60205260009081526040902080546001820180546001600160401b03831693600160401b84046001600160a01b031693600160e01b900460ff169290916200164c90620037e2565b80601f01602080910402602001604051908101604052809291908181526020018280546200167a90620037e2565b8015620016cb5780601f106200169f57610100808354040283529160200191620016cb565b820191906000526020600020905b815481529060010190602001808311620016ad57829003601f168201915b505050505090806002018054620016e290620037e2565b80601f01602080910402602001604051908101604052809291908181526020018280546200171090620037e2565b8015620017615780601f10620017355761010080835404028352916020019162001761565b820191906000526020600020905b8154815290600101906020018083116200174357829003601f168201915b5050505050905085565b60006200177a46848462001e6c565b90505b92915050565b60655460ff1660011901620017ab5760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff19166002179055620017cd606554610100900460ff1660021490565b15620017ec5760405163bae6e2a960e01b815260040160405180910390fd5b620017f6620024e4565b506000806200180a61014085018562003855565b6200181a91600490829062003da8565b81019062001829919062003e04565b919450909250506001600160a01b03831690506200185a576040516303f8a7d360e01b815260040160405180910390fd5b80156200193a576001600160a01b03828116600090815260fb6020526040902054600160401b9004161562001912576001600160a01b0382166340c10f19620018aa60a087016080880162003292565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015620018f357600080fd5b505af115801562001908573d6000803e3d6000fd5b505050506200193a565b6200193a6200192860a086016080870162003292565b6001600160a01b038416908362001bf9565b6200196560e08501356200195560a087016080880162003292565b6001600160a01b03169062001cdd565b6200197760a085016080860162003292565b6001600160a01b0316837f75c5fedbd5fff6123ad9b70827e9742ea1eee996583d6e14249f1429fc4fd9938484604051620019c79291906001600160a01b03929092168252602082015260400190565b60405180910390a350506065805460ff191660011790555050565b620019ec62001a5e565b6001600160a01b03811662001a535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000c2f565b62000f958162001f5f565b6033546001600160a01b03163314620011d85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000c2f565b62001ac4620025df565b62000f9581620025fa565b604080516060810182526000808252602082018190529181019190915262001b026562726964676560d01b60006200176b565b6001600160a01b0316336001600160a01b03161462001b3457604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001b73573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b99919062003efa565b9050600062001bbc8260400151620013926a195c98cc8c17dd985d5b1d60aa1b90565b9050806001600160a01b031682602001516001600160a01b03161462001bf557604051632583296b60e01b815260040160405180910390fd5b5090565b6040516001600160a01b03831660248201526044810182905262001c5e90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262002644565b505050565b600060fc8162001c776020850185620037c2565b6001600160401b03168152602001908152602001600020600083602001602081019062001ca5919062003292565b6001600160a01b0390811682526020820192909252604001600020541690508062001cd85762001cd5826200271d565b90505b919050565b62000cae82825a6200296a565b62000f9562001a5e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001d2a5762001c5e8362002a12565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001d87575060408051601f3d908101601f1916820190925262001d849181019062003f6a565b60015b62001dec5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000c2f565b6000805160206200472b833981519152811462001e5e5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000c2f565b5062001c5e83838362002ab1565b6097546000906001600160a01b031662001e9957604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa15801562001ef2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f189190620037a2565b90508115801562001f3057506001600160a01b038116155b1562000faa578362001f428462002adc565b604051630d69e23960e41b815260040162000c2f92919062003f84565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040805160a08101825260008082526020820181905291810182905260608181018190526080820181905291906001600160a01b03868116600090815260fb6020526040902054600160401b9004161562002207576001600160a01b03868116600090815260fb6020908152604091829020825160a08101845281546001600160401b0381168252600160401b810490951692810192909252600160e01b90930460ff16918101919091526001820180549192916060840191906200207690620037e2565b80601f0160208091040260200160405190810160405280929190818152602001828054620020a490620037e2565b8015620020f55780601f10620020c957610100808354040283529160200191620020f5565b820191906000526020600020905b815481529060010190602001808311620020d757829003601f168201915b505050505081526020016002820180546200211090620037e2565b80601f01602080910402602001604051908101604052809291908181526020018280546200213e90620037e2565b80156200218f5780601f1062002163576101008083540402835291602001916200218f565b820191906000526020600020905b8154815290600101906020018083116200217157829003601f168201915b505050919092525050604051632770a7eb60e21b815233600482015260248101879052919250506001600160a01b03871690639dc29fac90604401600060405180830381600087803b158015620021e557600080fd5b505af1158015620021fa573d6000803e3d6000fd5b5050505083915062002483565b60008690506040518060a00160405280466001600160401b03168152602001886001600160a01b03168152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200229a919062003fa8565b60ff168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620022e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200230b919081019062003fc8565b8152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa1580156200234f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262002379919081019062003fc8565b90526040516370a0823160e01b81523060048201529092506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015620023c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620023ec919062003f6a565b9050620024056001600160a01b03831633308962002b75565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa1580156200244c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002472919062003f6a565b6200247e919062003bc4565b935050505b306001600160a01b031663240f6a5f82898886604051602401620024ab949392919062004000565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505092505094509492505050565b6040805160608101825260008082526020820181905291810191909152620025176562726964676560d01b60006200176b565b6001600160a01b0316336001600160a01b0316146200254957604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562002588573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025ae919062003efa565b60208101519091506001600160a01b03163314620011bf57604051632583296b60e01b815260040160405180910390fd5b620025e962002baf565b6065805461ffff1916610101179055565b6001600160401b034610620026225760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b60006200269b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031662002be39092919063ffffffff16565b80519091501562001c5e5780806020019051810190620026bc9190620040a6565b62001c5e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000c2f565b6097546000908190636c0db62b60e01b906001600160a01b031662002749604086016020870162003292565b620027586020870187620037c2565b6200276a606088016040890162003835565b62002779606089018962003855565b6200278860808b018b62003855565b604051602001620027a1989796959493929190620040c6565b60408051601f1981840301815290829052620027c1929160200162004131565b604051602081830303815290604052905062002806620027f36c0627269646765645f657263323609c1b60006200176b565b6033546001600160a01b03168362002bf4565b6001600160a01b038116600090815260fb6020526040902090925083906200282f8282620039d4565b5082905060fc6000620028466020870187620037c2565b6001600160401b03168152602001908152602001600020600085602001602081019062002874919062003292565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316836020016020810190620028d7919062003292565b6001600160a01b0316620028ef6020860186620037c2565b6001600160401b03167fb6b427556e8cb0ebf9175da4bc48c64c4f56e44cfaf8c3ab5ebf8e2ea130907962002928606088018862003855565b6200293760808a018a62003855565b6200294960608c0160408d0162003835565b6040516200295c95949392919062004164565b60405180910390a450919050565b6001600160a01b0383166200299257604051634c67134d60e11b815260040160405180910390fd5b6000836001600160a01b0316838390604051600060405180830381858888f193505050503d8060008114620029e4576040519150601f19603f3d011682016040523d82523d6000602084013e620029e9565b606091505b505090508062002a0c57604051634c67134d60e11b815260040160405180910390fd5b50505050565b6001600160a01b0381163b62002a815760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000c2f565b6000805160206200472b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b62002abc8362002d54565b60008251118062002aca5750805b1562001c5e5762002a0c838362002d96565b6060600062002aeb8362002dbe565b60010190506000816001600160401b0381111562002b0d5762002b0d6200338f565b6040519080825280601f01601f19166020018201604052801562002b38576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508462002b4257509392505050565b6040516001600160a01b038085166024830152831660448201526064810182905262002a0c9085906323b872dd60e01b9060840162001c26565b600054610100900460ff1662002bd95760405162461bcd60e51b815260040162000c2f90620041a5565b620011d862002e9d565b606062000fa7848460008562002ed2565b60006001600160a01b03841662002c1e576040516305d1c47b60e41b815260040160405180910390fd5b838260405162002c2e90620031bb565b62002c3b929190620041f0565b604051809103906000f08015801562002c58573d6000803e3d6000fd5b5090506001600160a01b0383161580159062002cea5750806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002cae573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002cd49190620037a2565b6001600160a01b0316836001600160a01b031614155b1562000faa5760405163f2fde38b60e01b81526001600160a01b03848116600483015282169063f2fde38b90602401600060405180830381600087803b15801562002d3457600080fd5b505af115801562002d49573d6000803e3d6000fd5b505050509392505050565b62002d5f8162002a12565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200177a83836040518060600160405280602781526020016200474b6027913962002fb7565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831062002dfe5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831062002e2b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831062002e4a57662386f26fc10000830492506010015b6305f5e100831062002e63576305f5e100830492506008015b612710831062002e7857612710830492506004015b6064831062002e8b576064830492506002015b600a83106200177d5760010192915050565b600054610100900460ff1662002ec75760405162461bcd60e51b815260040162000c2f90620041a5565b620011d83362001f5f565b60608247101562002f355760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000c2f565b600080866001600160a01b0316858760405162002f53919062004216565b60006040518083038185875af1925050503d806000811462002f92576040519150601f19603f3d011682016040523d82523d6000602084013e62002f97565b606091505b509150915062002faa8783838762003035565b925050505b949350505050565b6060600080856001600160a01b03168560405162002fd6919062004216565b600060405180830381855af49150503d806000811462003013576040519150601f19603f3d011682016040523d82523d6000602084013e62003018565b606091505b50915091506200302b8683838762003035565b9695505050505050565b60608315620030a9578251600003620030a1576001600160a01b0385163b620030a15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000c2f565b508162002faf565b62002faf8383815115620030c05781518083602001fd5b8060405162461bcd60e51b815260040162000c2f919062004234565b508054620030ea90620037e2565b6000825580601f10620030fb575050565b601f01602090049060005260206000209081019062000f959190620031c9565b60405180610180016040528060006001600160801b0316815260200160006001600160a01b0316815260200160006001600160401b0316815260200160006001600160401b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160608152602001606081525090565b6104e1806200424a83390190565b5b8082111562001bf55760008155600101620031ca565b600060208284031215620031f357600080fd5b81356001600160e01b03198116811462000faa57600080fd5b600060a082840312156200321f57600080fd5b50919050565b6001600160a01b038116811462000f9557600080fd5b600080604083850312156200324f57600080fd5b82356001600160401b038111156200326657600080fd5b62003274858286016200320c565b9250506020830135620032878162003225565b809150509250929050565b600060208284031215620032a557600080fd5b813562000faa8162003225565b60008060008060808587031215620032c957600080fd5b84356001600160401b03811115620032e057600080fd5b620032ee878288016200320c565b9450506020850135620033018162003225565b92506040850135620033138162003225565b9396929550929360600135925050565b6001600160401b038116811462000f9557600080fd5b801515811462000f9557600080fd5b6000806000606084860312156200335e57600080fd5b83356200336b8162003323565b9250602084013591506040840135620033848162003339565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b0381118282101715620033cb57620033cb6200338f565b60405290565b60405160a081016001600160401b0381118282101715620033cb57620033cb6200338f565b604051601f8201601f191681016001600160401b03811182821017156200342157620034216200338f565b604052919050565b60006001600160401b038211156200344557620034456200338f565b50601f01601f191660200190565b60006200346a620034648462003429565b620033f6565b90508281528383830111156200347f57600080fd5b828260208301376000602084830101529392505050565b60008060408385031215620034aa57600080fd5b8235620034b78162003225565b915060208301356001600160401b03811115620034d357600080fd5b8301601f81018513620034e557600080fd5b620034f68582356020840162003453565b9150509250929050565b600080604083850312156200351457600080fd5b823591506020830135620032878162003225565b6000602082840312156200353b57600080fd5b81356001600160401b038111156200355257600080fd5b8201610100818503121562000faa57600080fd5b60005b838110156200358357818101518382015260200162003569565b50506000910152565b60008151808452620035a681602086016020860162003566565b601f01601f19169290920160200192915050565b60208152620035d56020820183516001600160801b03169052565b60006020830151620035f260408401826001600160a01b03169052565b5060408301516001600160401b03811660608401525060608301516001600160401b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610180610160808501829052620036a46101a08601846200358c565b90860151858203601f1901838701529092506200302b83826200358c565b6001600160401b03861681526001600160a01b038516602082015260ff8416604082015260a06060820181905260009062003700908301856200358c565b82810360808401526200371481856200358c565b98975050505050505050565b600080604083850312156200373457600080fd5b823591506020830135620032878162003339565b600080604083850312156200375c57600080fd5b82356001600160401b038111156200377357600080fd5b830161018081860312156200378757600080fd5b946020939093013593505050565b805162001cd88162003225565b600060208284031215620037b557600080fd5b815162000faa8162003225565b600060208284031215620037d557600080fd5b813562000faa8162003323565b600181811c90821680620037f757607f821691505b6020821081036200321f57634e487b7160e01b600052602260045260246000fd5b60ff8116811462000f9557600080fd5b803562001cd88162003818565b6000602082840312156200384857600080fd5b813562000faa8162003818565b6000808335601e198436030181126200386d57600080fd5b8301803591506001600160401b038211156200388857600080fd5b6020019150368190038213156200389e57600080fd5b9250929050565b8183823760009101908152919050565b601f82111562001c5e57600081815260208120601f850160051c81016020861015620038de5750805b601f850160051c820191505b81811015620038ff57828155600101620038ea565b505050505050565b6001600160401b038311156200392157620039216200338f565b6200393983620039328354620037e2565b83620038b5565b6000601f841160018114620039705760008515620039575750838201355b600019600387901b1c1916600186901b178355620039cd565b600083815260209020601f19861690835b82811015620039a3578685013582556020948501946001909201910162003981565b5086821015620039c15760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8135620039e18162003323565b6001600160401b03811690508154816001600160401b03198216178355602084013562003a0e8162003225565b68010000000000000000600160e01b03604091821b166001600160e01b031983168417811785559085013562003a448162003818565b6001600160e81b0319929092169092179190911760e09190911b60ff60e01b1617815562003a76606083018362003855565b62003a8681836001860162003907565b505062003a97608083018362003855565b62002a0c81836002860162003907565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0388811682528716602082015260a06040820181905260009062003aff908301878962003aa7565b828103606084015262003b1481868862003aa7565b91505060ff8316608083015298975050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b818103818111156200177d57634e487b7160e01b600052601160045260246000fd5b80516001600160801b038116811462001cd857600080fd5b805162001cd88162003323565b600082601f83011262003c1d57600080fd5b815162003c2e620034648262003429565b81815284602083860101111562003c4457600080fd5b62002faf82602083016020870162003566565b6000806040838503121562003c6b57600080fd5b8251915060208301516001600160401b038082111562003c8a57600080fd5b90840190610180828703121562003ca057600080fd5b62003caa620033a5565b62003cb58362003be6565b815262003cc56020840162003795565b602082015262003cd86040840162003bfe565b604082015262003ceb6060840162003bfe565b606082015262003cfe6080840162003795565b608082015262003d1160a0840162003795565b60a082015262003d2460c0840162003795565b60c082015260e0838101519082015261010080840151908201526101208084015190820152610140808401518381111562003d5e57600080fd5b62003d6c8982870162003c0b565b828401525050610160808401518381111562003d8757600080fd5b62003d958982870162003c0b565b8284015250508093505050509250929050565b6000808585111562003db957600080fd5b8386111562003dc757600080fd5b5050820193919092039150565b600082601f83011262003de657600080fd5b6200177a8383356020850162003453565b803562001cd88162003225565b6000806000806080858703121562003e1b57600080fd5b84356001600160401b038082111562003e3357600080fd5b9086019060a0828903121562003e4857600080fd5b62003e52620033d1565b823562003e5f8162003323565b8152602083013562003e718162003225565b602082015262003e846040840162003828565b604082015260608301358281111562003e9c57600080fd5b62003eaa8a82860162003dd4565b60608301525060808301358281111562003ec357600080fd5b62003ed18a82860162003dd4565b608083015250955062003eea9150506020860162003df7565b9250620033136040860162003df7565b60006060828403121562003f0d57600080fd5b604051606081018181106001600160401b038211171562003f325762003f326200338f565b60405282518152602083015162003f498162003225565b6020820152604083015162003f5e8162003323565b60408201529392505050565b60006020828403121562003f7d57600080fd5b5051919050565b6001600160401b038316815260406020820152600062000fa760408301846200358c565b60006020828403121562003fbb57600080fd5b815162000faa8162003818565b60006020828403121562003fdb57600080fd5b81516001600160401b0381111562003ff257600080fd5b62002faf8482850162003c0b565b608081526001600160401b03855116608082015260018060a01b0360208601511660a082015260ff60408601511660c08201526000606086015160a060e0840152620040516101208401826200358c565b90506080870151607f19848303016101008501526200407182826200358c565b925050506200408b60208301866001600160a01b03169052565b6001600160a01b039390931660408201526060015292915050565b600060208284031215620040b957600080fd5b815162000faa8162003339565b6001600160a01b038981168252881660208201526001600160401b038716604082015260ff8616606082015260c0608082018190526000906200410d908301868862003aa7565b82810360a08401526200412281858762003aa7565b9b9a5050505050505050505050565b6001600160e01b03198316815281516000906200415681600485016020870162003566565b919091016004019392505050565b6060815260006200417a60608301878962003aa7565b82810360208401526200418f81868862003aa7565b91505060ff831660408301529695505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b038316815260406020820181905260009062000fa7908301846200358c565b600082516200422a81846020870162003566565b9190910192915050565b6020815260006200177a60208301846200358c56fe60806040526040516104e13803806104e1833981016040819052610022916102de565b61002e82826000610035565b50506103fb565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104ba60279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019d91906103ac565b600060405180830381855af49150503d80600081146101d8576040519150601f19603f3d011682016040523d82523d6000602084013e6101dd565b606091505b5090925090506101ef868383876101f9565b9695505050505050565b60608315610268578251600003610261576001600160a01b0385163b6102615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610136565b5081610272565b610272838361027a565b949350505050565b81511561028a5781518083602001fd5b8060405162461bcd60e51b815260040161013691906103c8565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102d55781810151838201526020016102bd565b50506000910152565b600080604083850312156102f157600080fd5b82516001600160a01b038116811461030857600080fd5b60208401519092506001600160401b038082111561032557600080fd5b818501915085601f83011261033957600080fd5b81518181111561034b5761034b6102a4565b604051601f8201601f19908116603f01168101908382118183101715610373576103736102a4565b8160405282815288602084870101111561038c57600080fd5b61039d8360208301602088016102ba565b80955050505050509250929050565b600082516103be8184602087016102ba565b9190910192915050565b60208152600082518060208401526103e78160408501602087016102ba565b601f01601f19169190910160400192915050565b60b1806104096000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122086939faa9cc2f3fe1410043eff38cc933fdbaa97744a116ffa0de4487915f87464736f6c63430008140033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122047c4452ec207e12ab2ede7e4584377b6d10b42be2bc68e538c3afb63891c0e1d64736f6c63430008140033", + "balance": "0x0" + }, + "0x1670080000000000000000000000000000000002": { + "contractName": "ERC20Vault", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670080000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167008000000000000000000000000000000002" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122086939faa9cc2f3fe1410043eff38cc933fdbaa97744a116ffa0de4487915f87464736f6c63430008140033", + "balance": "0x0" + }, + "0x0167008000000000000000000000000000000003": { + "contractName": "ERC721VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x608060405260043610620001675760003560e01c806352d1902d11620000c55780638456cb5911620000785780638456cb59146200042f5780638da5cb5b14620004475780639aa8605c1462000467578063a86f9d9e146200049e578063c389a18014620004c3578063f2fde38b14620004da57600080fd5b806352d1902d146200036357806359f4a907146200037b5780635c975abb1462000398578063634da63a14620003bb57806367090ccf14620003d2578063715018a6146200041757600080fd5b80633659cfe6116200011e5780633659cfe614620002895780633ab76e9f14620002ae5780633eb6b8cf14620002e95780633f4ba83a146200030e57806348b2772e14620003265780634f1ef286146200034c57600080fd5b806301ffc9a7146200016c57806306fdde0314620001b6578063150b7a0214620001e457806319ab453c146200022e5780632ca069a51462000255578063300536b51462000272575b600080fd5b3480156200017957600080fd5b50620001a16200018b36600462002c5f565b6001600160e01b031916630187134360e71b1490565b60405190151581526020015b60405180910390f35b348015620001c357600080fd5b506b195c98cdcc8c57dd985d5b1d60a21b5b604051908152602001620001ad565b348015620001f157600080fd5b50620002146200020336600462002ca1565b630a85bd0160e11b95945050505050565b6040516001600160e01b03199091168152602001620001ad565b3480156200023b57600080fd5b50620002536200024d36600462002d48565b620004ff565b005b3480156200026257600080fd5b5062000214636cdb3d1360e11b81565b620002536200028336600462002e65565b6200061f565b3480156200029657600080fd5b5062000253620002a836600462002d48565b6200091e565b348015620002bb57600080fd5b50609754620002d0906001600160a01b031681565b6040516001600160a01b039091168152602001620001ad565b348015620002f657600080fd5b50620002d06200030836600462002f28565b62000a09565b3480156200031b57600080fd5b506200025362000a22565b6200033d6200033736600462002f6f565b62000aa4565b604051620001ad919062003001565b620002536200035d36600462003176565b62000f57565b3480156200037057600080fd5b50620001d56200102f565b3480156200038857600080fd5b50620002146380ac58cd60e01b81565b348015620003a557600080fd5b50620001a1606554610100900460ff1660021490565b348015620003c857600080fd5b50620001d5600a81565b348015620003df57600080fd5b50620002d0620003f1366004620031e0565b60fc6020908152600092835260408084209091529082529020546001600160a01b031681565b3480156200042457600080fd5b5062000253620010e6565b3480156200043c57600080fd5b5062000253620010fe565b3480156200045457600080fd5b506033546001600160a01b0316620002d0565b3480156200047457600080fd5b506200048c6200048636600462002d48565b6200117c565b604051620001ad949392919062003213565b348015620004ab57600080fd5b50620002d0620004bd3660046200325c565b620012db565b62000253620004d436600462003284565b620012f3565b348015620004e757600080fd5b5062000253620004f936600462002d48565b620016e5565b600054610100900460ff1615808015620005205750600054600160ff909116105b806200053c5750303b1580156200053c575060005460ff166001145b620005a55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015620005c9576000805461ff0019166101001790555b620005d48262001761565b80156200061b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60655460ff1660011901620006475760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff1916600217905562000669606554610100900460ff1660021490565b15620006885760405163bae6e2a960e01b815260040160405180910390fd5b60006200069462001776565b905060006001600160a01b0384161580620006b757506001600160a01b03841630145b620006c35783620006c5565b845b9050600046620006d96020890189620032d1565b6001600160401b031603620007b657620006fa604088016020890162002d48565b905060005b8451811015620007af57816001600160a01b03166342842e0e30858885815181106200072f576200072f620032f1565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b1580156200078a57600080fd5b505af11580156200079f573d6000803e3d6000fd5b50505050806001019050620006ff565b5062000871565b620007c187620018a1565b905060005b84518110156200086f57816001600160a01b03166340c10f1984878481518110620007f557620007f5620032f1565b60200260200101516040518363ffffffff1660e01b81526004016200082f9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b1580156200084a57600080fd5b505af11580156200085f573d6000803e3d6000fd5b50505050806001019050620007c6565b505b620008866001600160a01b0383163462001925565b825160408401516001600160a01b0380881692908916917f8a4d138c7a19e12f6cdedfca02085820b0b1f5a9655c7a8b784f1d534347f2479085896000604051908082528060200260200182016040528015620008ed578160200160208202803683370190505b5060405162000900949392919062003344565b60405180910390a450506065805460ff191660011790555050505050565b6001600160a01b037f0000000000000000000000000167008000000000000000000000000000000003163003620009695760405162461bcd60e51b81526004016200059c906200338d565b7f00000000000000000000000001670080000000000000000000000000000000036001600160a01b0316620009b460008051602062004200833981519152546001600160a01b031690565b6001600160a01b031614620009dd5760405162461bcd60e51b81526004016200059c90620033d9565b620009e88162001932565b6040805160008082526020820190925262000a06918391906200193c565b50565b600062000a1884848462001ab9565b90505b9392505050565b62000a37606554610100900460ff1660021490565b62000a555760405163bae6e2a960e01b815260040160405180910390fd5b62000a5f62001bac565b6065805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b62000aae62002bb1565b60655460ff166001190162000ad65760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff1916600217905562000af8606554610100900460ff1660021490565b1562000b175760405163bae6e2a960e01b815260040160405180910390fd5b8162000b27608082018262003425565b905062000b38606083018362003425565b90501462000b595760405163196e8a4160e31b815260040160405180910390fd5b600a62000b6a606083018362003425565b9050111562000b8c5760405163e4a4c1c760e01b815260040160405180910390fd5b600062000ba0606083016040840162002d48565b6001600160a01b03160362000bc8576040516303f8a7d360e01b815260040160405180910390fd5b60005b62000bda606085018562003425565b905081101562000c415762000bf3608085018562003425565b8281811062000c065762000c06620032f1565b9050602002013560001462000c2e57604051634299323b60e11b815260040160405180910390fd5b62000c39816200348e565b905062000bcb565b5062000c706380ac58cd60e01b62000c60606086016040870162002d48565b6001600160a01b03169062001c08565b62000c8e57604051633ee915f560e11b815260040160405180910390fd5b600062000c9f608085018562003425565b80806020026020016040519081016040528093929190818152602001838360200280828437600092018290525093945062000ce592505050606086016040870162002d48565b9050600062000cf8606087018762003425565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092935062000d38925062002bb1915050565b62000d476020880188620032d1565b6001600160401b0316606082015262000d61338862001c9d565b610140820152336080820152606081015162000d90906b195c98cdcc8c57dd985d5b1d60a21b5b600062000a09565b6001600160a01b031660a08083019190915287013561012082015262000dbb60c088013534620034aa565b60e08083019190915260c08801356101008084019190915262000de49190890190890162002d48565b6001600160a01b031660c082015262000e02610100880188620034c0565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101608601949094525062000e5591506562726964676560d01b905082620012db565b6001600160a01b03166333bcd0cc34846040518363ffffffff1660e01b815260040162000e83919062003001565b60006040518083038185885af115801562000ea2573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405262000ecd919081019062003587565b9750905062000ee36040890160208a0162002d48565b6001600160a01b031687608001516001600160a01b0316827f329b657c35d4e2dfede6ef5132869accb1f8542912a40f9a854b4a917ffae2e98a6060015188888b60405162000f36949392919062003344565b60405180910390a450506065805460ff191660011790555092949350505050565b6001600160a01b037f000000000000000000000000016700800000000000000000000000000000000316300362000fa25760405162461bcd60e51b81526004016200059c906200338d565b7f00000000000000000000000001670080000000000000000000000000000000036001600160a01b031662000fed60008051602062004200833981519152546001600160a01b031690565b6001600160a01b031614620010165760405162461bcd60e51b81526004016200059c90620033d9565b620010218262001932565b6200061b828260016200193c565b6000306001600160a01b037f00000000000000000000000001670080000000000000000000000000000000031614620010d15760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016200059c565b50600080516020620042008339815191525b90565b620010f062001bac565b620010fc6000620021e2565b565b62001113606554610100900460ff1660021490565b15620011325760405163bae6e2a960e01b815260040160405180910390fd5b6200113c62001bac565b6065805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200162000a9a565b60fb60205260009081526040902080546001820180546001600160401b03831693600160401b9093046001600160a01b0316929190620011bc90620036d8565b80601f0160208091040260200160405190810160405280929190818152602001828054620011ea90620036d8565b80156200123b5780601f106200120f576101008083540402835291602001916200123b565b820191906000526020600020905b8154815290600101906020018083116200121d57829003601f168201915b5050505050908060020180546200125290620036d8565b80601f01602080910402602001604051908101604052809291908181526020018280546200128090620036d8565b8015620012d15780601f10620012a557610100808354040283529160200191620012d1565b820191906000526020600020905b815481529060010190602001808311620012b357829003601f168201915b5050505050905084565b6000620012ea46848462001ab9565b90505b92915050565b60655460ff16600119016200131b5760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff191660021790556200133d606554610100900460ff1660021490565b156200135c5760405163bae6e2a960e01b815260040160405180910390fd5b6200136662002234565b5060006200137b60a084016080850162002d48565b6001600160a01b031603620013a35760405163016a294f60e41b815260040160405180910390fd5b46620013b66060840160408501620032d1565b6001600160401b031614620013de57604051630a15fbb960e01b815260040160405180910390fd5b600080620013f1610140850185620034c0565b6200140191600490829062003714565b81019062001410919062003825565b6020840151939550935050506001600160a01b031662001443576040516303f8a7d360e01b815260040160405180910390fd5b6020808301516001600160a01b03908116600090815260fb909252604090912054600160401b900416156200153a5760005b8151811015620015335760208301516001600160a01b03166340c10f19620014a460a088016080890162002d48565b848481518110620014b957620014b9620032f1565b60200260200101516040518363ffffffff1660e01b8152600401620014f39291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b1580156200150e57600080fd5b505af115801562001523573d6000803e3d6000fd5b5050505080600101905062001475565b5062001604565b60005b8151811015620016025760208301516001600160a01b03166342842e0e306200156d60a0890160808a0162002d48565b858581518110620015825762001582620032f1565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b158015620015dd57600080fd5b505af1158015620015f2573d6000803e3d6000fd5b505050508060010190506200153d565b505b6200162f60e08501356200161f60a087016080880162002d48565b6001600160a01b03169062001925565b6200164160a085016080860162002d48565b6001600160a01b0316837fe8449897bd3c926a272780c39ba13e77bf7a2c823479a75bfbc13ef631183dfd84602001518460006001600160401b038111156200168e576200168e62002d68565b604051908082528060200260200182016040528015620016b8578160200160208202803683370190505b50604051620016ca9392919062003876565b60405180910390a350506065805460ff191660011790555050565b620016ef62001bac565b6001600160a01b038116620017565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200059c565b62000a0681620021e2565b6200176b6200232f565b62000a06816200234a565b6040805160608101825260008082526020820181905291810191909152620017a96562726964676560d01b6000620012db565b6001600160a01b0316336001600160a01b031614620017db57604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156200181a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018409190620038b0565b9050600062001864826040015162000d886b195c98cdcc8c57dd985d5b1d60a21b90565b9050806001600160a01b031682602001516001600160a01b0316146200189d57604051632583296b60e01b815260040160405180910390fd5b5090565b600060fc81620018b56020850185620032d1565b6001600160401b031681526020019081526020016000206000836020016020810190620018e3919062002d48565b6001600160a01b0390811682526020820192909252604001600020541690508062001920576200191d620019178362003920565b62002394565b90505b919050565b6200061b82825a62002561565b62000a0662001bac565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156200197757620019728362002609565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620019d4575060408051601f3d908101601f19168201909252620019d1918101906200392e565b60015b62001a395760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016200059c565b60008051602062004200833981519152811462001aab5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016200059c565b5062001972838383620026a8565b6097546000906001600160a01b031662001ae657604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa15801562001b3f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b65919062003948565b90508115801562001b7d57506001600160a01b038116155b1562000a1b578362001b8f84620026d3565b604051630d69e23960e41b81526004016200059c92919062003968565b6033546001600160a01b03163314620010fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200059c565b60006001600160a01b0383163b62001c2357506000620012ed565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa92505050801562001c90575060408051601f3d908101601f1916820190925262001c8d918101906200398c565b60015b15620012ed579392505050565b60408051608081018252600080825260208201526060918101829052808201829052600060fb8162001cd6606087016040880162002d48565b6001600160a01b039081168252602082019290925260400160002054600160401b9004161462001f715760fb600062001d16606086016040870162002d48565b6001600160a01b0390811682526020808301939093526040918201600020825160808101845281546001600160401b0381168252600160401b90049092169382019390935260018301805491939284019162001d7290620036d8565b80601f016020809104026020016040519081016040528092919081815260200182805462001da090620036d8565b801562001df15780601f1062001dc55761010080835404028352916020019162001df1565b820191906000526020600020905b81548152906001019060200180831162001dd357829003601f168201915b5050505050815260200160028201805462001e0c90620036d8565b80601f016020809104026020016040519081016040528092919081815260200182805462001e3a90620036d8565b801562001e8b5780601f1062001e5f5761010080835404028352916020019162001e8b565b820191906000526020600020905b81548152906001019060200180831162001e6d57829003601f168201915b505050505081525050905060005b62001ea8606085018562003425565b905081101562001f6a5762001ec4606085016040860162002d48565b6001600160a01b0316639dc29fac8662001ee2606088018862003425565b8581811062001ef55762001ef5620032f1565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526020029190910135602483015250604401600060405180830381600087803b15801562001f4557600080fd5b505af115801562001f5a573d6000803e3d6000fd5b5050505080600101905062001e99565b506200216e565b600062001f85606085016040860162002d48565b90506040518060800160405280466001600160401b0316815260200185604001602081019062001fb6919062002d48565b6001600160a01b03168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562002003573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200202d9190810190620039ac565b8152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801562002071573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200209b9190810190620039ac565b9052915060005b620020b1606086018662003425565b90508110156200216b576001600160a01b0382166323b872dd8730620020db60608a018a62003425565b86818110620020ee57620020ee620032f1565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156200214657600080fd5b505af11580156200215b573d6000803e3d6000fd5b50505050806001019050620020a2565b50505b3063300536b5828662002188604088016020890162002d48565b62002197606089018962003425565b604051602401620021ad959493929190620039e4565b60408051601f198184030181529190526020810180516001600160e01b031660e09390931b9290921790915295945050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040805160608101825260008082526020820181905291810191909152620022676562726964676560d01b6000620012db565b6001600160a01b0316336001600160a01b0316146200229957604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015620022d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022fe9190620038b0565b60208101519091506001600160a01b03163314620010e357604051632583296b60e01b815260040160405180910390fd5b620023396200276c565b6065805461ffff1916610101179055565b6001600160401b034610620023725760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b609754602080830151835160408086015160608701519151600096879663689ccd8d60e11b96620023d8966001600160a01b03909316959094929390910162003a9a565b60408051601f1981840301815290829052620023f8929160200162003af7565b60405160208183030381529060405290506200243e6200242b6d627269646765645f65726337323160901b6000620012db565b6033546001600160a01b031683620027a0565b6001600160a01b03808216600090815260fb60209081526040918290208751815492890151909416600160401b026001600160e01b03199092166001600160401b039094169390931717825585015191935084916001820190620024a3908262003b7c565b5060608201516002820190620024ba908262003b7c565b505083516001600160401b03908116600090815260fc6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b03191688851690811790915591518851828a015160608b01519351949750919094169493909316927f44977f2d30fe1e3aee2c1476f2f95aaacaf34e44b9359c403da01fcc93fd751b9262002553929062003c48565b60405180910390a450919050565b6001600160a01b0383166200258957604051634c67134d60e11b815260040160405180910390fd5b6000836001600160a01b0316838390604051600060405180830381858888f193505050503d8060008114620025db576040519150601f19603f3d011682016040523d82523d6000602084013e620025e0565b606091505b50509050806200260357604051634c67134d60e11b815260040160405180910390fd5b50505050565b6001600160a01b0381163b620026785760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200059c565b6000805160206200420083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b620026b38362002900565b600082511180620026c15750805b15620019725762002603838362002942565b60606000620026e2836200296a565b60010190506000816001600160401b0381111562002704576200270462002d68565b6040519080825280601f01601f1916602001820160405280156200272f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846200273957509392505050565b600054610100900460ff16620027965760405162461bcd60e51b81526004016200059c9062003c7a565b620010fc62002a49565b60006001600160a01b038416620027ca576040516305d1c47b60e41b815260040160405180910390fd5b8382604051620027da9062002c51565b620027e792919062003cc5565b604051809103906000f08015801562002804573d6000803e3d6000fd5b5090506001600160a01b03831615801590620028965750806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200285a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002880919062003948565b6001600160a01b0316836001600160a01b031614155b1562000a1b5760405163f2fde38b60e01b81526001600160a01b03848116600483015282169063f2fde38b90602401600060405180830381600087803b158015620028e057600080fd5b505af1158015620028f5573d6000803e3d6000fd5b505050509392505050565b6200290b8162002609565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620012ea8383604051806060016040528060278152602001620042206027913962002a7e565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310620029aa5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310620029d7576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310620029f657662386f26fc10000830492506010015b6305f5e100831062002a0f576305f5e100830492506008015b612710831062002a2457612710830492506004015b6064831062002a37576064830492506002015b600a8310620012ed5760010192915050565b600054610100900460ff1662002a735760405162461bcd60e51b81526004016200059c9062003c7a565b620010fc33620021e2565b6060600080856001600160a01b03168560405162002a9d919062003ceb565b600060405180830381855af49150503d806000811462002ada576040519150601f19603f3d011682016040523d82523d6000602084013e62002adf565b606091505b509150915062002af28683838762002afc565b9695505050505050565b6060831562002b7057825160000362002b68576001600160a01b0385163b62002b685760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016200059c565b508162002b7c565b62002b7c838362002b84565b949350505050565b81511562002b955781518083602001fd5b8060405162461bcd60e51b81526004016200059c919062003d09565b60405180610180016040528060006001600160801b0316815260200160006001600160a01b0316815260200160006001600160401b0316815260200160006001600160401b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160608152602001606081525090565b6104e18062003d1f83390190565b60006020828403121562002c7257600080fd5b81356001600160e01b031981168114620012ea57600080fd5b6001600160a01b038116811462000a0657600080fd5b60008060008060006080868803121562002cba57600080fd5b853562002cc78162002c8b565b9450602086013562002cd98162002c8b565b93506040860135925060608601356001600160401b038082111562002cfd57600080fd5b818801915088601f83011262002d1257600080fd5b81358181111562002d2257600080fd5b89602082850101111562002d3557600080fd5b9699959850939650602001949392505050565b60006020828403121562002d5b57600080fd5b8135620012ea8162002c8b565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b038111828210171562002da45762002da462002d68565b60405290565b604051601f8201601f191681016001600160401b038111828210171562002dd55762002dd562002d68565b604052919050565b600082601f83011262002def57600080fd5b813560206001600160401b0382111562002e0d5762002e0d62002d68565b8160051b62002e1e82820162002daa565b928352848101820192828101908785111562002e3957600080fd5b83870192505b8483101562002e5a5782358252918301919083019062002e3f565b979650505050505050565b6000806000806080858703121562002e7c57600080fd5b84356001600160401b038082111562002e9457600080fd5b908601906080828903121562002ea957600080fd5b90945060208601359062002ebd8262002c8b565b90935060408601359062002ed18262002c8b565b9092506060860135908082111562002ee857600080fd5b5062002ef78782880162002ddd565b91505092959194509250565b6001600160401b038116811462000a0657600080fd5b801515811462000a0657600080fd5b60008060006060848603121562002f3e57600080fd5b833562002f4b8162002f03565b925060208401359150604084013562002f648162002f19565b809150509250925092565b60006020828403121562002f8257600080fd5b81356001600160401b0381111562002f9957600080fd5b82016101208185031215620012ea57600080fd5b60005b8381101562002fca57818101518382015260200162002fb0565b50506000910152565b6000815180845262002fed81602086016020860162002fad565b601f01601f19169290920160200192915050565b602081526200301c6020820183516001600160801b03169052565b600060208301516200303960408401826001600160a01b03169052565b5060408301516001600160401b03811660608401525060608301516001600160401b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610180610160808501829052620030eb6101a086018462002fd3565b90860151858203601f19018387015290925062002af2838262002fd3565b60006001600160401b0382111562003125576200312562002d68565b50601f01601f191660200190565b60006200314a620031448462003109565b62002daa565b90508281528383830111156200315f57600080fd5b828260208301376000602084830101529392505050565b600080604083850312156200318a57600080fd5b8235620031978162002c8b565b915060208301356001600160401b03811115620031b357600080fd5b8301601f81018513620031c557600080fd5b620031d68582356020840162003133565b9150509250929050565b60008060408385031215620031f457600080fd5b823591506020830135620032088162002c8b565b809150509250929050565b6001600160401b03851681526001600160a01b0384166020820152608060408201819052600090620032489083018562002fd3565b828103606084015262002e5a818562002fd3565b600080604083850312156200327057600080fd5b823591506020830135620032088162002f19565b600080604083850312156200329857600080fd5b82356001600160401b03811115620032af57600080fd5b83016101808186031215620032c357600080fd5b946020939093013593505050565b600060208284031215620032e457600080fd5b8135620012ea8162002f03565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b8381101562003339578151875295820195908201906001016200331b565b509495945050505050565b6001600160401b03851681526001600160a01b0384166020820152608060408201819052600090620033799083018562003307565b828103606084015262002e5a818562003307565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000808335601e198436030181126200343d57600080fd5b8301803591506001600160401b038211156200345857600080fd5b6020019150600581901b36038213156200347157600080fd5b9250929050565b634e487b7160e01b600052601160045260246000fd5b600060018201620034a357620034a362003478565b5060010190565b81810381811115620012ed57620012ed62003478565b6000808335601e19843603018112620034d857600080fd5b8301803591506001600160401b03821115620034f357600080fd5b6020019150368190038213156200347157600080fd5b80516001600160801b03811681146200192057600080fd5b8051620019208162002c8b565b8051620019208162002f03565b600082601f8301126200354d57600080fd5b81516200355e620031448262003109565b8181528460208386010111156200357457600080fd5b62002b7c82602083016020870162002fad565b600080604083850312156200359b57600080fd5b8251915060208301516001600160401b0380821115620035ba57600080fd5b908401906101808287031215620035d057600080fd5b620035da62002d7e565b620035e58362003509565b8152620035f56020840162003521565b602082015262003608604084016200352e565b60408201526200361b606084016200352e565b60608201526200362e6080840162003521565b60808201526200364160a0840162003521565b60a08201526200365460c0840162003521565b60c082015260e083810151908201526101008084015190820152610120808401519082015261014080840151838111156200368e57600080fd5b6200369c898287016200353b565b8284015250506101608084015183811115620036b757600080fd5b620036c5898287016200353b565b8284015250508093505050509250929050565b600181811c90821680620036ed57607f821691505b6020821081036200370e57634e487b7160e01b600052602260045260246000fd5b50919050565b600080858511156200372557600080fd5b838611156200373357600080fd5b5050820193919092039150565b600082601f8301126200375257600080fd5b620012ea8383356020850162003133565b6000608082840312156200377657600080fd5b604051608081016001600160401b0382821081831117156200379c576200379c62002d68565b8160405282935084359150620037b28262002f03565b908252602084013590620037c68262002c8b565b8160208401526040850135915080821115620037e157600080fd5b620037ef8683870162003740565b604084015260608501359150808211156200380957600080fd5b50620038188582860162003740565b6060830152505092915050565b600080600080608085870312156200383c57600080fd5b84356001600160401b03808211156200385457600080fd5b620038628883890162003763565b95506020870135915062002ebd8262002c8b565b6001600160a01b03841681526060602082018190526000906200389c9083018562003307565b828103604084015262002af2818562003307565b600060608284031215620038c357600080fd5b604051606081018181106001600160401b0382111715620038e857620038e862002d68565b604052825181526020830151620038ff8162002c8b565b60208201526040830151620039148162002f03565b60408201529392505050565b60006200191d368362003763565b6000602082840312156200394157600080fd5b5051919050565b6000602082840312156200395b57600080fd5b8151620012ea8162002c8b565b6001600160401b038316815260406020820152600062000a18604083018462002fd3565b6000602082840312156200399f57600080fd5b8151620012ea8162002f19565b600060208284031215620039bf57600080fd5b81516001600160401b03811115620039d657600080fd5b62002b7c848285016200353b565b608080825286516001600160401b03168282015260208701516001600160a01b0390811660a0840152604088015160c08401929092526000919062003a2e61010085018362002fd3565b91506060890151607f198584030160e086015262003a4d838262002fd3565b8983166020870152918816604086015250838103606085015284815290506001600160fb1b0384111562003a8057600080fd5b8360051b8086602084013701602001979650505050505050565b6001600160a01b038681168252851660208201526001600160401b038416604082015260a06060820181905260009062003ad79083018562002fd3565b828103608084015262003aeb818562002fd3565b98975050505050505050565b6001600160e01b031983168152815160009062003b1c81600485016020870162002fad565b919091016004019392505050565b601f8211156200197257600081815260208120601f850160051c8101602086101562003b535750805b601f850160051c820191505b8181101562003b745782815560010162003b5f565b505050505050565b81516001600160401b0381111562003b985762003b9862002d68565b62003bb08162003ba98454620036d8565b8462003b2a565b602080601f83116001811462003be8576000841562003bcf5750858301515b600019600386901b1c1916600185901b17855562003b74565b600085815260208120601f198616915b8281101562003c195788860151825594840194600190910190840162003bf8565b508582101562003c385787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408152600062003c5d604083018562002fd3565b828103602084015262003c71818562002fd3565b95945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b038316815260406020820181905260009062000a189083018462002fd3565b6000825162003cff81846020870162002fad565b9190910192915050565b602081526000620012ea602083018462002fd356fe60806040526040516104e13803806104e1833981016040819052610022916102de565b61002e82826000610035565b50506103fb565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104ba60279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019d91906103ac565b600060405180830381855af49150503d80600081146101d8576040519150601f19603f3d011682016040523d82523d6000602084013e6101dd565b606091505b5090925090506101ef868383876101f9565b9695505050505050565b60608315610268578251600003610261576001600160a01b0385163b6102615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610136565b5081610272565b610272838361027a565b949350505050565b81511561028a5781518083602001fd5b8060405162461bcd60e51b815260040161013691906103c8565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102d55781810151838201526020016102bd565b50506000910152565b600080604083850312156102f157600080fd5b82516001600160a01b038116811461030857600080fd5b60208401519092506001600160401b038082111561032557600080fd5b818501915085601f83011261033957600080fd5b81518181111561034b5761034b6102a4565b604051601f8201601f19908116603f01168101908382118183101715610373576103736102a4565b8160405282815288602084870101111561038c57600080fd5b61039d8360208301602088016102ba565b80955050505050509250929050565b600082516103be8184602087016102ba565b9190910192915050565b60208152600082518060208401526103e78160408501602087016102ba565b601f01601f19169190910160400192915050565b60b1806104096000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122086939faa9cc2f3fe1410043eff38cc933fdbaa97744a116ffa0de4487915f87464736f6c63430008140033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122034f9fc40c762685de47255fa9cd4229571eee4fcb64ab3c7108167a46b3404ef64736f6c63430008140033", + "balance": "0x0" + }, + "0x1670080000000000000000000000000000000003": { + "contractName": "ERC721Vault", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670080000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167008000000000000000000000000000000003" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122086939faa9cc2f3fe1410043eff38cc933fdbaa97744a116ffa0de4487915f87464736f6c63430008140033", + "balance": "0x0" + }, + "0x0167008000000000000000000000000000000004": { + "contractName": "ERC1155VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x608060405260043610620001845760003560e01c806359f4a90711620000e25780638da5cb5b1162000095578063bc197c81116200006c578063bc197c8114620004a1578063c389a18014620004d4578063f23a6e6114620004eb578063f2fde38b146200051c57600080fd5b80638da5cb5b14620004255780639aa8605c1462000445578063a86f9d9e146200047c57600080fd5b806359f4a90714620003595780635c975abb1462000376578063634da63a146200039957806367090ccf14620003b0578063715018a614620003f55780638456cb59146200040d57600080fd5b80633ab76e9f116200013b5780633ab76e9f146200028c5780633eb6b8cf14620002c75780633f4ba83a14620002ec57806348b2772e14620003045780634f1ef286146200032a57806352d1902d146200034157600080fd5b806301ffc9a7146200018957806306fdde0314620001c3578063079312bf14620001f257806319ab453c146200020b5780632ca069a514620002305780633659cfe61462000267575b600080fd5b3480156200019657600080fd5b50620001ae620001a836600462002c08565b62000541565b60405190151581526020015b60405180910390f35b348015620001d057600080fd5b506c195c98cc4c4d4d57dd985d5b1d609a1b5b604051908152602001620001ba565b620002096200020336600462002d7a565b62000579565b005b3480156200021857600080fd5b50620002096200022a36600462002e40565b62000885565b3480156200023d57600080fd5b506200024d636cdb3d1360e11b81565b6040516001600160e01b03199091168152602001620001ba565b3480156200027457600080fd5b50620002096200028636600462002e40565b620009a5565b3480156200029957600080fd5b50609754620002ae906001600160a01b031681565b6040516001600160a01b039091168152602001620001ba565b348015620002d457600080fd5b50620002ae620002e636600462002e92565b62000a90565b348015620002f957600080fd5b506200020962000aa9565b6200031b6200031536600462002ed9565b62000b2b565b604051620001ba919062002f6b565b620002096200033b366004620030e0565b62000fe9565b3480156200034e57600080fd5b50620001e3620010c1565b3480156200036657600080fd5b506200024d6380ac58cd60e01b81565b3480156200038357600080fd5b50620001ae606554610100900460ff1660021490565b348015620003a657600080fd5b50620001e3600a81565b348015620003bd57600080fd5b50620002ae620003cf3660046200314a565b60fc6020908152600092835260408084209091529082529020546001600160a01b031681565b3480156200040257600080fd5b506200020962001178565b3480156200041a57600080fd5b506200020962001190565b3480156200043257600080fd5b506033546001600160a01b0316620002ae565b3480156200045257600080fd5b506200046a6200046436600462002e40565b6200120e565b604051620001ba94939291906200317d565b3480156200048957600080fd5b50620002ae6200049b366004620031c6565b6200136d565b348015620004ae57600080fd5b506200024d620004c036600462003280565b63bc197c8160e01b98975050505050505050565b62000209620004e53660046200334c565b6200137c565b348015620004f857600080fd5b506200024d6200050a36600462003399565b63f23a6e6160e01b9695505050505050565b3480156200052957600080fd5b50620002096200053b36600462002e40565b620016de565b60006001600160e01b031982166301ffc9a760e01b1480620005735750630187134360e71b6001600160e01b03198316145b92915050565b60655460ff1660011901620005a15760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff19166002179055620005c3606554610100900460ff1660021490565b15620005e25760405163bae6e2a960e01b815260040160405180910390fd5b6000620005ee6200175a565b905060006001600160a01b03851615806200061157506001600160a01b03851630145b6200061d57846200061f565b855b90506000466200063360208a018a6200341c565b6001600160401b0316036200071657620006546040890160208a0162002e40565b905060005b85518110156200070f57816001600160a01b031663f242432a30858985815181106200068957620006896200343c565b6020026020010151898681518110620006a657620006a66200343c565b60200260200101516040518563ffffffff1660e01b8152600401620006cf949392919062003452565b600060405180830381600087803b158015620006ea57600080fd5b505af1158015620006ff573d6000803e3d6000fd5b5050505080600101905062000659565b50620007fd565b6200072b62000725896200356f565b62001886565b905060005b8551811015620007fb57816001600160a01b031663156e29f6848884815181106200075f576200075f6200343c565b60200260200101518885815181106200077c576200077c6200343c565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b158015620007d657600080fd5b505af1158015620007eb573d6000803e3d6000fd5b5050505080600101905062000730565b505b620008126001600160a01b03831634620018d0565b856001600160a01b0316876001600160a01b031684600001517f8a4d138c7a19e12f6cdedfca02085820b0b1f5a9655c7a8b784f1d534347f2478660400151858a8a604051620008669493929190620035ba565b60405180910390a450506065805460ff19166001179055505050505050565b600054610100900460ff1615808015620008a65750600054600160ff909116105b80620008c25750303b158015620008c2575060005460ff166001145b6200092b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156200094f576000805461ff0019166101001790555b6200095a82620018dd565b8015620009a1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b037f0000000000000000000000000167008000000000000000000000000000000004163003620009f05760405162461bcd60e51b8152600401620009229062003603565b7f00000000000000000000000001670080000000000000000000000000000000046001600160a01b031662000a3b60008051602062004483833981519152546001600160a01b031690565b6001600160a01b03161462000a645760405162461bcd60e51b815260040162000922906200364f565b62000a6f81620018f2565b6040805160008082526020820190925262000a8d91839190620018fc565b50565b600062000a9f84848462001a79565b90505b9392505050565b62000abe606554610100900460ff1660021490565b62000adc5760405163bae6e2a960e01b815260040160405180910390fd5b62000ae662001b6c565b6065805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b62000b3562002b5a565b60655460ff166001190162000b5d5760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff1916600217905562000b7f606554610100900460ff1660021490565b1562000b9e5760405163bae6e2a960e01b815260040160405180910390fd5b8162000bae60808201826200369b565b905062000bbf60608301836200369b565b90501462000be05760405163196e8a4160e31b815260040160405180910390fd5b600a62000bf160608301836200369b565b9050111562000c135760405163e4a4c1c760e01b815260040160405180910390fd5b600062000c27606083016040840162002e40565b6001600160a01b03160362000c4f576040516303f8a7d360e01b815260040160405180910390fd5b60005b62000c6160808501856200369b565b905081101562000cc85762000c7a60808501856200369b565b8281811062000c8d5762000c8d6200343c565b9050602002013560000362000cb557604051634299323b60e11b815260040160405180910390fd5b62000cc081620036fd565b905062000c52565b5062000cf7636cdb3d1360e11b62000ce7606086016040870162002e40565b6001600160a01b03169062001bc8565b62000d1557604051633ee915f560e11b815260040160405180910390fd5b600062000d2660808501856200369b565b80806020026020016040519081016040528093929190818152602001838360200280828437600092018290525093945062000d6c92505050606086016040870162002e40565b9050600062000d7f60608701876200369b565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092935062000dbf925062002b5a915050565b62000dce60208801886200341c565b6001600160401b0316606082015262000df23362000dec8962003719565b62001c5d565b610140820152336080820152606081015162000e22906c195c98cc4c4d4d57dd985d5b1d609a1b5b600062000a90565b6001600160a01b031660a08083019190915287013561012082015262000e4d60c0880135346200381c565b60e08083019190915260c08801356101008084019190915262000e769190890190890162002e40565b6001600160a01b031660c082015262000e9461010088018862003832565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101608601949094525062000ee791506562726964676560d01b9050826200136d565b6001600160a01b03166333bcd0cc34846040518363ffffffff1660e01b815260040162000f15919062002f6b565b60006040518083038185885af115801562000f34573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405262000f5f9190810190620038f9565b9750905062000f756040890160208a0162002e40565b6001600160a01b031687608001516001600160a01b0316827f329b657c35d4e2dfede6ef5132869accb1f8542912a40f9a854b4a917ffae2e98a6060015188888b60405162000fc89493929190620035ba565b60405180910390a450506065805460ff191660011790555092949350505050565b6001600160a01b037f0000000000000000000000000167008000000000000000000000000000000004163003620010345760405162461bcd60e51b8152600401620009229062003603565b7f00000000000000000000000001670080000000000000000000000000000000046001600160a01b03166200107f60008051602062004483833981519152546001600160a01b031690565b6001600160a01b031614620010a85760405162461bcd60e51b815260040162000922906200364f565b620010b382620018f2565b620009a182826001620018fc565b6000306001600160a01b037f00000000000000000000000001670080000000000000000000000000000000041614620011635760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000922565b50600080516020620044838339815191525b90565b6200118262001b6c565b6200118e60006200218a565b565b620011a5606554610100900460ff1660021490565b15620011c45760405163bae6e2a960e01b815260040160405180910390fd5b620011ce62001b6c565b6065805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200162000b21565b60fb60205260009081526040902080546001820180546001600160401b03831693600160401b9093046001600160a01b03169291906200124e9062003a4a565b80601f01602080910402602001604051908101604052809291908181526020018280546200127c9062003a4a565b8015620012cd5780601f10620012a157610100808354040283529160200191620012cd565b820191906000526020600020905b815481529060010190602001808311620012af57829003601f168201915b505050505090806002018054620012e49062003a4a565b80601f0160208091040260200160405190810160405280929190818152602001828054620013129062003a4a565b8015620013635780601f10620013375761010080835404028352916020019162001363565b820191906000526020600020905b8154815290600101906020018083116200134557829003601f168201915b5050505050905084565b600062000aa246848462001a79565b60655460ff1660011901620013a45760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff19166002179055620013c6606554610100900460ff1660021490565b15620013e55760405163bae6e2a960e01b815260040160405180910390fd5b620013ef620021dc565b50600080806200140461014086018662003832565b6200141491600490829062003a86565b81019062001423919062003ab2565b6020850151949750909550935050506001600160a01b031662001459576040516303f8a7d360e01b815260040160405180910390fd5b6020808401516001600160a01b03908116600090815260fb909252604090912054600160401b90041615620015725760005b82518110156200156b5760208401516001600160a01b031663156e29f6620014ba60a0890160808a0162002e40565b858481518110620014cf57620014cf6200343c565b6020026020010151858581518110620014ec57620014ec6200343c565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b1580156200154657600080fd5b505af11580156200155b573d6000803e3d6000fd5b505050508060010190506200148b565b5062001642565b60005b8251811015620016405760208401516001600160a01b031663f242432a30620015a560a08a0160808b0162002e40565b868581518110620015ba57620015ba6200343c565b6020026020010151868681518110620015d757620015d76200343c565b60200260200101516040518563ffffffff1660e01b815260040162001600949392919062003452565b600060405180830381600087803b1580156200161b57600080fd5b505af115801562001630573d6000803e3d6000fd5b5050505080600101905062001575565b505b6200166d60e08601356200165d60a088016080890162002e40565b6001600160a01b031690620018d0565b6200167f60a086016080870162002e40565b6001600160a01b0316847fe8449897bd3c926a272780c39ba13e77bf7a2c823479a75bfbc13ef631183dfd85602001518585604051620016c29392919062003b05565b60405180910390a350506065805460ff19166001179055505050565b620016e862001b6c565b6001600160a01b0381166200174f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000922565b62000a8d816200218a565b60408051606081018252600080825260208201819052918101919091526200178d6562726964676560d01b60006200136d565b6001600160a01b0316336001600160a01b031614620017bf57604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015620017fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001824919062003b3f565b9050600062001849826040015162000e1a6c195c98cc4c4d4d57dd985d5b1d609a1b90565b9050806001600160a01b031682602001516001600160a01b0316146200188257604051632583296b60e01b815260040160405180910390fd5b5090565b80516001600160401b0316600090815260fc60209081526040808320828501516001600160a01b0390811685529252909120541680620018cb576200057382620022d7565b919050565b620009a182825a620024a5565b620018e76200254d565b62000a8d8162002568565b62000a8d62001b6c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001937576200193283620025b2565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001994575060408051601f3d908101601f19168201909252620019919181019062003baf565b60015b620019f95760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000922565b60008051602062004483833981519152811462001a6b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000922565b506200193283838362002651565b6097546000906001600160a01b031662001aa657604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa15801562001aff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b25919062003bc9565b90508115801562001b3d57506001600160a01b038116155b1562000aa2578362001b4f846200267c565b604051630d69e23960e41b81526004016200092292919062003be9565b6033546001600160a01b031633146200118e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000922565b60006001600160a01b0383163b62001be35750600062000573565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa92505050801562001c50575060408051601f3d908101601f1916820190925262001c4d9181019062003c0d565b60015b1562000573579392505050565b604080516080810182526000808252602082015260609181018290528082018290526040808401516001600160a01b03908116600090815260fb6020529190912054600160401b9004161562001f17576040808401516001600160a01b03908116600090815260fb602090815290839020835160808101855281546001600160401b0381168252600160401b900490931691830191909152600181018054929391929184019162001d0e9062003a4a565b80601f016020809104026020016040519081016040528092919081815260200182805462001d3c9062003a4a565b801562001d8d5780601f1062001d615761010080835404028352916020019162001d8d565b820191906000526020600020905b81548152906001019060200180831162001d6f57829003601f168201915b5050505050815260200160028201805462001da89062003a4a565b80601f016020809104026020016040519081016040528092919081815260200182805462001dd69062003a4a565b801562001e275780601f1062001dfb5761010080835404028352916020019162001e27565b820191906000526020600020905b81548152906001019060200180831162001e0957829003601f168201915b505050505081525050905060005b83606001515181101562001f105783604001516001600160a01b031663f5298aca868660600151848151811062001e705762001e706200343c565b60200260200101518760800151858151811062001e915762001e916200343c565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820152606401600060405180830381600087803b15801562001eeb57600080fd5b505af115801562001f00573d6000803e3d6000fd5b5050505080600101905062001e35565b506200211f565b6040518060800160405280466001600160401b0316815260200184604001516001600160a01b03168152602001604051806020016040528060008152508152602001604051806020016040528060008152508152509050600083604001519050806001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801562001fd957506040513d6000823e601f3d908101601f1916820160405262001fd6919081019062003c2d565b60015b1562001fe55760608301525b806001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156200204757506040513d6000823e601f3d908101601f1916820160405262002044919081019062003c2d565b60015b15620020535760408301525b60005b8460600151518110156200211c5784604001516001600160a01b031663f242432a3330886060015185815181106200209257620020926200343c565b602002602001015189608001518681518110620020b357620020b36200343c565b60200260200101516040518563ffffffff1660e01b8152600401620020dc949392919062003452565b600060405180830381600087803b158015620020f757600080fd5b505af11580156200210c573d6000803e3d6000fd5b5050505080600101905062002056565b50505b306001600160a01b031663079312bf82868660200151876060015188608001516040516024016200215595949392919062003c65565b60408051601f198184030181529190526020810180516001600160e01b031660e09390931b9290921790915295945050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60408051606081018252600080825260208201819052918101919091526200220f6562726964676560d01b60006200136d565b6001600160a01b0316336001600160a01b0316146200224157604051632583296b60e01b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562002280573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022a6919062003b3f565b60208101519091506001600160a01b031633146200117557604051632583296b60e01b815260040160405180910390fd5b609754602080830151835160408086015160608701519151600096879663689ccd8d60e11b966200231b966001600160a01b03909316959094929390910162003d29565b60408051601f19818403018152908290526200233b929160200162003d7a565b6040516020818303038152906040529050620023826200236f6e627269646765645f6572633131353560881b60006200136d565b6033546001600160a01b03168362002715565b6001600160a01b03808216600090815260fb60209081526040918290208751815492890151909416600160401b026001600160e01b03199092166001600160401b039094169390931717825585015191935084916001820190620023e7908262003dff565b5060608201516002820190620023fe908262003dff565b505083516001600160401b03908116600090815260fc6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b03191688851690811790915591518851828a015160608b01519351949750919094169493909316927f44977f2d30fe1e3aee2c1476f2f95aaacaf34e44b9359c403da01fcc93fd751b9262002497929062003ecb565b60405180910390a450919050565b6001600160a01b038316620024cd57604051634c67134d60e11b815260040160405180910390fd5b6000836001600160a01b0316838390604051600060405180830381858888f193505050503d80600081146200251f576040519150601f19603f3d011682016040523d82523d6000602084013e62002524565b606091505b50509050806200254757604051634c67134d60e11b815260040160405180910390fd5b50505050565b6200255762002875565b6065805461ffff1916610101179055565b6001600160401b034610620025905760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381163b620026215760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000922565b6000805160206200448383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6200265c83620028a9565b6000825111806200266a5750805b156200193257620025478383620028eb565b606060006200268b8362002913565b60010190506000816001600160401b03811115620026ad57620026ad62002c57565b6040519080825280601f01601f191660200182016040528015620026d8576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084620026e257509392505050565b60006001600160a01b0384166200273f576040516305d1c47b60e41b815260040160405180910390fd5b83826040516200274f9062002bfa565b6200275c92919062003efd565b604051809103906000f08015801562002779573d6000803e3d6000fd5b5090506001600160a01b038316158015906200280b5750806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620027cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027f5919062003bc9565b6001600160a01b0316836001600160a01b031614155b1562000aa25760405163f2fde38b60e01b81526001600160a01b03848116600483015282169063f2fde38b90602401600060405180830381600087803b1580156200285557600080fd5b505af11580156200286a573d6000803e3d6000fd5b505050509392505050565b600054610100900460ff166200289f5760405162461bcd60e51b8152600401620009229062003f23565b6200118e620029f2565b620028b481620025b2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062000aa28383604051806060016040528060278152602001620044a36027913962002a27565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310620029535772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831062002980576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106200299f57662386f26fc10000830492506010015b6305f5e1008310620029b8576305f5e100830492506008015b6127108310620029cd57612710830492506004015b60648310620029e0576064830492506002015b600a8310620005735760010192915050565b600054610100900460ff1662002a1c5760405162461bcd60e51b8152600401620009229062003f23565b6200118e336200218a565b6060600080856001600160a01b03168560405162002a46919062003f6e565b600060405180830381855af49150503d806000811462002a83576040519150601f19603f3d011682016040523d82523d6000602084013e62002a88565b606091505b509150915062002a9b8683838762002aa5565b9695505050505050565b6060831562002b1957825160000362002b11576001600160a01b0385163b62002b115760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000922565b508162002b25565b62002b25838362002b2d565b949350505050565b81511562002b3e5781518083602001fd5b8060405162461bcd60e51b815260040162000922919062003f8c565b60405180610180016040528060006001600160801b0316815260200160006001600160a01b0316815260200160006001600160401b0316815260200160006001600160401b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160608152602001606081525090565b6104e18062003fa283390190565b60006020828403121562002c1b57600080fd5b81356001600160e01b03198116811462000aa257600080fd5b6001600160a01b038116811462000a8d57600080fd5b8035620018cb8162002c34565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171562002c935762002c9362002c57565b60405290565b60405161018081016001600160401b038111828210171562002c935762002c9362002c57565b604051601f8201601f191681016001600160401b038111828210171562002cea5762002cea62002c57565b604052919050565b600082601f83011262002d0457600080fd5b813560206001600160401b0382111562002d225762002d2262002c57565b8160051b62002d3382820162002cbf565b928352848101820192828101908785111562002d4e57600080fd5b83870192505b8483101562002d6f5782358252918301919083019062002d54565b979650505050505050565b600080600080600060a0868803121562002d9357600080fd5b85356001600160401b038082111562002dab57600080fd5b908701906080828a03121562002dc057600080fd5b90955060208701359062002dd48262002c34565b90945060408701359062002de88262002c34565b9093506060870135908082111562002dff57600080fd5b62002e0d89838a0162002cf2565b9350608088013591508082111562002e2457600080fd5b5062002e338882890162002cf2565b9150509295509295909350565b60006020828403121562002e5357600080fd5b813562000aa28162002c34565b6001600160401b038116811462000a8d57600080fd5b8035620018cb8162002e60565b801515811462000a8d57600080fd5b60008060006060848603121562002ea857600080fd5b833562002eb58162002e60565b925060208401359150604084013562002ece8162002e83565b809150509250925092565b60006020828403121562002eec57600080fd5b81356001600160401b0381111562002f0357600080fd5b8201610120818503121562000aa257600080fd5b60005b8381101562002f3457818101518382015260200162002f1a565b50506000910152565b6000815180845262002f5781602086016020860162002f17565b601f01601f19169290920160200192915050565b6020815262002f866020820183516001600160801b03169052565b6000602083015162002fa360408401826001600160a01b03169052565b5060408301516001600160401b03811660608401525060608301516001600160401b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610180610160808501829052620030556101a086018462002f3d565b90860151858203601f19018387015290925062002a9b838262002f3d565b60006001600160401b038211156200308f576200308f62002c57565b50601f01601f191660200190565b6000620030b4620030ae8462003073565b62002cbf565b9050828152838383011115620030c957600080fd5b828260208301376000602084830101529392505050565b60008060408385031215620030f457600080fd5b8235620031018162002c34565b915060208301356001600160401b038111156200311d57600080fd5b8301601f810185136200312f57600080fd5b62003140858235602084016200309d565b9150509250929050565b600080604083850312156200315e57600080fd5b823591506020830135620031728162002c34565b809150509250929050565b6001600160401b03851681526001600160a01b0384166020820152608060408201819052600090620031b29083018562002f3d565b828103606084015262002d6f818562002f3d565b60008060408385031215620031da57600080fd5b823591506020830135620031728162002e83565b60008083601f8401126200320157600080fd5b5081356001600160401b038111156200321957600080fd5b6020830191508360208260051b85010111156200323557600080fd5b9250929050565b60008083601f8401126200324f57600080fd5b5081356001600160401b038111156200326757600080fd5b6020830191508360208285010111156200323557600080fd5b60008060008060008060008060a0898b0312156200329d57600080fd5b8835620032aa8162002c34565b97506020890135620032bc8162002c34565b965060408901356001600160401b0380821115620032d957600080fd5b620032e78c838d01620031ee565b909850965060608b01359150808211156200330157600080fd5b6200330f8c838d01620031ee565b909650945060808b01359150808211156200332957600080fd5b50620033388b828c016200323c565b999c989b5096995094979396929594505050565b600080604083850312156200336057600080fd5b82356001600160401b038111156200337757600080fd5b830161018081860312156200338b57600080fd5b946020939093013593505050565b60008060008060008060a08789031215620033b357600080fd5b8635620033c08162002c34565b95506020870135620033d28162002c34565b9450604087013593506060870135925060808701356001600160401b03811115620033fc57600080fd5b6200340a89828a016200323c565b979a9699509497509295939492505050565b6000602082840312156200342f57600080fd5b813562000aa28162002e60565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b600082601f8301126200349c57600080fd5b62000aa2838335602085016200309d565b600060808284031215620034c057600080fd5b604051608081016001600160401b038282108183111715620034e657620034e662002c57565b8160405282935084359150620034fc8262002e60565b908252602084013590620035108262002c34565b81602084015260408501359150808211156200352b57600080fd5b62003539868387016200348a565b604084015260608501359150808211156200355357600080fd5b5062003562858286016200348a565b6060830152505092915050565b6000620005733683620034ad565b600081518084526020808501945080840160005b83811015620035af5781518752958201959082019060010162003591565b509495945050505050565b6001600160401b03851681526001600160a01b0384166020820152608060408201819052600090620035ef908301856200357d565b828103606084015262002d6f81856200357d565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000808335601e19843603018112620036b357600080fd5b8301803591506001600160401b03821115620036ce57600080fd5b6020019150600581901b36038213156200323557600080fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620037125762003712620036e7565b5060010190565b600061012082360312156200372d57600080fd5b6200373762002c6d565b620037428362002e76565b8152620037526020840162002c4a565b6020820152620037656040840162002c4a565b604082015260608301356001600160401b03808211156200378557600080fd5b620037933683870162002cf2565b60608401526080850135915080821115620037ad57600080fd5b620037bb3683870162002cf2565b608084015260a085013560a084015260c085013560c0840152620037e260e0860162002c4a565b60e084015261010091508185013581811115620037fe57600080fd5b6200380c368288016200348a565b8385015250505080915050919050565b81810381811115620005735762000573620036e7565b6000808335601e198436030181126200384a57600080fd5b8301803591506001600160401b038211156200386557600080fd5b6020019150368190038213156200323557600080fd5b80516001600160801b0381168114620018cb57600080fd5b8051620018cb8162002c34565b8051620018cb8162002e60565b600082601f830112620038bf57600080fd5b8151620038d0620030ae8262003073565b818152846020838601011115620038e657600080fd5b62002b2582602083016020870162002f17565b600080604083850312156200390d57600080fd5b8251915060208301516001600160401b03808211156200392c57600080fd5b9084019061018082870312156200394257600080fd5b6200394c62002c99565b62003957836200387b565b8152620039676020840162003893565b60208201526200397a60408401620038a0565b60408201526200398d60608401620038a0565b6060820152620039a06080840162003893565b6080820152620039b360a0840162003893565b60a0820152620039c660c0840162003893565b60c082015260e0838101519082015261010080840151908201526101208084015190820152610140808401518381111562003a0057600080fd5b62003a0e89828701620038ad565b828401525050610160808401518381111562003a2957600080fd5b62003a3789828701620038ad565b8284015250508093505050509250929050565b600181811c9082168062003a5f57607f821691505b60208210810362003a8057634e487b7160e01b600052602260045260246000fd5b50919050565b6000808585111562003a9757600080fd5b8386111562003aa557600080fd5b5050820193919092039150565b600080600080600060a0868803121562003acb57600080fd5b85356001600160401b038082111562003ae357600080fd5b62003af189838a01620034ad565b96506020880135915062002dd48262002c34565b6001600160a01b038416815260606020820181905260009062003b2b908301856200357d565b828103604084015262002a9b81856200357d565b60006060828403121562003b5257600080fd5b604051606081018181106001600160401b038211171562003b775762003b7762002c57565b60405282518152602083015162003b8e8162002c34565b6020820152604083015162003ba38162002e60565b60408201529392505050565b60006020828403121562003bc257600080fd5b5051919050565b60006020828403121562003bdc57600080fd5b815162000aa28162002c34565b6001600160401b038316815260406020820152600062000a9f604083018462002f3d565b60006020828403121562003c2057600080fd5b815162000aa28162002e83565b60006020828403121562003c4057600080fd5b81516001600160401b0381111562003c5757600080fd5b62002b2584828501620038ad565b60a080825286516001600160401b03169082015260208601516001600160a01b031660c08201526040860151608060e083015260009062003cab61012084018262002f3d565b90506060880151609f198483030161010085015262003ccb828262002f3d565b91505062003ce460208401886001600160a01b03169052565b6001600160a01b0386166040840152828103606084015262003d0781866200357d565b9050828103608084015262003d1d81856200357d565b98975050505050505050565b6001600160a01b038681168252851660208201526001600160401b038416604082015260a06060820181905260009062003d669083018562002f3d565b828103608084015262003d1d818562002f3d565b6001600160e01b031983168152815160009062003d9f81600485016020870162002f17565b919091016004019392505050565b601f8211156200193257600081815260208120601f850160051c8101602086101562003dd65750805b601f850160051c820191505b8181101562003df75782815560010162003de2565b505050505050565b81516001600160401b0381111562003e1b5762003e1b62002c57565b62003e338162003e2c845462003a4a565b8462003dad565b602080601f83116001811462003e6b576000841562003e525750858301515b600019600386901b1c1916600185901b17855562003df7565b600085815260208120601f198616915b8281101562003e9c5788860151825594840194600190910190840162003e7b565b508582101562003ebb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60408152600062003ee0604083018562002f3d565b828103602084015262003ef4818562002f3d565b95945050505050565b6001600160a01b038316815260406020820181905260009062000a9f9083018462002f3d565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825162003f8281846020870162002f17565b9190910192915050565b60208152600062000aa2602083018462002f3d56fe60806040526040516104e13803806104e1833981016040819052610022916102de565b61002e82826000610035565b50506103fb565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104ba60279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019d91906103ac565b600060405180830381855af49150503d80600081146101d8576040519150601f19603f3d011682016040523d82523d6000602084013e6101dd565b606091505b5090925090506101ef868383876101f9565b9695505050505050565b60608315610268578251600003610261576001600160a01b0385163b6102615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610136565b5081610272565b610272838361027a565b949350505050565b81511561028a5781518083602001fd5b8060405162461bcd60e51b815260040161013691906103c8565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102d55781810151838201526020016102bd565b50506000910152565b600080604083850312156102f157600080fd5b82516001600160a01b038116811461030857600080fd5b60208401519092506001600160401b038082111561032557600080fd5b818501915085601f83011261033957600080fd5b81518181111561034b5761034b6102a4565b604051601f8201601f19908116603f01168101908382118183101715610373576103736102a4565b8160405282815288602084870101111561038c57600080fd5b61039d8360208301602088016102ba565b80955050505050509250929050565b600082516103be8184602087016102ba565b9190910192915050565b60208152600082518060208401526103e78160408501602087016102ba565b601f01601f19169190910160400192915050565b60b1806104096000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122086939faa9cc2f3fe1410043eff38cc933fdbaa97744a116ffa0de4487915f87464736f6c63430008140033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122020b12ec97a75ea2a99ed24ae0d05211a476f5ca05d2ec3d3dc18afc15c10549564736f6c63430008140033", + "balance": "0x0" + }, + "0x1670080000000000000000000000000000000004": { + "contractName": "ERC1155Vault", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670080000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167008000000000000000000000000000000004" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122086939faa9cc2f3fe1410043eff38cc933fdbaa97744a116ffa0de4487915f87464736f6c63430008140033", + "balance": "0x0" + }, + "0x0167008000000000000000000000000000010096": { + "contractName": "BridgedERC20", + "storage": {}, + "code": "0x6080604052600436106101e35760003560e01c80635c975abb1161010257806395d89b4111610095578063a9059cbb11610064578063a9059cbb14610591578063b8f2e0c5146105b1578063dd62ed3e146105d1578063f2fde38b146105f157600080fd5b806395d89b411461051c5780639dc29fac14610531578063a457c2d714610551578063a86f9d9e1461057157600080fd5b80637cf8ed0d116100d15780637cf8ed0d146104b15780637e474634146104d25780638456cb59146104f25780638da5cb5b1461050757600080fd5b80635c975abb146104245780636c0db62b1461044557806370a0823114610465578063715018a61461049c57600080fd5b8063395093511161017a57806340c10f191161014957806340c10f19146103c557806349d12605146103e55780634f1ef286146103fc57806352d1902d1461040f57600080fd5b806339509351146103385780633ab76e9f146103585780633eb6b8cf146103905780633f4ba83a146103b057600080fd5b806323b872dd116101b657806323b872dd1461028457806326afaadd146102a4578063313ce567146102e95780633659cfe61461031657600080fd5b806306fdde03146101e8578063095ea7b3146102135780630ae745481461024357806318160ddd14610264575b600080fd5b3480156101f457600080fd5b506101fd610611565b60405161020a91906120a3565b60405180910390f35b34801561021f57600080fd5b5061023361022e3660046120cb565b61062c565b604051901515815260200161020a565b34801561024f57600080fd5b5060fb5461023390600160a01b900460ff1681565b34801561027057600080fd5b5061012f545b60405190815260200161020a565b34801561029057600080fd5b5061023361029f3660046120f7565b610646565b3480156102b057600080fd5b506102ca61015f54610160546001600160a01b0390911691565b604080516001600160a01b03909316835260208301919091520161020a565b3480156102f557600080fd5b5061015f54600160a01b900460ff1660405160ff909116815260200161020a565b34801561032257600080fd5b50610336610331366004612138565b61066c565b005b34801561034457600080fd5b506102336103533660046120cb565b610754565b34801561036457600080fd5b50609754610378906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b34801561039c57600080fd5b506103786103ab36600461216a565b610776565b3480156103bc57600080fd5b5061033661078b565b3480156103d157600080fd5b506103366103e03660046120cb565b610809565b3480156103f157600080fd5b506102766101605481565b61033661040a366004612241565b610971565b34801561041b57600080fd5b50610276610a41565b34801561043057600080fd5b50610233606554610100900460ff1660021490565b34801561045157600080fd5b506103366104603660046122c5565b610af4565b34801561047157600080fd5b50610276610480366004612138565b6001600160a01b0316600090815261012d602052604090205490565b3480156104a857600080fd5b50610336610c95565b3480156104bd57600080fd5b5061015f54610378906001600160a01b031681565b3480156104de57600080fd5b5060fb54610378906001600160a01b031681565b3480156104fe57600080fd5b50610336610ca9565b34801561051357600080fd5b50610378610d22565b34801561052857600080fd5b506101fd610d36565b34801561053d57600080fd5b5061033661054c3660046120cb565b610d48565b34801561055d57600080fd5b5061023361056c3660046120cb565b610eda565b34801561057d57600080fd5b5061037861058c36600461236f565b610f60565b34801561059d57600080fd5b506102336105ac3660046120cb565b610f6d565b3480156105bd57600080fd5b506103366105cc36600461239b565b610f7b565b3480156105dd57600080fd5b506102766105ec3660046123c7565b6110d9565b3480156105fd57600080fd5b5061033661060c366004612138565b611105565b606061062761061e61117b565b6101605461120e565b905090565b60003361063a818585611242565b60019150505b92915050565b600033610654858285611367565b61065f8585856113e1565b60019150505b9392505050565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000100961630036106bd5760405162461bcd60e51b81526004016106b490612400565b60405180910390fd5b7f00000000000000000000000001670080000000000000000000000000000100966001600160a01b0316610706600080516020612749833981519152546001600160a01b031690565b6001600160a01b03161461072c5760405162461bcd60e51b81526004016106b49061244c565b61073581611599565b60408051600080825260208201909252610751918391906115a1565b50565b60003361063a81858561076783836110d9565b6107719190612498565b611242565b6000610783848484611711565b949350505050565b61079f606554610100900460ff1660021490565b6107bc5760405163bae6e2a960e01b815260040160405180910390fd5b6107c46117fb565b6065805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b60655460ff16600119016108305760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff19166002179055610851606554610100900460ff1660021490565b1561086f5760405163bae6e2a960e01b815260040160405180910390fd5b60fb546001600160a01b031615801590610893575060fb54600160a01b900460ff16155b156108b15760405163b19aa30f60e01b815260040160405180910390fd5b60fb546001600160a01b0316330361090c5760fb546040518281526001600160a01b038481169216907f638edf84937fb2534b47cac985ea84d6ea4f4076315b56ea1c784d26b87e2bcb9060200160405180910390a3610956565b6109256a195c98cc8c17dd985d5b1d60aa1b6001610f60565b6001600160a01b0316336001600160a01b031614610956576040516361fad54f60e11b815260040160405180910390fd5b610960828261185a565b50506065805460ff19166001179055565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000100961630036109b95760405162461bcd60e51b81526004016106b490612400565b7f00000000000000000000000001670080000000000000000000000000000100966001600160a01b0316610a02600080516020612749833981519152546001600160a01b031690565b6001600160a01b031614610a285760405162461bcd60e51b81526004016106b49061244c565b610a3182611599565b610a3d828260016115a1565b5050565b6000306001600160a01b037f00000000000000000000000001670080000000000000000000000000000100961614610ae15760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016106b4565b5060008051602061274983398151915290565b600054610100900460ff1615808015610b145750600054600160ff909116105b80610b2e5750303b158015610b2e575060005460ff166001145b610b915760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106b4565b6000805460ff191660011790558015610bb4576000805461ff0019166101001790555b6001600160a01b0386161580610bc8575084155b80610bd257504685145b80610bdc57508251155b80610be657508151155b15610c045760405163c118d2f360e01b815260040160405180910390fd5b610c0d87611864565b610c178284611875565b61015f805461016087905560ff8616600160a01b026001600160a81b03199091166001600160a01b038916171790558015610c8c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610c9d6117fb565b610ca760006118a6565b565b610cbd606554610100900460ff1660021490565b15610cdb5760405163bae6e2a960e01b815260040160405180910390fd5b610ce36117fb565b6065805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016107ff565b60006106276033546001600160a01b031690565b6060610627610d436118f8565b611908565b60655460ff1660011901610d6f5760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff19166002179055610d90606554610100900460ff1660021490565b15610dae5760405163bae6e2a960e01b815260040160405180910390fd5b60fb546001600160a01b031615801590610dd2575060fb54600160a01b900460ff16155b15610e865760fb546040518281526001600160a01b038481169216907f638edf84937fb2534b47cac985ea84d6ea4f4076315b56ea1c784d26b87e2bcb9060200160405180910390a360fb546040516340c10f1960e01b81526001600160a01b03848116600483015260248201849052909116906340c10f1990604401600060405180830381600087803b158015610e6957600080fd5b505af1158015610e7d573d6000803e3d6000fd5b50505050610ed0565b610e9f6a195c98cc8c17dd985d5b1d60aa1b6001610f60565b6001600160a01b0316336001600160a01b031614610ed057604051630d85cccf60e11b815260040160405180910390fd5b6109608282611931565b60003381610ee882866110d9565b905083811015610f485760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106b4565b610f558286868403611242565b506001949350505050565b6000610665468484611711565b60003361063a8185856113e1565b610f8f606554610100900460ff1660021490565b15610fad5760405163bae6e2a960e01b815260040160405180910390fd5b6a195c98cc8c17dd985d5b1d60aa1b610fc4610d22565b6001600160a01b0316336001600160a01b0316141580156110015750610feb816001610f60565b6001600160a01b0316336001600160a01b031614155b1561101f57604051630d85cccf60e11b815260040160405180910390fd5b60fb546001600160a01b03848116911614801561104e575060fb60149054906101000a900460ff161515821515145b1561106c5760405163b253fdfd60e01b815260040160405180910390fd5b60fb80546001600160a01b0385166001600160a81b03199091168117600160a01b851515908102919091179092556040805191825260208201929092527fa6b6f959792843a48d9d03d13595f2de7c86ae0ce12ef0fa759dd911b205e565910160405180910390a1505050565b6001600160a01b03918216600090815261012e6020908152604080832093909416825291909152205490565b61110d6117fb565b6001600160a01b0381166111725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b4565b610751816118a6565b6060610130805461118b906124b9565b80601f01602080910402602001604051908101604052809291908181526020018280546111b7906124b9565b80156112045780601f106111d957610100808354040283529160200191611204565b820191906000526020600020905b8154815290600101906020018083116111e757829003601f168201915b5050505050905090565b60608261121a8361193b565b60405160200161122b9291906124f3565b604051602081830303815290604052905092915050565b6001600160a01b0383166112a45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106b4565b6001600160a01b0382166113055760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106b4565b6001600160a01b03838116600081815261012e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061137384846110d9565b905060001981146113db57818110156113ce5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106b4565b6113db8484848403611242565b50505050565b6001600160a01b0383166114455760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106b4565b6001600160a01b0382166114a75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106b4565b6114b28383836119ce565b6001600160a01b038316600090815261012d60205260409020548181101561152b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106b4565b6001600160a01b03808516600081815261012d602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061158c9086815260200190565b60405180910390a36113db565b6107516117fb565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156115d9576115d483611a29565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611633575060408051601f3d908101601f1916820190925261163091810190612554565b60015b6116965760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016106b4565b60008051602061274983398151915281146117055760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016106b4565b506115d4838383611ac5565b6097546000906001600160a01b031661173d57604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015611796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ba919061256d565b9050811580156117d157506001600160a01b038116155b1561066557836117e08461193b565b604051630d69e23960e41b81526004016106b492919061258a565b33611804610d22565b6001600160a01b031614610ca75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106b4565b610a3d8282611aea565b61186c611bb9565b61075181611bd2565b600054610100900460ff1661189c5760405162461bcd60e51b81526004016106b4906125ad565b610a3d8282611c1c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6060610131805461118b906124b9565b60608160405160200161191b91906125f8565b6040516020818303038152906040529050919050565b610a3d8282611c5e565b6060600061194883611da1565b600101905060008167ffffffffffffffff811115611968576119686121b5565b6040519080825280601f01601f191660200182016040528015611992576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461199c57509392505050565b306001600160a01b038316036119f757604051630183150560e21b815260040160405180910390fd5b611a0b606554610100900460ff1660021490565b156115d45760405163bae6e2a960e01b815260040160405180910390fd5b6001600160a01b0381163b611a965760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016106b4565b60008051602061274983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611ace83611e79565b600082511180611adb5750805b156115d4576113db8383611eb9565b6001600160a01b038216611b405760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106b4565b611b4c600083836119ce565b8061012f6000828254611b5f9190612498565b90915550506001600160a01b038216600081815261012d60209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b611bc1611ede565b6065805461ffff1916610101179055565b67ffffffffffffffff4610611bfa5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff16611c435760405162461bcd60e51b81526004016106b4906125ad565b610130611c50838261266c565b506101316115d4828261266c565b6001600160a01b038216611cbe5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106b4565b611cca826000836119ce565b6001600160a01b038216600090815261012d602052604090205481811015611d3f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106b4565b6001600160a01b038316600081815261012d60209081526040808320868603905561012f80548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611de05772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611e0c576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611e2a57662386f26fc10000830492506010015b6305f5e1008310611e42576305f5e100830492506008015b6127108310611e5657612710830492506004015b60648310611e68576064830492506002015b600a83106106405760010192915050565b611e8281611a29565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610665838360405180606001604052806027815260200161276960279139611f0d565b600054610100900460ff16611f055760405162461bcd60e51b81526004016106b4906125ad565b610ca7611f85565b6060600080856001600160a01b031685604051611f2a919061272c565b600060405180830381855af49150503d8060008114611f65576040519150601f19603f3d011682016040523d82523d6000602084013e611f6a565b606091505b5091509150611f7b86838387611fb5565b9695505050505050565b600054610100900460ff16611fac5760405162461bcd60e51b81526004016106b4906125ad565b610ca7336118a6565b6060831561202457825160000361201d576001600160a01b0385163b61201d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106b4565b5081610783565b61078383838151156120395781518083602001fd5b8060405162461bcd60e51b81526004016106b491906120a3565b60005b8381101561206e578181015183820152602001612056565b50506000910152565b6000815180845261208f816020860160208601612053565b601f01601f19169290920160200192915050565b6020815260006106656020830184612077565b6001600160a01b038116811461075157600080fd5b600080604083850312156120de57600080fd5b82356120e9816120b6565b946020939093013593505050565b60008060006060848603121561210c57600080fd5b8335612117816120b6565b92506020840135612127816120b6565b929592945050506040919091013590565b60006020828403121561214a57600080fd5b8135610665816120b6565b8035801515811461216557600080fd5b919050565b60008060006060848603121561217f57600080fd5b833567ffffffffffffffff8116811461219757600080fd5b9250602084013591506121ac60408501612155565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff808411156121e6576121e66121b5565b604051601f8501601f19908116603f0116810190828211818310171561220e5761220e6121b5565b8160405280935085815286868601111561222757600080fd5b858560208301376000602087830101525050509392505050565b6000806040838503121561225457600080fd5b823561225f816120b6565b9150602083013567ffffffffffffffff81111561227b57600080fd5b8301601f8101851361228c57600080fd5b61229b858235602084016121cb565b9150509250929050565b600082601f8301126122b657600080fd5b610665838335602085016121cb565b60008060008060008060c087890312156122de57600080fd5b86356122e9816120b6565b955060208701356122f9816120b6565b945060408701359350606087013560ff8116811461231657600080fd5b9250608087013567ffffffffffffffff8082111561233357600080fd5b61233f8a838b016122a5565b935060a089013591508082111561235557600080fd5b5061236289828a016122a5565b9150509295509295509295565b6000806040838503121561238257600080fd5b8235915061239260208401612155565b90509250929050565b600080604083850312156123ae57600080fd5b82356123b9816120b6565b915061239260208401612155565b600080604083850312156123da57600080fd5b82356123e5816120b6565b915060208301356123f5816120b6565b809150509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b8082018082111561064057634e487b7160e01b600052601160045260246000fd5b600181811c908216806124cd57607f821691505b6020821081036124ed57634e487b7160e01b600052602260045260246000fd5b50919050565b670213934b233b2b2160c51b815260008351612516816008850160208801612053565b634051c55b60df1b600891840191820152835161253a81600d840160208801612053565b602960f81b600d9290910191820152600e01949350505050565b60006020828403121561256657600080fd5b5051919050565b60006020828403121561257f57600080fd5b8151610665816120b6565b67ffffffffffffffff831681526040602082015260006107836040830184612077565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161260a818460208701612053565b610b9d60f21b920191825250600201919050565b601f8211156115d457600081815260208120601f850160051c810160208610156126455750805b601f850160051c820191505b8181101561266457828155600101612651565b505050505050565b815167ffffffffffffffff811115612686576126866121b5565b61269a8161269484546124b9565b8461261e565b602080601f8311600181146126cf57600084156126b75750858301515b600019600386901b1c1916600185901b178555612664565b600085815260208120601f198616915b828110156126fe578886015182559484019460019091019084016126df565b508582101561271c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161273e818460208701612053565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205bc683190212156508762d7a87d9b18bef7321f0d9ea785d029d1bf1541516fb64736f6c63430008140033", + "balance": "0x0" + }, + "0x0167008000000000000000000000000000010097": { + "contractName": "BridgedERC721", + "storage": {}, + "code": "0x6080604052600436106101d85760003560e01c80636352211e116101025780639dc29fac11610095578063c87b56dd11610064578063c87b56dd14610554578063d1399b1a14610582578063e985e9c5146105a2578063f2fde38b146105ec57600080fd5b80639dc29fac146104d4578063a22cb465146104f4578063a86f9d9e14610514578063b88d4fde1461053457600080fd5b80637cf8ed0d116100d15780637cf8ed0d1461046b5780638456cb591461048c5780638da5cb5b146104a157806395d89b41146104bf57600080fd5b80636352211e146103d157806367e828bf146103f157806370a0823114610436578063715018a61461045657600080fd5b80633eb6b8cf1161017a57806349d126051161014957806349d12605146103635780634f1ef2861461038857806352d1902d1461039b5780635c975abb146103b057600080fd5b80633eb6b8cf146102ee5780633f4ba83a1461030e57806340c10f191461032357806342842e0e1461034357600080fd5b8063095ea7b3116101b6578063095ea7b31461026c57806323b872dd1461028e5780633659cfe6146102ae5780633ab76e9f146102ce57600080fd5b806301ffc9a7146101dd57806306fdde0314610212578063081812fc14610234575b600080fd5b3480156101e957600080fd5b506101fd6101f8366004612111565b61060c565b60405190151581526020015b60405180910390f35b34801561021e57600080fd5b5061022761065e565b604051610209919061217e565b34801561024057600080fd5b5061025461024f366004612191565b610679565b6040516001600160a01b039091168152602001610209565b34801561027857600080fd5b5061028c6102873660046121bf565b6106a1565b005b34801561029a57600080fd5b5061028c6102a93660046121eb565b6107bb565b3480156102ba57600080fd5b5061028c6102c936600461222c565b6107ec565b3480156102da57600080fd5b50609754610254906001600160a01b031681565b3480156102fa57600080fd5b5061025461030936600461225e565b6108cb565b34801561031a57600080fd5b5061028c6108e2565b34801561032f57600080fd5b5061028c61033e3660046121bf565b610960565b34801561034f57600080fd5b5061028c61035e3660046121eb565b610a2e565b34801561036f57600080fd5b5061037a6101605481565b604051908152602001610209565b61028c61039636600461234c565b610a49565b3480156103a757600080fd5b5061037a610b19565b3480156103bc57600080fd5b506101fd606554610100900460ff1660021490565b3480156103dd57600080fd5b506102546103ec366004612191565b610bcc565b3480156103fd57600080fd5b5061041761015f54610160546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610209565b34801561044257600080fd5b5061037a61045136600461222c565b610c2d565b34801561046257600080fd5b5061028c610cb4565b34801561047757600080fd5b5061015f54610254906001600160a01b031681565b34801561049857600080fd5b5061028c610cc8565b3480156104ad57600080fd5b506033546001600160a01b0316610254565b3480156104cb57600080fd5b50610227610d41565b3480156104e057600080fd5b5061028c6104ef3660046121bf565b610d53565b34801561050057600080fd5b5061028c61050f36600461239c565b610e48565b34801561052057600080fd5b5061025461052f3660046123d1565b610e53565b34801561054057600080fd5b5061028c61054f3660046123f4565b610e60565b34801561056057600080fd5b5061022761056f366004612191565b5060408051602081019091526000815290565b34801561058e57600080fd5b5061028c61059d366004612460565b610e98565b3480156105ae57600080fd5b506101fd6105bd3660046124f3565b6001600160a01b0391821660009081526101326020908152604080832093909416825291909152205460ff1690565b3480156105f857600080fd5b5061028c61060736600461222c565b61102b565b60006001600160e01b031982166380ac58cd60e01b148061063d57506001600160e01b03198216635b5e139f60e01b145b8061065857506301ffc9a760e01b6001600160e01b03198316145b92915050565b606061067461066b6110a1565b61016054611134565b905090565b600061068482611168565b50600090815261013160205260409020546001600160a01b031690565b60006106ac82610bcc565b9050806001600160a01b0316836001600160a01b03160361071e5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061073a575061073a81336105bd565b6107ac5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610715565b6107b683836111c8565b505050565b6107c53382611237565b6107e15760405162461bcd60e51b81526004016107159061252c565b6107b68383836112b7565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000100971630036108345760405162461bcd60e51b815260040161071590612579565b7f00000000000000000000000001670080000000000000000000000000000100976001600160a01b031661087d600080516020612980833981519152546001600160a01b031690565b6001600160a01b0316146108a35760405162461bcd60e51b8152600401610715906125c5565b6108ac8161142b565b604080516000808252602082019092526108c891839190611433565b50565b60006108d884848461159e565b90505b9392505050565b6108f6606554610100900460ff1660021490565b6109135760405163bae6e2a960e01b815260040160405180910390fd5b61091b611688565b6065805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b60655460ff16600119016109875760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff191660021790556109a8606554610100900460ff1660021490565b156109c65760405163bae6e2a960e01b815260040160405180910390fd5b6b195c98cdcc8c57dd985d5b1d60a21b6109e1816001610e53565b6001600160a01b0316336001600160a01b031614610a1257604051630d85cccf60e11b815260040160405180910390fd5b610a1c83836116e2565b50506065805460ff1916600117905550565b6107b683838360405180602001604052806000815250610e60565b6001600160a01b037f0000000000000000000000000167008000000000000000000000000000010097163003610a915760405162461bcd60e51b815260040161071590612579565b7f00000000000000000000000001670080000000000000000000000000000100976001600160a01b0316610ada600080516020612980833981519152546001600160a01b031690565b6001600160a01b031614610b005760405162461bcd60e51b8152600401610715906125c5565b610b098261142b565b610b1582826001611433565b5050565b6000306001600160a01b037f00000000000000000000000001670080000000000000000000000000000100971614610bb95760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610715565b5060008051602061298083398151915290565b600081815261012f60205260408120546001600160a01b0316806106585760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610715565b60006001600160a01b038216610c975760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610715565b506001600160a01b03166000908152610130602052604090205490565b610cbc611688565b610cc6600061187f565b565b610cdc606554610100900460ff1660021490565b15610cfa5760405163bae6e2a960e01b815260040160405180910390fd5b610d02611688565b6065805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610956565b6060610674610d4e6118d1565b6118e1565b60655460ff1660011901610d7a5760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff19166002179055610d9b606554610100900460ff1660021490565b15610db95760405163bae6e2a960e01b815260040160405180910390fd5b6b195c98cdcc8c57dd985d5b1d60a21b610dd4816001610e53565b6001600160a01b0316336001600160a01b031614610e0557604051630d85cccf60e11b815260040160405180910390fd5b826001600160a01b0316610e1883610bcc565b6001600160a01b031614610e3f5760405163358bf3d960e01b815260040160405180910390fd5b610a1c8261190a565b610b153383836119b0565b60006108db46848461159e565b610e6a3383611237565b610e865760405162461bcd60e51b81526004016107159061252c565b610e9284848484611a7f565b50505050565b600054610100900460ff1615808015610eb85750600054600160ff909116105b80610ed25750303b158015610ed2575060005460ff166001145b610f355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610715565b6000805460ff191660011790558015610f58576000805461ff0019166101001790555b6001600160a01b0385161580610f6c575083155b80610f7657504684145b80610f8057508251155b80610f8a57508151155b15610fa85760405163c118d2f360e01b815260040160405180910390fd5b610fb186611ab2565b610fbb8284611ac3565b61015f80546001600160a01b0319166001600160a01b0387161790556101608490558015611023576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b611033611688565b6001600160a01b0381166110985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610715565b6108c88161187f565b606061012d80546110b190612611565b80601f01602080910402602001604051908101604052809291908181526020018280546110dd90612611565b801561112a5780601f106110ff5761010080835404028352916020019161112a565b820191906000526020600020905b81548152906001019060200180831161110d57829003601f168201915b5050505050905090565b60608261114083611af4565b60405160200161115192919061264b565b604051602081830303815290604052905092915050565b600081815261012f60205260409020546001600160a01b03166108c85760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610715565b60008181526101316020526040902080546001600160a01b0319166001600160a01b03841690811790915581906111fe82610bcc565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061124383610bcc565b9050806001600160a01b0316846001600160a01b0316148061128b57506001600160a01b038082166000908152610132602090815260408083209388168352929052205460ff165b806112af5750836001600160a01b03166112a484610679565b6001600160a01b0316145b949350505050565b826001600160a01b03166112ca82610bcc565b6001600160a01b0316146112f05760405162461bcd60e51b8152600401610715906126ac565b6001600160a01b0382166113525760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610715565b61135f8383836001611b87565b826001600160a01b031661137282610bcc565b6001600160a01b0316146113985760405162461bcd60e51b8152600401610715906126ac565b60008181526101316020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652610130855283862080546000190190559087168086528386208054600101905586865261012f90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6108c8611688565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611466576107b683611be2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114c0575060408051601f3d908101601f191682019092526114bd918101906126f1565b60015b6115235760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610715565b60008051602061298083398151915281146115925760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610715565b506107b6838383611c7e565b6097546000906001600160a01b03166115ca57604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015611623573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611647919061270a565b90508115801561165e57506001600160a01b038116155b156108db578361166d84611af4565b604051630d69e23960e41b8152600401610715929190612727565b6033546001600160a01b03163314610cc65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610715565b6001600160a01b0382166117385760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610715565b600081815261012f60205260409020546001600160a01b03161561179e5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610715565b6117ac600083836001611b87565b600081815261012f60205260409020546001600160a01b0316156118125760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610715565b6001600160a01b0382166000818152610130602090815260408083208054600101905584835261012f90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606061012e80546110b190612611565b6060816040516020016118f4919061274a565b6040516020818303038152906040529050919050565b600061191582610bcc565b9050611925816000846001611b87565b61192e82610bcc565b60008381526101316020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526101308452828520805460001901905587855261012f909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b816001600160a01b0316836001600160a01b031603611a115760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610715565b6001600160a01b0383811660008181526101326020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611a8a8484846112b7565b611a9684848484611ca3565b610e925760405162461bcd60e51b815260040161071590612770565b611aba611da4565b6108c881611dbd565b600054610100900460ff16611aea5760405162461bcd60e51b8152600401610715906127c2565b610b158282611e07565b60606000611b0183611e49565b600101905060008167ffffffffffffffff811115611b2157611b216122a9565b6040519080825280601f01601f191660200182016040528015611b4b576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611b5557509392505050565b306001600160a01b03841603611bb057604051630183150560e21b815260040160405180910390fd5b611bc4606554610100900460ff1660021490565b15610e925760405163bae6e2a960e01b815260040160405180910390fd5b6001600160a01b0381163b611c4f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610715565b60008051602061298083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611c8783611f21565b600082511180611c945750805b156107b657610e928383611f61565b60006001600160a01b0384163b15611d9957604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611ce790339089908890889060040161280d565b6020604051808303816000875af1925050508015611d22575060408051601f3d908101601f19168201909252611d1f91810190612840565b60015b611d7f573d808015611d50576040519150601f19603f3d011682016040523d82523d6000602084013e611d55565b606091505b508051600003611d775760405162461bcd60e51b815260040161071590612770565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506112af565b506001949350505050565b611dac611f86565b6065805461ffff1916610101179055565b67ffffffffffffffff4610611de55760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff16611e2e5760405162461bcd60e51b8152600401610715906127c2565b61012d611e3b83826128a3565b5061012e6107b682826128a3565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611e885772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611eb4576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611ed257662386f26fc10000830492506010015b6305f5e1008310611eea576305f5e100830492506008015b6127108310611efe57612710830492506004015b60648310611f10576064830492506002015b600a83106106585760010192915050565b611f2a81611be2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606108db83836040518060600160405280602781526020016129a060279139611fb5565b600054610100900460ff16611fad5760405162461bcd60e51b8152600401610715906127c2565b610cc661202d565b6060600080856001600160a01b031685604051611fd29190612963565b600060405180830381855af49150503d806000811461200d576040519150601f19603f3d011682016040523d82523d6000602084013e612012565b606091505b50915091506120238683838761205d565b9695505050505050565b600054610100900460ff166120545760405162461bcd60e51b8152600401610715906127c2565b610cc63361187f565b606083156120cc5782516000036120c5576001600160a01b0385163b6120c55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610715565b50816112af565b6112af83838151156120e15781518083602001fd5b8060405162461bcd60e51b8152600401610715919061217e565b6001600160e01b0319811681146108c857600080fd5b60006020828403121561212357600080fd5b81356108db816120fb565b60005b83811015612149578181015183820152602001612131565b50506000910152565b6000815180845261216a81602086016020860161212e565b601f01601f19169290920160200192915050565b6020815260006108db6020830184612152565b6000602082840312156121a357600080fd5b5035919050565b6001600160a01b03811681146108c857600080fd5b600080604083850312156121d257600080fd5b82356121dd816121aa565b946020939093013593505050565b60008060006060848603121561220057600080fd5b833561220b816121aa565b9250602084013561221b816121aa565b929592945050506040919091013590565b60006020828403121561223e57600080fd5b81356108db816121aa565b8035801515811461225957600080fd5b919050565b60008060006060848603121561227357600080fd5b833567ffffffffffffffff8116811461228b57600080fd5b9250602084013591506122a060408501612249565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126122d057600080fd5b813567ffffffffffffffff808211156122eb576122eb6122a9565b604051601f8301601f19908116603f01168101908282118183101715612313576123136122a9565b8160405283815286602085880101111561232c57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561235f57600080fd5b823561236a816121aa565b9150602083013567ffffffffffffffff81111561238657600080fd5b612392858286016122bf565b9150509250929050565b600080604083850312156123af57600080fd5b82356123ba816121aa565b91506123c860208401612249565b90509250929050565b600080604083850312156123e457600080fd5b823591506123c860208401612249565b6000806000806080858703121561240a57600080fd5b8435612415816121aa565b93506020850135612425816121aa565b925060408501359150606085013567ffffffffffffffff81111561244857600080fd5b612454878288016122bf565b91505092959194509250565b600080600080600060a0868803121561247857600080fd5b8535612483816121aa565b94506020860135612493816121aa565b935060408601359250606086013567ffffffffffffffff808211156124b757600080fd5b6124c389838a016122bf565b935060808801359150808211156124d957600080fd5b506124e6888289016122bf565b9150509295509295909350565b6000806040838503121561250657600080fd5b8235612511816121aa565b91506020830135612521816121aa565b809150509250929050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600181811c9082168061262557607f821691505b60208210810361264557634e487b7160e01b600052602260045260246000fd5b50919050565b670213934b233b2b2160c51b81526000835161266e81600885016020880161212e565b634051c55b60df1b600891840191820152835161269281600d84016020880161212e565b602960f81b600d9290910191820152600e01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60006020828403121561270357600080fd5b5051919050565b60006020828403121561271c57600080fd5b81516108db816121aa565b67ffffffffffffffff831681526040602082015260006108d86040830184612152565b6000825161275c81846020870161212e565b610b9d60f21b920191825250600201919050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061202390830184612152565b60006020828403121561285257600080fd5b81516108db816120fb565b601f8211156107b657600081815260208120601f850160051c810160208610156128845750805b601f850160051c820191505b8181101561102357828155600101612890565b815167ffffffffffffffff8111156128bd576128bd6122a9565b6128d1816128cb8454612611565b8461285d565b602080601f83116001811461290657600084156128ee5750858301515b600019600386901b1c1916600185901b178555611023565b600085815260208120601f198616915b8281101561293557888601518255948401946001909101908401612916565b50858210156129535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000825161297581846020870161212e565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206a230c0fe38afc09a92c9b089efc0b32440c3a17558afb7d5f4c5525243985cf64736f6c63430008140033", + "balance": "0x0" + }, + "0x0167008000000000000000000000000000010098": { + "contractName": "BridgedERC1155", + "storage": {}, + "code": "0x60806040526004361061019b5760003560e01c806352d1902d116100ec578063a22cb4651161008a578063e985e9c511610064578063e985e9c51461047f578063f242432a146104c9578063f2fde38b146104e9578063f5298aca1461050957600080fd5b8063a22cb4651461041f578063a86f9d9e1461043f578063d1399b1a1461045f57600080fd5b80637cf8ed0d116100c65780637cf8ed0d146103b65780638456cb59146103d75780638da5cb5b146103ec57806395d89b411461040a57600080fd5b806352d1902d1461036b5780635c975abb14610380578063715018a6146103a157600080fd5b80633659cfe6116101595780633f4ba83a116101335780633f4ba83a146102ff57806349d12605146103145780634e1273f41461032b5780634f1ef2861461035857600080fd5b80633659cfe6146102875780633ab76e9f146102a75780633eb6b8cf146102df57600080fd5b8062fdd58e146101a057806301ffc9a7146101d357806306fdde03146102035780630e89341c14610225578063156e29f6146102455780632eb2c2d614610267575b600080fd5b3480156101ac57600080fd5b506101c06101bb3660046122d0565b610529565b6040519081526020015b60405180910390f35b3480156101df57600080fd5b506101f36101ee366004612312565b6105c5565b60405190151581526020016101ca565b34801561020f57600080fd5b50610218610615565b6040516101ca919061237f565b34801561023157600080fd5b50610218610240366004612392565b6106b4565b34801561025157600080fd5b506102656102603660046123ab565b610749565b005b34801561027357600080fd5b50610265610282366004612529565b61082a565b34801561029357600080fd5b506102656102a23660046125d6565b610876565b3480156102b357600080fd5b506097546102c7906001600160a01b031681565b6040516001600160a01b0390911681526020016101ca565b3480156102eb57600080fd5b506102c76102fa366004612608565b610955565b34801561030b57600080fd5b5061026561096c565b34801561032057600080fd5b506101c06101605481565b34801561033757600080fd5b5061034b610346366004612652565b6109ea565b6040516101ca9190612759565b61026561036636600461276c565b610b13565b34801561037757600080fd5b506101c0610be3565b34801561038c57600080fd5b506101f3606554610100900460ff1660021490565b3480156103ad57600080fd5b50610265610c97565b3480156103c257600080fd5b5061015f546102c7906001600160a01b031681565b3480156103e357600080fd5b50610265610cab565b3480156103f857600080fd5b506033546001600160a01b03166102c7565b34801561041657600080fd5b50610218610d24565b34801561042b57600080fd5b5061026561043a3660046127b1565b610dba565b34801561044b57600080fd5b506102c761045a3660046127e6565b610dc5565b34801561046b57600080fd5b5061026561047a366004612809565b610dd2565b34801561048b57600080fd5b506101f361049a36600461286b565b6001600160a01b03918216600090815261012e6020908152604080832093909416825291909152205460ff1690565b3480156104d557600080fd5b506102656104e43660046128a4565b610f7b565b3480156104f557600080fd5b506102656105043660046125d6565b610fc0565b34801561051557600080fd5b506102656105243660046123ab565b611036565b60006001600160a01b0383166105995760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b50600081815261012d602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806105f657506001600160e01b031982166303a24d0760e21b145b806105bf57506301ffc9a760e01b6001600160e01b03198316146105bf565b60606106af61016280546106289061290c565b80601f01602080910402602001604051908101604052809291908181526020018280546106549061290c565b80156106a15780601f10610676576101008083540402835291602001916106a1565b820191906000526020600020905b81548152906001019060200180831161068457829003601f168201915b5050505050610160546110f4565b905090565b606061012f80546106c49061290c565b80601f01602080910402602001604051908101604052809291908181526020018280546106f09061290c565b801561073d5780601f106107125761010080835404028352916020019161073d565b820191906000526020600020905b81548152906001019060200180831161072057829003601f168201915b50505050509050919050565b60655460ff16600119016107705760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff19166002179055610791606554610100900460ff1660021490565b156107af5760405163bae6e2a960e01b815260040160405180910390fd5b6c195c98cc4c4d4d57dd985d5b1d609a1b6107cb816001610dc5565b6001600160a01b0316336001600160a01b0316146107fc57604051630d85cccf60e11b815260040160405180910390fd5b61081784848460405180602001604052806000815250611128565b50506065805460ff191660011790555050565b6001600160a01b0385163314806108465750610846853361049a565b6108625760405162461bcd60e51b815260040161059090612946565b61086f858585858561124e565b5050505050565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000100981630036108be5760405162461bcd60e51b815260040161059090612994565b7f00000000000000000000000001670080000000000000000000000000000100986001600160a01b0316610907600080516020612f39833981519152546001600160a01b031690565b6001600160a01b03161461092d5760405162461bcd60e51b8152600401610590906129e0565b61093681611436565b604080516000808252602082019092526109529183919061143e565b50565b60006109628484846115ae565b90505b9392505050565b610980606554610100900460ff1660021490565b61099d5760405163bae6e2a960e01b815260040160405180910390fd5b6109a5611697565b6065805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b60608151835114610a4f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610590565b600083516001600160401b03811115610a6a57610a6a6123e0565b604051908082528060200260200182016040528015610a93578160200160208202803683370190505b50905060005b8451811015610b0b57610ade858281518110610ab757610ab7612a2c565b6020026020010151858381518110610ad157610ad1612a2c565b6020026020010151610529565b828281518110610af057610af0612a2c565b6020908102919091010152610b0481612a58565b9050610a99565b509392505050565b6001600160a01b037f0000000000000000000000000167008000000000000000000000000000010098163003610b5b5760405162461bcd60e51b815260040161059090612994565b7f00000000000000000000000001670080000000000000000000000000000100986001600160a01b0316610ba4600080516020612f39833981519152546001600160a01b031690565b6001600160a01b031614610bca5760405162461bcd60e51b8152600401610590906129e0565b610bd382611436565b610bdf8282600161143e565b5050565b6000306001600160a01b037f00000000000000000000000001670080000000000000000000000000000100981614610c835760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610590565b50600080516020612f398339815191525b90565b610c9f611697565b610ca960006116f1565b565b610cbf606554610100900460ff1660021490565b15610cdd5760405163bae6e2a960e01b815260040160405180910390fd5b610ce5611697565b6065805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016109e0565b60606106af6101618054610d379061290c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d639061290c565b8015610db05780601f10610d8557610100808354040283529160200191610db0565b820191906000526020600020905b815481529060010190602001808311610d9357829003601f168201915b5050505050611743565b610bdf33838361176c565b60006109654684846115ae565b600054610100900460ff1615808015610df25750600054600160ff909116105b80610e0c5750303b158015610e0c575060005460ff166001145b610e6f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610590565b6000805460ff191660011790558015610e92576000805461ff0019166101001790555b6001600160a01b0385161580610ea6575083155b80610eb057504684145b15610ece5760405163c118d2f360e01b815260040160405180910390fd5b610ed78661184d565b610eef6040518060200160405280600081525061185e565b61015f80546001600160a01b0319166001600160a01b038716179055610160849055610161610f1e8482612ab7565b50610162610f2c8382612ab7565b508015610f73576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6001600160a01b038516331480610f975750610f97853361049a565b610fb35760405162461bcd60e51b815260040161059090612946565b61086f858585858561188e565b610fc8611697565b6001600160a01b03811661102d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610590565b610952816116f1565b60655460ff166001190161105d5760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff1916600217905561107e606554610100900460ff1660021490565b1561109c5760405163bae6e2a960e01b815260040160405180910390fd5b6c195c98cc4c4d4d57dd985d5b1d609a1b6110b8816001610dc5565b6001600160a01b0316336001600160a01b0316146110e957604051630d85cccf60e11b815260040160405180910390fd5b6108178484846119cc565b60608261110083611b62565b604051602001611111929190612b76565b604051602081830303815290604052905092915050565b6001600160a01b0384166111885760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610590565b33600061119485611bf4565b905060006111a185611bf4565b90506111b283600089858589611c3f565b600086815261012d602090815260408083206001600160a01b038b168452909152812080548792906111e5908490612bd7565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461124583600089898989611c9a565b50505050505050565b81518351146112b05760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610590565b6001600160a01b0384166112d65760405162461bcd60e51b815260040161059090612bea565b336112e5818787878787611c3f565b60005b84518110156113d057600085828151811061130557611305612a2c565b60200260200101519050600085838151811061132357611323612a2c565b602090810291909101810151600084815261012d835260408082206001600160a01b038e1683529093529190912054909150818110156113755760405162461bcd60e51b815260040161059090612c2f565b600083815261012d602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906113b5908490612bd7565b92505081905550505050806113c990612a58565b90506112e8565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611420929190612c79565b60405180910390a4610f73818787878787611df5565b610952611697565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156114765761147183611eb0565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114d0575060408051601f3d908101601f191682019092526114cd91810190612ca7565b60015b6115335760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610590565b600080516020612f3983398151915281146115a25760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610590565b50611471838383611f4c565b6097546000906001600160a01b03166115da57604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015611632573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116569190612cc0565b90508115801561166d57506001600160a01b038116155b15610965578361167c84611b62565b604051630d69e23960e41b8152600401610590929190612cdd565b6033546001600160a01b03163314610ca95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610590565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6060816040516020016117569190612cff565b6040516020818303038152906040529050919050565b816001600160a01b0316836001600160a01b0316036117df5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610590565b6001600160a01b03838116600081815261012e6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611855611f77565b61095281611f90565b600054610100900460ff166118855760405162461bcd60e51b815260040161059090612d25565b61095281611fd9565b6001600160a01b0384166118b45760405162461bcd60e51b815260040161059090612bea565b3360006118c085611bf4565b905060006118cd85611bf4565b90506118dd838989858589611c3f565b600086815261012d602090815260408083206001600160a01b038c168452909152902054858110156119215760405162461bcd60e51b815260040161059090612c2f565b600087815261012d602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290611961908490612bd7565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46119c1848a8a8a8a8a611c9a565b505050505050505050565b6001600160a01b038316611a2e5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610590565b336000611a3a84611bf4565b90506000611a4784611bf4565b9050611a6783876000858560405180602001604052806000815250611c3f565b600085815261012d602090815260408083206001600160a01b038a16845290915290205484811015611ae75760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610590565b600086815261012d602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4604080516020810190915260009052611245565b60606000611b6f83612009565b60010190506000816001600160401b03811115611b8e57611b8e6123e0565b6040519080825280601f01601f191660200182016040528015611bb8576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611bc257509392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611c2e57611c2e612a2c565b602090810291909101015292915050565b306001600160a01b03851603611c6857604051630183150560e21b815260040160405180910390fd5b611c7c606554610100900460ff1660021490565b15610f735760405163bae6e2a960e01b815260040160405180910390fd5b6001600160a01b0384163b15610f735760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611cde9089908990889088908890600401612d70565b6020604051808303816000875af1925050508015611d19575060408051601f3d908101601f19168201909252611d1691810190612db5565b60015b611dc557611d25612dd2565b806308c379a003611d5e5750611d39612ded565b80611d445750611d60565b8060405162461bcd60e51b8152600401610590919061237f565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610590565b6001600160e01b0319811663f23a6e6160e01b146112455760405162461bcd60e51b815260040161059090612e76565b6001600160a01b0384163b15610f735760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611e399089908990889088908890600401612ebe565b6020604051808303816000875af1925050508015611e74575060408051601f3d908101601f19168201909252611e7191810190612db5565b60015b611e8057611d25612dd2565b6001600160e01b0319811663bc197c8160e01b146112455760405162461bcd60e51b815260040161059090612e76565b6001600160a01b0381163b611f1d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610590565b600080516020612f3983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611f55836120e1565b600082511180611f625750805b1561147157611f718383612121565b50505050565b611f7f612146565b6065805461ffff1916610101179055565b6001600160401b034610611fb75760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166120005760405162461bcd60e51b815260040161059090612d25565b61095281612175565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106120485772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612074576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061209257662386f26fc10000830492506010015b6305f5e10083106120aa576305f5e100830492506008015b61271083106120be57612710830492506004015b606483106120d0576064830492506002015b600a83106105bf5760010192915050565b6120ea81611eb0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606109658383604051806060016040528060278152602001612f5960279139612182565b600054610100900460ff1661216d5760405162461bcd60e51b815260040161059090612d25565b610ca96121fa565b61012f610bdf8282612ab7565b6060600080856001600160a01b03168560405161219f9190612f1c565b600060405180830381855af49150503d80600081146121da576040519150601f19603f3d011682016040523d82523d6000602084013e6121df565b606091505b50915091506121f08683838761222a565b9695505050505050565b600054610100900460ff166122215760405162461bcd60e51b815260040161059090612d25565b610ca9336116f1565b60608315612299578251600003612292576001600160a01b0385163b6122925760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610590565b50816122a3565b6122a383836122ab565b949350505050565b815115611d445781518083602001fd5b6001600160a01b038116811461095257600080fd5b600080604083850312156122e357600080fd5b82356122ee816122bb565b946020939093013593505050565b6001600160e01b03198116811461095257600080fd5b60006020828403121561232457600080fd5b8135610965816122fc565b60005b8381101561234a578181015183820152602001612332565b50506000910152565b6000815180845261236b81602086016020860161232f565b601f01601f19169290920160200192915050565b6020815260006109656020830184612353565b6000602082840312156123a457600080fd5b5035919050565b6000806000606084860312156123c057600080fd5b83356123cb816122bb565b95602085013595506040909401359392505050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b038111828210171561241b5761241b6123e0565b6040525050565b60006001600160401b0382111561243b5761243b6123e0565b5060051b60200190565b600082601f83011261245657600080fd5b8135602061246382612422565b60405161247082826123f6565b83815260059390931b850182019282810191508684111561249057600080fd5b8286015b848110156124ab5780358352918301918301612494565b509695505050505050565b600082601f8301126124c757600080fd5b81356001600160401b038111156124e0576124e06123e0565b6040516124f7601f8301601f1916602001826123f6565b81815284602083860101111561250c57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561254157600080fd5b853561254c816122bb565b9450602086013561255c816122bb565b935060408601356001600160401b038082111561257857600080fd5b61258489838a01612445565b9450606088013591508082111561259a57600080fd5b6125a689838a01612445565b935060808801359150808211156125bc57600080fd5b506125c9888289016124b6565b9150509295509295909350565b6000602082840312156125e857600080fd5b8135610965816122bb565b8035801515811461260357600080fd5b919050565b60008060006060848603121561261d57600080fd5b83356001600160401b038116811461263457600080fd5b925060208401359150612649604085016125f3565b90509250925092565b6000806040838503121561266557600080fd5b82356001600160401b038082111561267c57600080fd5b818501915085601f83011261269057600080fd5b8135602061269d82612422565b6040516126aa82826123f6565b83815260059390931b85018201928281019150898411156126ca57600080fd5b948201945b838610156126f15785356126e2816122bb565b825294820194908201906126cf565b9650508601359250508082111561270757600080fd5b5061271485828601612445565b9150509250929050565b600081518084526020808501945080840160005b8381101561274e57815187529582019590820190600101612732565b509495945050505050565b602081526000610965602083018461271e565b6000806040838503121561277f57600080fd5b823561278a816122bb565b915060208301356001600160401b038111156127a557600080fd5b612714858286016124b6565b600080604083850312156127c457600080fd5b82356127cf816122bb565b91506127dd602084016125f3565b90509250929050565b600080604083850312156127f957600080fd5b823591506127dd602084016125f3565b600080600080600060a0868803121561282157600080fd5b853561282c816122bb565b9450602086013561283c816122bb565b93506040860135925060608601356001600160401b038082111561285f57600080fd5b6125a689838a016124b6565b6000806040838503121561287e57600080fd5b8235612889816122bb565b91506020830135612899816122bb565b809150509250929050565b600080600080600060a086880312156128bc57600080fd5b85356128c7816122bb565b945060208601356128d7816122bb565b9350604086013592506060860135915060808601356001600160401b0381111561290057600080fd5b6125c9888289016124b6565b600181811c9082168061292057607f821691505b60208210810361294057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612a6a57612a6a612a42565b5060010190565b601f82111561147157600081815260208120601f850160051c81016020861015612a985750805b601f850160051c820191505b81811015610f7357828155600101612aa4565b81516001600160401b03811115612ad057612ad06123e0565b612ae481612ade845461290c565b84612a71565b602080601f831160018114612b195760008415612b015750858301515b600019600386901b1c1916600185901b178555610f73565b600085815260208120601f198616915b82811015612b4857888601518255948401946001909101908401612b29565b5085821015612b665787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b670213934b233b2b2160c51b815260008351612b9981600885016020880161232f565b634051c55b60df1b6008918401918201528351612bbd81600d84016020880161232f565b602960f81b600d9290910191820152600e01949350505050565b808201808211156105bf576105bf612a42565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000612c8c604083018561271e565b8281036020840152612c9e818561271e565b95945050505050565b600060208284031215612cb957600080fd5b5051919050565b600060208284031215612cd257600080fd5b8151610965816122bb565b6001600160401b03831681526040602082015260006109626040830184612353565b60008251612d1181846020870161232f565b610b9d60f21b920191825250600201919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090612daa90830184612353565b979650505050505050565b600060208284031215612dc757600080fd5b8151610965816122fc565b600060033d1115610c945760046000803e5060005160e01c90565b600060443d1015612dfb5790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715612e2a57505050505090565b8285019150815181811115612e425750505050505090565b843d8701016020828501011115612e5c5750505050505090565b612e6b602082860101876123f6565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090612eea9083018661271e565b8281036060840152612efc818661271e565b90508281036080840152612f108185612353565b98975050505050505050565b60008251612f2e81846020870161232f565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c815eff88d788d0412cf5780901f394979615e0cc721245a4ee4b95f2c5355b864736f6c63430008140033", + "balance": "0x0" + }, + "0x0167008000000000000000000000000000000005": { + "contractName": "SignalServiceImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x60806040526004361061012a5760003560e01c80638456cb59116100ab578063a354b9de1161006f578063a354b9de14610312578063a86f9d9e14610332578063cbb3ddf314610352578063e1c7392a14610366578063f19e207e1461037b578063f2fde38b146103a857600080fd5b80638456cb591461027f5780638da5cb5b14610294578063910af6ed146102b257806391f3f74b146102d2578063969e15a3146102f257600080fd5b80634f1ef286116100f25780634f1ef286146101f357806352d1902d146102065780635c975abb1461022957806366ca2bc01461024a578063715018a61461026a57600080fd5b806332676bc61461012f5780633659cfe6146101645780633ab76e9f146101865780633eb6b8cf146101be5780633f4ba83a146101de575b600080fd5b34801561013b57600080fd5b5061014f61014a3660046126d3565b6103c8565b60405190151581526020015b60405180910390f35b34801561017057600080fd5b5061018461017f3660046126ff565b61042c565b005b34801561019257600080fd5b506097546101a6906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156101ca57600080fd5b506101a66101d9366004612746565b610514565b3480156101ea57600080fd5b5061018461052b565b610184610201366004612883565b6105a9565b34801561021257600080fd5b5061021b610679565b60405190815260200161015b565b34801561023557600080fd5b5061014f606554610100900460ff1660021490565b34801561025657600080fd5b5061021b6102653660046128d2565b61072c565b34801561027657600080fd5b50610184610763565b34801561028b57600080fd5b50610184610777565b3480156102a057600080fd5b506033546001600160a01b03166101a6565b3480156102be57600080fd5b5061014f6102cd3660046128eb565b6107f0565b3480156102de57600080fd5b5061021b6102ed366004612989565b610b0e565b3480156102fe57600080fd5b5061018461030d3660046126d3565b610b79565b34801561031e57600080fd5b5061014f61032d3660046126d3565b610c3b565b34801561033e57600080fd5b506101a661034d3660046129ca565b610c67565b34801561035e57600080fd5b50600061014f565b34801561037257600080fd5b50610184610c74565b34801561038757600080fd5b5061021b6103963660046126ff565b60fb6020526000908152604090205481565b3480156103b457600080fd5b506101846103c33660046126ff565b610d84565b60008181036103ea5760405163c7b4b9bf60e01b815260040160405180910390fd5b6001600160a01b0383166104115760405163985389db60e01b815260040160405180910390fd5b600061041e468585610b0e565b546001149150505b92915050565b6001600160a01b037f000000000000000000000000016700800000000000000000000000000000000516300361047d5760405162461bcd60e51b8152600401610474906129f6565b60405180910390fd5b7f00000000000000000000000001670080000000000000000000000000000000056001600160a01b03166104c6600080516020612e8c833981519152546001600160a01b031690565b6001600160a01b0316146104ec5760405162461bcd60e51b815260040161047490612a42565b6104f581610dfa565b6040805160008082526020820190925261051191839190610e02565b50565b6000610521848484610f72565b90505b9392505050565b61053f606554610100900460ff1660021490565b61055c5760405163bae6e2a960e01b815260040160405180910390fd5b61056461105b565b6065805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000000051630036105f15760405162461bcd60e51b8152600401610474906129f6565b7f00000000000000000000000001670080000000000000000000000000000000056001600160a01b031661063a600080516020612e8c833981519152546001600160a01b031690565b6001600160a01b0316146106605760405162461bcd60e51b815260040161047490612a42565b61066982610dfa565b61067582826001610e02565b5050565b6000306001600160a01b037f000000000000000000000000016700800000000000000000000000000000000516146107195760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610474565b50600080516020612e8c83398151915290565b600081810361074e5760405163c7b4b9bf60e01b815260040160405180910390fd5b610759463384610b0e565b6001815592915050565b61076b61105b565b61077560006110b5565b565b61078b606554610100900460ff1660021490565b156107a95760405163bae6e2a960e01b815260040160405180910390fd5b6107b161105b565b6065805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200161059f565b60006001600160a01b0385161580610806575083155b8061081857506001600160401b038616155b8061082b575046866001600160401b0316145b1561083857506000610b05565b600061084683850185612a8e565b80519091506001600160a01b031615806108635750604081015151155b15610872576000915050610b05565b60005b8160600151518110156108fd578160600151818151811061089857610898612c18565b6020026020010151602001516000801b036108b857600092505050610b05565b816060015181815181106108ce576108ce612c18565b602002602001015160400151516000036108ed57600092505050610b05565b6108f681612c44565b9050610875565b50805161090a9046610c3b565b610918576000915050610b05565b80516020820151604051638cfb045960e01b81526001600160401b0390911660048201526000916001600160a01b031690638cfb045990602401608060405180830381865afa15801561096f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109939190612c5d565b60600151905060008190036109ad57600092505050610b05565b60005b826060015151811015610ab2576000836060015182815181106109d5576109d5612c18565b60209081029190910181015180516001600160a01b0316600090815260fb909252604082205490925090819003610a1457600095505050505050610b05565b6000610a1f82611107565b90506000610a368285600001518660200151610b0e565b90506000610a7d82604051602001610a5091815260200190565b60408051601f19818403018152828201825260018352600160f81b6020840152908801519091908a611173565b905080610a9557600098505050505050505050610b05565b84602001519650505050505080610aab90612c44565b90506109b0565b50610b00610ac1898989610b0e565b604051602001610ad391815260200190565b60408051601f19818403018152828201825260018352600160f81b60208401529085015190919084611173565b925050505b95945050505050565b6040516514d251d3905360d21b60208201526001600160c01b031960c085901b1660268201526bffffffffffffffffffffffff19606084901b16602e820152604281018290526000906062016040516020818303038152906040528051906020012090509392505050565b610b8161105b565b6001600160a01b038216610ba857604051635963709b60e01b815260040160405180910390fd5b6001600160a01b038216600090815260fb6020526040902054818103610be1576040516389ad61c160e01b815260040160405180910390fd5b6001600160a01b038316600081815260fb602090815260409182902085905581518481529081018590527f7abb39ef31cf9e4e81ee30577a27909b031ee95c0459c22280fb8d3468c96fdf910160405180910390a2505050565b600081158015906105245750506001600160a01b0391909116600090815260fb60205260409020541490565b6000610524468484610f72565b600054610100900460ff1615808015610c945750600054600160ff909116105b80610cae5750303b158015610cae575060005460ff166001145b610d115760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610474565b6000805460ff191660011790558015610d34576000805461ff0019166101001790555b610d3c611199565b8015610511576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b610d8c61105b565b6001600160a01b038116610df15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610474565b610511816110b5565b61051161105b565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610e3a57610e35836111b2565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610e94575060408051601f3d908101601f19168201909252610e9191810190612cb4565b60015b610ef75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610474565b600080516020612e8c8339815191528114610f665760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610474565b50610e3583838361124e565b6097546000906001600160a01b0316610f9e57604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a9190612ccd565b90508115801561103157506001600160a01b038116155b15610524578361104084611279565b604051630d69e23960e41b8152600401610474929190612d3a565b6033546001600160a01b031633146107755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610474565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006001600160401b0382111561116f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610474565b5090565b60008061117f8661130c565b905061118d8186868661133e565b9150505b949350505050565b6111a161137b565b6065805461ffff1916610101179055565b6001600160a01b0381163b61121f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610474565b600080516020612e8c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611257836113aa565b6000825111806112645750805b15610e355761127383836113ea565b50505050565b606060006112868361140f565b60010190506000816001600160401b038111156112a5576112a5612784565b6040519080825280601f01601f1916602001820160405280156112cf576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846112d9575b509392505050565b6060818051906020012060405160200161132891815260200190565b6040516020818303038152906040529050919050565b600080600061134e8786866114e7565b9150915081801561137057508051602080830191909120875191880191909120145b979650505050505050565b600054610100900460ff166113a25760405162461bcd60e51b815260040161047490612d5c565b6107756115c2565b6113b3816111b2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105248383604051806060016040528060278152602001612eac602791396115f2565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061144e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061147a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061149857662386f26fc10000830492506010015b6305f5e10083106114b0576305f5e100830492506008015b61271083106114c457612710830492506004015b606483106114d6576064830492506002015b600a83106104265760010192915050565b6000606060006114f68561166a565b90506000806000611508848a8961175a565b8151929550909350915015808061151c5750815b6115685760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e0000000000006044820152606401610474565b60008161158457604051806020016040528060008152506115b0565b6115b086611593600188612da7565b815181106115a3576115a3612c18565b6020026020010151611b7a565b919b919a509098505050505050505050565b600054610100900460ff166115e95760405162461bcd60e51b815260040161047490612d5c565b610775336110b5565b6060600080856001600160a01b03168560405161160f9190612dba565b600060405180830381855af49150503d806000811461164a576040519150601f19603f3d011682016040523d82523d6000602084013e61164f565b606091505b509150915061166086838387611ba1565b9695505050505050565b6060600061167783611c1a565b9050600081516001600160401b0381111561169457611694612784565b6040519080825280602002602001820160405280156116d957816020015b60408051808201909152606080825260208201528152602001906001900390816116b25790505b50905060005b825181101561130457600061170c8483815181106116ff576116ff612c18565b6020026020010151611c4d565b9050604051806040016040528061172283611c1a565b81526020018281525083838151811061173d5761173d612c18565b6020026020010181905250508061175390612c44565b90506116df565b60006060600080600061176c87611cd4565b90506000869050600080611793604051806040016040528060608152602001606081525090565b60005b8c51811015611b52578c81815181106117b1576117b1612c18565b6020026020010151915082846117c79190612dd6565b93506117d4600188612dd6565b96508360000361183157848260200151805190602001201461182c5760405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b6044820152606401610474565b6118f3565b60208260200151511061189857848260200151805190602001201461182c5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c206861736800000000006044820152606401610474565b846118a68360200151611e0c565b146118f35760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f646520686173680000000000006044820152606401610474565b6118ff60106001612de9565b60ff168260000151510361196d5785518414611b5257600086858151811061192957611929612c18565b01602001518351805160f89290921c92506000918390811061194d5761194d612c18565b6020026020010151905061196081611e34565b9650600194505050611b42565b81515160011901611afa57600061198383611e6a565b905060008160008151811061199a5761199a612c18565b016020015160f81c905060006119b1600283612e02565b6119bc906002612e32565b905060006119cd848360ff16611e8e565b905060006119db8b8a611e8e565b905060006119e98383611ec4565b905060ff851660021480611a00575060ff85166003145b15611a3a57808351148015611a155750808251145b15611a2757611a24818b612dd6565b99505b50600160ff1b9950611b52945050505050565b60ff85161580611a4d575060ff85166001145b15611aa35782518114611a6d5750600160ff1b9950611b52945050505050565b611a948860000151600181518110611a8757611a87612c18565b6020026020010151611e34565b9a509750611b42945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e206044820152650e0e4caccd2f60d31b6064820152608401610474565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e0000006044820152606401610474565b611b4b81612c44565b9050611796565b50600160ff1b841486611b658786611e8e565b909e909d50909b509950505050505050505050565b8051805160609161042691611b9190600190612da7565b815181106116ff576116ff612c18565b60608315611c10578251600003611c09576001600160a01b0385163b611c095760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610474565b5081611191565b6111918383611f3e565b60408051808201825260008082526020918201528151808301909252825182528083019082015260609061042690611f68565b60606000806000611c5d85612154565b919450925090506000816001811115611c7857611c78612e4b565b14611cc55760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e00000000000000006044820152606401610474565b610b058560200151848461249e565b6060600082516002611ce69190612e61565b6001600160401b03811115611cfd57611cfd612784565b6040519080825280601f01601f191660200182016040528015611d27576020820181803683370190505b50905060005b8351811015611e05576004848281518110611d4a57611d4a612c18565b01602001516001600160f81b031916901c82611d67836002612e61565b81518110611d7757611d77612c18565b60200101906001600160f81b031916908160001a9053506010848281518110611da257611da2612c18565b0160200151611db4919060f81c612e02565b60f81b82611dc3836002612e61565b611dce906001612dd6565b81518110611dde57611dde612c18565b60200101906001600160f81b031916908160001a905350611dfe81612c44565b9050611d2d565b5092915050565b6000602082511015611e2057506020015190565b818060200190518101906104269190612cb4565b60006060602083600001511015611e5557611e4e83612546565b9050611e61565b611e5e83611c4d565b90505b61052481611e0c565b6060610426611e8983600001516000815181106116ff576116ff612c18565b611cd4565b606082518210611ead5750604080516020810190915260008152610426565b6105248383848651611ebf9190612da7565b612551565b6000805b808451118015611ed85750808351115b8015611f295750828181518110611ef157611ef1612c18565b602001015160f81c60f81b6001600160f81b031916848281518110611f1857611f18612c18565b01602001516001600160f81b031916145b1561052457611f3781612c44565b9050611ec8565b815115611f4e5781518083602001fd5b8060405162461bcd60e51b81526004016104749190612e78565b6060600080611f7684612154565b91935090915060019050816001811115611f9257611f92612e4b565b14611fdf5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e0000000000000000006044820152606401610474565b6040805160208082526104208201909252600091816020015b6040805180820190915260008082526020820152815260200190600190039081611ff85790505090506000835b865181101561214957602082106120915760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201526939ba103632b733ba341760b11b6064820152608401610474565b6000806120ce6040518060400160405280858c600001516120b29190612da7565b8152602001858c602001516120c79190612dd6565b9052612154565b5091509150604051806040016040528083836120ea9190612dd6565b8152602001848b602001516120ff9190612dd6565b81525085858151811061211457612114612c18565b602090810291909101015261212a600185612dd6565b93506121368183612dd6565b6121409084612dd6565b92505050612025565b508152949350505050565b6000806000808460000151116121ac5760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e00000000000000006044820152606401610474565b6020840151805160001a607f81116121d1576000600160009450945094505050612497565b60b7811161224d5760006121e6608083612da7565b90508087600001511161223b5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e000000000000006044820152606401610474565b60019550935060009250612497915050565b60bf811161233c57600061226260b783612da7565b9050808760000151116122b75760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e006044820152606401610474565b600183015160208290036101000a90046122d18183612dd6565b8851116123205760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e00000000000000006044820152606401610474565b61232b826001612dd6565b965094506000935061249792505050565b60f781116123b757600061235160c083612da7565b9050808760000151116123a65760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e0000000000000000006044820152606401610474565b600195509350849250612497915050565b60006123c460f783612da7565b9050808760000151116124195760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e0000006044820152606401610474565b600183015160208290036101000a90046124338183612dd6565b88511161247b5760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b210292628103637b733903634b9ba1760511b6044820152606401610474565b612486826001612dd6565b965094506001935061249792505050565b9193909250565b60606000826001600160401b038111156124ba576124ba612784565b6040519080825280601f01601f1916602001820160405280156124e4576020820181803683370190505b50905080516000036124f7579050610524565b8484016020820160005b85811015612519578281015182820152602001612501565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b6060610426826126a8565b60608161255f81601f612dd6565b101561259e5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610474565b826125a98382612dd6565b10156125e85760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610474565b6125f28284612dd6565b845110156126365760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610474565b606082158015612655576040519150600082526020820160405261269f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561268e578051835260209283019201612676565b5050858452601f01601f1916604052505b50949350505050565b606061042682602001516000846000015161249e565b6001600160a01b038116811461051157600080fd5b600080604083850312156126e657600080fd5b82356126f1816126be565b946020939093013593505050565b60006020828403121561271157600080fd5b8135610524816126be565b6001600160401b038116811461051157600080fd5b8035801515811461274157600080fd5b919050565b60008060006060848603121561275b57600080fd5b83356127668161271c565b92506020840135915061277b60408501612731565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156127bc576127bc612784565b60405290565b604051606081016001600160401b03811182821017156127bc576127bc612784565b604051601f8201601f191681016001600160401b038111828210171561280c5761280c612784565b604052919050565b600082601f83011261282557600080fd5b81356001600160401b0381111561283e5761283e612784565b612851601f8201601f19166020016127e4565b81815284602083860101111561286657600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561289657600080fd5b82356128a1816126be565b915060208301356001600160401b038111156128bc57600080fd5b6128c885828601612814565b9150509250929050565b6000602082840312156128e457600080fd5b5035919050565b60008060008060006080868803121561290357600080fd5b853561290e8161271c565b9450602086013561291e816126be565b93506040860135925060608601356001600160401b038082111561294157600080fd5b818801915088601f83011261295557600080fd5b81358181111561296457600080fd5b89602082850101111561297657600080fd5b9699959850939650602001949392505050565b60008060006060848603121561299e57600080fd5b83356129a98161271c565b925060208401356129b9816126be565b929592945050506040919091013590565b600080604083850312156129dd57600080fd5b823591506129ed60208401612731565b90509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020808385031215612aa157600080fd5b82356001600160401b0380821115612ab857600080fd5b9084019060808287031215612acc57600080fd5b612ad461279a565b8235612adf816126be565b815282840135612aee8161271c565b81850152604083013582811115612b0457600080fd5b612b1088828601612814565b60408301525060608084013583811115612b2957600080fd5b80850194505087601f850112612b3e57600080fd5b833583811115612b5057612b50612784565b8060051b612b5f8782016127e4565b918252858101870191878101908b841115612b7957600080fd5b88880192505b83831015612c0357823587811115612b975760008081fd5b8801808d03601f1901861315612bad5760008081fd5b612bb56127c2565b8a820135612bc2816126be565b815260408201358b8201528682013589811115612bdf5760008081fd5b612bed8f8d83860101612814565b6040830152508352509188019190880190612b7f565b93850193909352509198975050505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612c5657612c56612c2e565b5060010190565b600060808284031215612c6f57600080fd5b612c7761279a565b8251612c828161271c565b81526020830151612c928161271c565b6020820152604083810151908201526060928301519281019290925250919050565b600060208284031215612cc657600080fd5b5051919050565b600060208284031215612cdf57600080fd5b8151610524816126be565b60005b83811015612d05578181015183820152602001612ced565b50506000910152565b60008151808452612d26816020860160208601612cea565b601f01601f19169290920160200192915050565b6001600160401b03831681526040602082015260006105216040830184612d0e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8181038181111561042657610426612c2e565b60008251612dcc818460208701612cea565b9190910192915050565b8082018082111561042657610426612c2e565b60ff818116838216019081111561042657610426612c2e565b600060ff831680612e2357634e487b7160e01b600052601260045260246000fd5b8060ff84160691505092915050565b60ff828116828216039081111561042657610426612c2e565b634e487b7160e01b600052602160045260246000fd5b808202811582820484141761042657610426612c2e565b6020815260006105246020830184612d0e56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220705188df6f705b59216fb40a6136900d0c74549bbe4d0406595394fc82f56f4f64736f6c63430008140033", + "balance": "0x0" + }, + "0x1670080000000000000000000000000000000005": { + "contractName": "SignalService", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0xe1ea4bb003891464eed655f99574ebf9ed4b743aaa8730cc2f046fe77b7072a6": "0x0000000000000000000000000000000000000000000000000000000000028c60", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167008000000000000000000000000000000005" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122086939faa9cc2f3fe1410043eff38cc933fdbaa97744a116ffa0de4487915f87464736f6c63430008140033", + "balance": "0x0" + }, + "0x0167008000000000000000000000000000010001": { + "contractName": "TaikoL2Impl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x6080604052600436106101d85760003560e01c80638cfb045911610102578063c7b9690811610095578063f2fde38b11610064578063f2fde38b14610654578063f535bd5614610674578063f940e38514610695578063ff4d1815146106b557600080fd5b8063c7b9690814610579578063da69d3db146105a1578063dac5df78146105c1578063e8e2c5fb146105d857600080fd5b8063a86f9d9e116100d1578063a86f9d9e146104db578063b310e9e9146104fb578063c3f909d41461051b578063c7a2fc601461055957600080fd5b80638cfb0459146104125780638da5cb5b146104775780639ee512f214610495578063a7e022d1146104bb57600080fd5b80634f1ef2861161017a578063715018a611610149578063715018a61461037b5780638456cb59146103905780638551f41e146103a55780638aff87b2146103d357600080fd5b80634f1ef286146102f357806352d1902d14610306578063591aad8a1461031b5780635c975abb1461035a57600080fd5b80633659cfe6116101b65780633659cfe6146102645780633ab76e9f146102865780633eb6b8cf146102be5780633f4ba83a146102de57600080fd5b806310da3738146101dd57806323ac7136146102245780632f98047314610244575b600080fd5b3480156101e957600080fd5b506102117f92954368afd3caa1f3ce3ead0069c1af414054aefe1ef9aeacc1bf426222ce3881565b6040519081526020015b60405180910390f35b34801561023057600080fd5b5061021161023f3660046126ce565b6106d5565b34801561025057600080fd5b5060005b604051901515815260200161021b565b34801561027057600080fd5b5061028461027f366004612700565b610735565b005b34801561029257600080fd5b506097546102a6906001600160a01b031681565b6040516001600160a01b03909116815260200161021b565b3480156102ca57600080fd5b506102a66102d936600461272b565b61081d565b3480156102ea57600080fd5b50610284610834565b6102846103013660046127b3565b6108b2565b34801561031257600080fd5b50610211610982565b34801561032757600080fd5b5061033b61033636600461285a565b610a35565b6040805160ff909416845260208401929092529082015260600161021b565b34801561036657600080fd5b50610254606554610100900460ff1660021490565b34801561038757600080fd5b50610284610c70565b34801561039c57600080fd5b50610284610c84565b3480156103b157600080fd5b506102116103c0366004612890565b61012d6020526000908152604090205481565b3480156103df57600080fd5b5060fb546103fa90600160401b90046001600160401b031681565b6040516001600160401b03909116815260200161021b565b34801561041e57600080fd5b5061043261042d3660046126ce565b610cfd565b60405161021b919060006080820190506001600160401b0380845116835280602085015116602084015250604083015160408301526060830151606083015292915050565b34801561048357600080fd5b506033546001600160a01b03166102a6565b3480156104a157600080fd5b506102a671777735367b36bc9b61c50022d9d0700db4ec81565b3480156104c757600080fd5b506102116104d63660046128c2565b610da5565b3480156104e757600080fd5b506102a66104f63660046128f7565b610dd7565b34801561050757600080fd5b5061028461051636600461291c565b610ded565b34801561052757600080fd5b5060408051808201825263039387008082526008602092830190815283519182525160ff16918101919091520161021b565b34801561056557600080fd5b5061028461057436600461295c565b610fb0565b34801561058557600080fd5b50610130546103fa90600160401b90046001600160401b031681565b3480156105ad57600080fd5b506102846105bc3660046129e0565b61120a565b3480156105cd57600080fd5b5061021161012f5481565b3480156105e457600080fd5b506106296105f3366004612890565b61012e602052600090815260409020805460018201546002909201546001600160401b0380831693600160401b90930416919084565b604080516001600160401b03958616815294909316602085015291830152606082015260800161021b565b34801561066057600080fd5b5061028461066f366004612700565b6115d9565b34801561068057600080fd5b50610130546103fa906001600160401b031681565b3480156106a157600080fd5b506102846106b0366004612a28565b61164f565b3480156106c157600080fd5b5060fb546103fa906001600160401b031681565b600043826001600160401b0316106106ef57506000919050565b6106fb61010043612a6c565b826001600160401b03161061071857506001600160401b03164090565b506001600160401b0316600090815261012d602052604090205490565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000100011630036107865760405162461bcd60e51b815260040161077d90612a7f565b60405180910390fd5b7f00000000000000000000000001670080000000000000000000000000000100016001600160a01b03166107cf600080516020612dca833981519152546001600160a01b031690565b6001600160a01b0316146107f55760405162461bcd60e51b815260040161077d90612acb565b6107fe8161179a565b6040805160008082526020820190925261081a918391906117a2565b50565b600061082a848484611912565b90505b9392505050565b610848606554610100900460ff1660021490565b6108655760405163bae6e2a960e01b815260040160405180910390fd5b61086d6119fb565b6065805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000100011630036108fa5760405162461bcd60e51b815260040161077d90612a7f565b7f00000000000000000000000001670080000000000000000000000000000100016001600160a01b0316610943600080516020612dca833981519152546001600160a01b031690565b6001600160a01b0316146109695760405162461bcd60e51b815260040161077d90612acb565b6109728261179a565b61097e828260016117a2565b5050565b6000306001600160a01b037f00000000000000000000000001670080000000000000000000000000000100011614610a225760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161077d565b50600080516020612dca83398151915290565b60008060008360ff16600114158015610a5257508360ff16600214155b15610a705760405163bcd2d90d60e01b815260040160405180910390fd5b8360ff16600114610aa1577fc6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5610ac3565b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817985b915060008460ff16600114610af8577fad77eceea844778cb4376153fc8f06f12f1695df4585bf75bfb17ec19ce90818610b1a565b7fb4a95509ce05fe8d45987859a067780d16a367c0e2cacf79cd301b93fb7179405b905060008560ff16600114610b4f577f71620584f61c57e688bbd3fd7a39a036e588d962c4c830f3dacbc15c917e02f2610b71565b7f45b59254b0320fd853f3f38ac574999e91bd75fd5e6cab9c22c5e71fc6d276e45b82880192831001905060ff8616600103610bab57610ba48282600170014551231950b75fc4402da1732fc9bebe19611a34565b9250610c1a565b610bf37f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a1610bee8484600170014551231950b75fc4402da1732fc9bebe19611a34565b611a83565b9092509050610c178282600170014551231950b75fc4402da1732fc9bebe19611a34565b92505b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610c6757610c5e8370014551231950b75fc4402da1732fc9bebe19612a6c565b92506001851894505b50509250925092565b610c786119fb565b610c826000611aa2565b565b610c98606554610100900460ff1660021490565b15610cb65760405163bae6e2a960e01b815260040160405180910390fd5b610cbe6119fb565b6065805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016108a8565b6040805160808101825260008082526020820181905291810182905260608101829052906001600160401b03831615610d365782610d4b565b61013054600160401b90046001600160401b03165b6001600160401b03908116600090815261012e6020908152604091829020825160808101845281548086168252600160401b9004909416918401919091526001810154918301919091526002015460608201529392505050565b6000610dcf610dc860408051808201909152630393870081526008602082015290565b8484611af4565b509392505050565b6000610de4468484611912565b90505b92915050565b600054610100900460ff1615808015610e0d5750600054600160ff909116105b80610e275750303b158015610e27575060005460ff166001145b610e8a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161077d565b6000805460ff191660011790558015610ead576000805461ff0019166101001790555b610eb78484611c2e565b600146111580610ece57506001600160401b034610155b15610eec576040516306cffa2760e01b815260040160405180910390fd5b4315610f395743600103610f20576000610f07600143612a6c565b600081815261012d602052604090209040905550610f39565b604051635a0f9e4160e11b815260040160405180910390fd5b610130805467ffffffffffffffff19166001600160401b038416179055610f5f43611c97565b5061012f558015610faa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60fb546001600160401b03848116600160401b9092041614610fe5576040516339985e7960e11b815260040160405180910390fd5b610ff96562726964676560d01b6000610dd7565b6001600160a01b0316336001600160a01b03161461102a57604051632efb161b60e21b815260040160405180910390fd5b6000336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561106a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108e9190612b17565b60fb5460408201519192506001600160401b0391821691161415806110d457506033546001600160a01b03166001600160a01b031681602001516001600160a01b031614155b156110f257604051632efb161b60e21b815260040160405180910390fd5b6000306001600160a01b0316848460405161110e929190612b7f565b6000604051808303816000865af19150503d806000811461114b576040519150601f19603f3d011682016040523d82523d6000602084013e611150565b606091505b505090508061117257604051630103c9e160e11b815260040160405180910390fd5b61117c8385612b8f565b60fb80546001600160e01b03199290921691600160401b90046001600160401b03169060086111aa83612bbf565b91906101000a8154816001600160401b0302191690836001600160401b031602179055506001600160401b03167f3c5c4a24a5f3333977c7d675661b0611a16f3c611b9ea63c0be82f4ffa9174c560405160405180910390a35050505050565b60655460ff16600119016112315760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff19166002179055831580611249575082155b8061125b57506001600160401b038216155b80611276575043600114158015611276575063ffffffff8116155b156112945760405163053fd54760e01b815260040160405180910390fd5b3371777735367b36bc9b61c50022d9d0700db4ec146112c657604051636494e9f760e01b815260040160405180910390fd5b60001943016000806112d783611c97565b915091508161012f54146112fe5760405163d719258d60e01b815260040160405180910390fd5b600061131e60408051808201909152630393870081526008602082015290565b9050600061132d828888611af4565b610130805467ffffffffffffffff19166001600160401b03929092169190911790559050488114611371576040516336d54d4f60e11b815260040160405180910390fd5b61138d6d7369676e616c5f7365727669636560901b6000610dd7565b6001600160a01b03166366ca2bc0896040518263ffffffff1660e01b81526004016113ba91815260200190565b6020604051808303816000875af11580156113d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fd9190612be5565b50866001600160401b0316436001600160401b03167ff35ec3b262cf74881db1b8051c635496bccb1497a1e776dacb463d0e0e2b0f518b8b60405161144c929190918252602082015260400190565b60405180910390a3844061012d6000878152602001908152602001600020819055506040518060800160405280886001600160401b03168152602001436001600160401b031681526020018a81526020018981525061012e6000896001600160401b0316815260200190815260200160002060008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160010155606082015181600201559050508261012f819055508661013060086101000a8154816001600160401b0302191690836001600160401b031602179055507f41c3f410f5c8ac36bb46b1dccef0de0f964087c9e688795fa02ecfa2c20b3fe4854061013060009054906101000a90046001600160401b03166040516115b99291909182526001600160401b0316602082015260400190565b60405180910390a150506065805460ff1916600117905550505050505050565b6115e16119fb565b6001600160a01b0381166116465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161077d565b61081a81611aa2565b6116576119fb565b60655460ff166001190161167e5760405163dfc60d8560e01b815260040160405180910390fd5b6065805460ff1916600217905561169f606554610100900460ff1660021490565b156116bd5760405163bae6e2a960e01b815260040160405180910390fd5b6001600160a01b0381166116e45760405163053fd54760e01b815260040160405180910390fd5b6001600160a01b03821661170a576117056001600160a01b03821647611d2a565b611789565b6040516370a0823160e01b81523060048201526117899082906001600160a01b038516906370a0823190602401602060405180830381865afa158015611754573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117789190612be5565b6001600160a01b0385169190611d35565b50506065805460ff19166001179055565b61081a6119fb565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156117da576117d583611d87565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611834575060408051601f3d908101601f1916820190925261183191810190612be5565b60015b6118975760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161077d565b600080516020612dca83398151915281146119065760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161077d565b506117d5838383611e23565b6097546000906001600160a01b031661193e57604051638ed88b2560e01b815260040160405180910390fd5b609754604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b03909116906328f713cc90604401602060405180830381865afa158015611996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ba9190612bfe565b9050811580156119d157506001600160a01b038116155b1561082d57836119e084611e48565b604051630d69e23960e41b815260040161077d929190612c6b565b6033546001600160a01b03163314801590611a165750333014155b15610c8257604051632efb161b60e21b815260040160405180910390fd5b600060405160408152602080820152602060408201528460608201528560808201528360a08201528260c082015260208160e08360056107d05a03fa611a7957600080fd5b5195945050505050565b6000806000198385098385029250828110838203039150509250929050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6101305460009081906001600160401b031615611c195761013054600090611b2c9063ffffffff8616906001600160401b0316612c8d565b61013054909150600090600160401b90046001600160401b031615801590611b6a5750610130546001600160401b03600160401b9091048116908716115b15611b995761013054611b8d90600160401b90046001600160401b031687612ca0565b6001600160401b031690505b8015611bd2578651600090611bb49063ffffffff1683612cc7565b9050808311611bc4576001611bce565b611bce8184612a6c565b9250505b611be3826001600160401b03611eda565b9250611c14836001600160401b0316886000015163ffffffff16896020015160ff16611c0f9190612cc7565b611eef565b935050505b81600003611c2657600191505b935093915050565b611c3782611f3a565b6001600160401b0381161580611c55575046816001600160401b0316145b15611c735760405163f49a838160e01b815260040160405180910390fd5b60fb805467ffffffffffffffff19166001600160401b039290921691909117905550565b600080611ca2612699565b60005b60ff81108015611cb85750806001018510155b15611cea576000198186030180408360ff83066101008110611cdc57611cdc612cf4565b602002015250600101611ca5565b5046611fe082015261200081209250834081611d0760ff87612d0a565b6101008110611d1857611d18612cf4565b60200201526120009020919391925050565b61097e82825a611f4b565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526117d5908490611fe9565b6001600160a01b0381163b611df45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161077d565b600080516020612dca83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611e2c836120bb565b600082511180611e395750805b156117d557610faa83836120fb565b60606000611e5583612120565b60010190506000816001600160401b03811115611e7457611e7461276d565b6040519080825280601f01601f191660200182016040528015611e9e576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611ea857509392505050565b6000818311611ee95782610de4565b50919050565b600081600003611f1257604051636296f1b960e11b815260040160405180910390fd5b81670de0b6b3a7640000611f2685856121f8565b611f309190612d1e565b610de49190612d1e565b611f42612248565b61081a81612261565b6001600160a01b038316611f7257604051634c67134d60e11b815260040160405180910390fd5b6000836001600160a01b0316838390604051600060405180830381858888f193505050503d8060008114611fc2576040519150601f19603f3d011682016040523d82523d6000602084013e611fc7565b606091505b5050905080610faa57604051634c67134d60e11b815260040160405180910390fd5b600061203e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166122aa9092919063ffffffff16565b8051909150156117d5578080602001905181019061205c9190612d32565b6117d55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161077d565b6120c481611d87565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610de48383604051806060016040528060278152602001612dea602791396122b9565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061215f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061218b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106121a957662386f26fc10000830492506010015b6305f5e10083106121c1576305f5e100830492506008015b61271083106121d557612710830492506004015b606483106121e7576064830492506002015b600a8310610de75760010192915050565b6000808261220e670de0b6b3a764000086612cc7565b6122189190612d1e565b9050680755bf798b4a1bf1e48111156122375750680755bf798b4a1bf1e45b61224081612331565b949350505050565b6122506124bc565b6065805461ffff1916610101179055565b6001600160401b0346106122885760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b606061082a84846000856124eb565b6060600080856001600160a01b0316856040516122d69190612d4f565b600060405180830381855af49150503d8060008114612311576040519150601f19603f3d011682016040523d82523d6000602084013e612316565b606091505b5091509150612327868383876125c6565b9695505050505050565b6000680248ce36a70cb26b3e19821361234c57506000919050565b680755bf798b4a1bf1e5821261237557604051631a93c68960e11b815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056001605f1b01901d6bb17217f7d1cf79abc9e3b39881029093036c240c330e9fb2d9cbaf0fd5aafb1981018102606090811d6d0277594991cfc85f6e2461837cd9018202811d6d1a521255e34f6a5061b25ef1c9c319018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d6e02c72388d9f74f51a9331fed693f1419018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084016d01d3967ed30fc4f89c02bab5708119010290911d6e0587f503bb6ea29d25fcb740196450019091026d360d7aeea093263ecc6e0ecb291760621b010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b600054610100900460ff166124e35760405162461bcd60e51b815260040161077d90612d6b565b610c8261263f565b60608247101561254c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161077d565b600080866001600160a01b031685876040516125689190612d4f565b60006040518083038185875af1925050503d80600081146125a5576040519150601f19603f3d011682016040523d82523d6000602084013e6125aa565b606091505b50915091506125bb878383876125c6565b979650505050505050565b6060831561263557825160000361262e576001600160a01b0385163b61262e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161077d565b5081612240565b612240838361266f565b600054610100900460ff166126665760405162461bcd60e51b815260040161077d90612d6b565b610c8233611aa2565b81511561267f5781518083602001fd5b8060405162461bcd60e51b815260040161077d9190612db6565b604051806120000160405280610100906020820280368337509192915050565b6001600160401b038116811461081a57600080fd5b6000602082840312156126e057600080fd5b813561082d816126b9565b6001600160a01b038116811461081a57600080fd5b60006020828403121561271257600080fd5b813561082d816126eb565b801515811461081a57600080fd5b60008060006060848603121561274057600080fd5b833561274b816126b9565b92506020840135915060408401356127628161271d565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156127ab576127ab61276d565b604052919050565b600080604083850312156127c657600080fd5b82356127d1816126eb565b91506020838101356001600160401b03808211156127ee57600080fd5b818601915086601f83011261280257600080fd5b8135818111156128145761281461276d565b612826601f8201601f19168501612783565b9150808252878482850101111561283c57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806040838503121561286d57600080fd5b82359150602083013560ff8116811461288557600080fd5b809150509250929050565b6000602082840312156128a257600080fd5b5035919050565b803563ffffffff811681146128bd57600080fd5b919050565b600080604083850312156128d557600080fd5b82356128e0816126b9565b91506128ee602084016128a9565b90509250929050565b6000806040838503121561290a57600080fd5b8235915060208301356128858161271d565b60008060006060848603121561293157600080fd5b833561293c816126eb565b9250602084013561294c816126b9565b91506040840135612762816126b9565b60008060006040848603121561297157600080fd5b833561297c816126b9565b925060208401356001600160401b038082111561299857600080fd5b818601915086601f8301126129ac57600080fd5b8135818111156129bb57600080fd5b8760208285010111156129cd57600080fd5b6020830194508093505050509250925092565b600080600080608085870312156129f657600080fd5b84359350602085013592506040850135612a0f816126b9565b9150612a1d606086016128a9565b905092959194509250565b60008060408385031215612a3b57600080fd5b8235612a46816126eb565b91506020830135612885816126eb565b634e487b7160e01b600052601160045260246000fd5b81810381811115610de757610de7612a56565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060608284031215612b2957600080fd5b604051606081018181106001600160401b0382111715612b4b57612b4b61276d565b604052825181526020830151612b60816126eb565b60208201526040830151612b73816126b9565b60408201529392505050565b8183823760009101908152919050565b6001600160e01b03198135818116916004851015612bb75780818660040360031b1b83161692505b505092915050565b60006001600160401b03808316818103612bdb57612bdb612a56565b6001019392505050565b600060208284031215612bf757600080fd5b5051919050565b600060208284031215612c1057600080fd5b815161082d816126eb565b60005b83811015612c36578181015183820152602001612c1e565b50506000910152565b60008151808452612c57816020860160208601612c1b565b601f01601f19169290920160200192915050565b6001600160401b038316815260406020820152600061082a6040830184612c3f565b80820180821115610de757610de7612a56565b6001600160401b03828116828216039080821115612cc057612cc0612a56565b5092915050565b8082028115828204841417610de757610de7612a56565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600082612d1957612d19612cde565b500690565b600082612d2d57612d2d612cde565b500490565b600060208284031215612d4457600080fd5b815161082d8161271d565b60008251612d61818460208701612c1b565b9190910192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b602081526000610de46020830184612c3f56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122076b52e7878d08f567e8949c0ef1ef22e0029f1465213d13936a495089d1b0db464736f6c63430008140033", + "balance": "0x0" + }, + "0x1670080000000000000000000000000000010001": { + "contractName": "TaikoL2", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670080000000000000000000000000000010002", + "0x00000000000000000000000000000000000000000000000000000000000000fb": "0x0000000000000000000000000000000000000000000000000000000000004268", + "0x0000000000000000000000000000000000000000000000000000000000000130": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x000000000000000000000000000000000000000000000000000000000000012f": "0xcba89937559a0fd2dc6072d1dbd087a2a2ddc3f15e3e33ce15f1f55c29c89534", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167008000000000000000000000000000010001" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122086939faa9cc2f3fe1410043eff38cc933fdbaa97744a116ffa0de4487915f87464736f6c63430008140033", + "balance": "0x0" + }, + "0x0167008000000000000000000000000000010002": { + "contractName": "RollupAddressManagerImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190" + }, + "code": "0x6080604052600436106100a75760003560e01c8063715018a611610064578063715018a6146101b45780638456cb59146101c95780638da5cb5b146101de578063d8f4648f146101fc578063e1c7392a1461021c578063f2fde38b1461023157600080fd5b806328f713cc146100ac5780633659cfe6146101165780633f4ba83a146101385780634f1ef2861461014d57806352d1902d146101605780635c975abb14610183575b600080fd5b3480156100b857600080fd5b506100f96100c7366004610ce9565b67ffffffffffffffff91909116600090815260976020908152604080832093835292905220546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561012257600080fd5b50610136610131366004610d2a565b610251565b005b34801561014457600080fd5b50610136610339565b61013661015b366004610d5b565b6103b7565b34801561016c57600080fd5b50610175610487565b60405190815260200161010d565b34801561018f57600080fd5b506101a4606554610100900460ff1660021490565b604051901515815260200161010d565b3480156101c057600080fd5b5061013661053a565b3480156101d557600080fd5b5061013661054e565b3480156101ea57600080fd5b506033546001600160a01b03166100f9565b34801561020857600080fd5b50610136610217366004610e1d565b6105c7565b34801561022857600080fd5b50610136610654565b34801561023d57600080fd5b5061013661024c366004610d2a565b610764565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000100021630036102a25760405162461bcd60e51b815260040161029990610e59565b60405180910390fd5b7f00000000000000000000000001670080000000000000000000000000000100026001600160a01b03166102eb600080516020610fc9833981519152546001600160a01b031690565b6001600160a01b0316146103115760405162461bcd60e51b815260040161029990610ea5565b61031a816107da565b60408051600080825260208201909252610336918391906107e2565b50565b61034d606554610100900460ff1660021490565b61036a5760405163bae6e2a960e01b815260040160405180910390fd5b610372610952565b6065805461ff0019166101001790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6001600160a01b037f00000000000000000000000001670080000000000000000000000000000100021630036103ff5760405162461bcd60e51b815260040161029990610e59565b7f00000000000000000000000001670080000000000000000000000000000100026001600160a01b0316610448600080516020610fc9833981519152546001600160a01b031690565b6001600160a01b03161461046e5760405162461bcd60e51b815260040161029990610ea5565b610477826107da565b610483828260016107e2565b5050565b6000306001600160a01b037f000000000000000000000000016700800000000000000000000000000001000216146105275760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610299565b50600080516020610fc983398151915290565b610542610952565b61054c60006109ac565b565b610562606554610100900460ff1660021490565b156105805760405163bae6e2a960e01b815260040160405180910390fd5b610588610952565b6065805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016103ad565b6105cf610952565b67ffffffffffffffff8316600081815260976020908152604080832086845282529182902080546001600160a01b038681166001600160a01b0319831681179093558451928352169181018290529092859290917f500dcd607a98daece9bccc2511bf6032471252929de73caf507aae0e082f8453910160405180910390a350505050565b600054610100900460ff16158080156106745750600054600160ff909116105b8061068e5750303b15801561068e575060005460ff166001145b6106f15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610299565b6000805460ff191660011790558015610714576000805461ff0019166101001790555b61071c6109fe565b8015610336576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b61076c610952565b6001600160a01b0381166107d15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610299565b610336816109ac565b610336610952565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561081a5761081583610a17565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610874575060408051601f3d908101601f1916820190925261087191810190610ef1565b60015b6108d75760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610299565b600080516020610fc983398151915281146109465760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610299565b50610815838383610ab3565b6033546001600160a01b0316331461054c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610299565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610a06610ade565b6065805461ffff1916610101179055565b6001600160a01b0381163b610a845760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610299565b600080516020610fc983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610abc83610b0d565b600082511180610ac95750805b1561081557610ad88383610b4d565b50505050565b600054610100900460ff16610b055760405162461bcd60e51b815260040161029990610f0a565b61054c610b79565b610b1681610a17565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610b728383604051806060016040528060278152602001610fe960279139610ba9565b9392505050565b600054610100900460ff16610ba05760405162461bcd60e51b815260040161029990610f0a565b61054c336109ac565b6060600080856001600160a01b031685604051610bc69190610f79565b600060405180830381855af49150503d8060008114610c01576040519150601f19603f3d011682016040523d82523d6000602084013e610c06565b606091505b5091509150610c1786838387610c21565b9695505050505050565b60608315610c90578251600003610c89576001600160a01b0385163b610c895760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610299565b5081610c9a565b610c9a8383610ca2565b949350505050565b815115610cb25781518083602001fd5b8060405162461bcd60e51b81526004016102999190610f95565b803567ffffffffffffffff81168114610ce457600080fd5b919050565b60008060408385031215610cfc57600080fd5b610d0583610ccc565b946020939093013593505050565b80356001600160a01b0381168114610ce457600080fd5b600060208284031215610d3c57600080fd5b610b7282610d13565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610d6e57600080fd5b610d7783610d13565b9150602083013567ffffffffffffffff80821115610d9457600080fd5b818501915085601f830112610da857600080fd5b813581811115610dba57610dba610d45565b604051601f8201601f19908116603f01168101908382118183101715610de257610de2610d45565b81604052828152886020848701011115610dfb57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600060608486031215610e3257600080fd5b610e3b84610ccc565b925060208401359150610e5060408501610d13565b90509250925092565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215610f0357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b83811015610f70578181015183820152602001610f58565b50506000910152565b60008251610f8b818460208701610f55565b9190910192915050565b6020815260008251806020840152610fb4816040850160208701610f55565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204e2030d9883d08dca7ecdc1d78b36ee54b3130abcb1c45646b02f76d950ff54a64736f6c63430008140033", + "balance": "0x0" + }, + "0x1670080000000000000000000000000000010002": { + "contractName": "RollupAddressManager", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x0000000000000000000000001d2d1bb9d180541e88a6a682acf3f61c1605b190", + "0x94555ab63188e8b4764fc4f82f2c4233aef599e74a8259d1932a012388b30959": "0x0000000000000000000000001670080000000000000000000000000000010001", + "0xcffa903d987c324286ac7635484e4c4cfab2b3bddddb45773db47593d56d5616": "0x0000000000000000000000001670080000000000000000000000000000000001", + "0x72cf3566ee7eea8d37039862c9f5956b8622ca74729c83890cfd90fc8645bdcc": "0x0000000000000000000000001670080000000000000000000000000000000005", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167008000000000000000000000000000010002" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122086939faa9cc2f3fe1410043eff38cc933fdbaa97744a116ffa0de4487915f87464736f6c63430008140033", + "balance": "0x0" + }, + "0x0167008000000000000000000000000000010099": { + "contractName": "RegularERC20", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x526567756c617245524332300000000000000000000000000000000000000018", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x52474c0000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x00000000000000000000000000000000000000000000000000000000001f4000", + "0x5498fa9c17918e5d4d0816fce6e97d920fe93d661d3e60d5efd74f67cd7323ec": "0x00000000000000000000000000000000000000000000000000000000000fa000", + "0x69525d8dc81450841f00770b54dbac752c8f05bb6322429f864610dd9f952781": "0x00000000000000000000000000000000000000000000000000000000000fa000" + }, + "code": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d57600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101a0565b6040516100c3919061069c565b60405180910390f35b6100df6100da366004610706565b610232565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610730565b61024c565b604051601281526020016100c3565b6100df610131366004610706565b610270565b6100f361014436600461076c565b6001600160a01b031660009081526020819052604090205490565b6100b6610292565b6100df610175366004610706565b6102a1565b6100df610188366004610706565b610321565b6100f361019b36600461078e565b61032f565b6060600380546101af906107c1565b80601f01602080910402602001604051908101604052809291908181526020018280546101db906107c1565b80156102285780601f106101fd57610100808354040283529160200191610228565b820191906000526020600020905b81548152906001019060200180831161020b57829003601f168201915b5050505050905090565b60003361024081858561035a565b60019150505b92915050565b60003361025a85828561047e565b6102658585856104f8565b506001949350505050565b600033610240818585610283838361032f565b61028d91906107fb565b61035a565b6060600480546101af906107c1565b600033816102af828661032f565b9050838110156103145760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b610265828686840361035a565b6000336102408185856104f8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103bc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161030b565b6001600160a01b03821661041d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161030b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061048a848461032f565b905060001981146104f257818110156104e55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161030b565b6104f2848484840361035a565b50505050565b6001600160a01b03831661055c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161030b565b6001600160a01b0382166105be5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161030b565b6001600160a01b038316600090815260208190526040902054818110156106365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161030b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f2565b600060208083528351808285015260005b818110156106c9578581018301518582016040015282016106ad565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461070157600080fd5b919050565b6000806040838503121561071957600080fd5b610722836106ea565b946020939093013593505050565b60008060006060848603121561074557600080fd5b61074e846106ea565b925061075c602085016106ea565b9150604084013590509250925092565b60006020828403121561077e57600080fd5b610787826106ea565b9392505050565b600080604083850312156107a157600080fd5b6107aa836106ea565b91506107b8602084016106ea565b90509250929050565b600181811c908216806107d557607f821691505b6020821081036107f557634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561024657634e487b7160e01b600052601160045260246000fdfea26469706673582212201c8a1209aa9600f67ac28ebd0e9b08eed67368c03df4c3b80ea4d635a1f925d564736f6c63430008140033", + "balance": "0x0" + } +} diff --git a/crates/chainspec/res/genesis/taiko/mainnet.json b/crates/chainspec/res/genesis/taiko/mainnet.json new file mode 100644 index 000000000000..3a41c2ca4054 --- /dev/null +++ b/crates/chainspec/res/genesis/taiko/mainnet.json @@ -0,0 +1,205 @@ +{ + "0x69AA0361Dbb0527d4F1e5312403Bd41788fe61Fe": { + "balance": "0x0ac9ae05a71ebc0000" + }, + "0x00000968bfe78aa27cd380d629d61c89bd6b03e8": { + "balance": "0x0de0b6b3a7640000" + }, + "0x0167000000000000000000000000000000000006": { + "contractName": "SharedAddressManagerImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be" + }, + "code": "0x608060405260043610610126575f3560e01c80635c975abb116100a85780638da5cb5b1161006d5780638da5cb5b146102d5578063a86f9d9e146102f2578063d8f4648f14610311578063e07baba614610330578063e30c39781461036f578063f2fde38b1461038c575f80fd5b80635c975abb14610265578063715018a61461028557806379ba5097146102995780638456cb59146102ad5780638abf6077146102c1575f80fd5b80633ab76e9f116100ee5780633ab76e9f146101de5780633eb6b8cf146101fd5780633f4ba83a1461021c5780634f1ef2861461023057806352d1902d14610243575f80fd5b8063069489a21461012a57806319ab453c1461014057806328f713cc1461015f5780633075db561461019b5780633659cfe6146101bf575b5f80fd5b348015610135575f80fd5b5061013e6103ab565b005b34801561014b575f80fd5b5061013e61015a36600461118f565b61045b565b34801561016a575f80fd5b5061017e6101793660046111c6565b610533565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101a6575f80fd5b506101af610567565b6040519015158152602001610192565b3480156101ca575f80fd5b5061013e6101d936600461118f565b61057b565b3480156101e9575f80fd5b5060975461017e906001600160a01b031681565b348015610208575f80fd5b5061017e6102173660046111fd565b610642565b348015610227575f80fd5b5061013e610656565b61013e61023e36600461124a565b61066a565b34801561024e575f80fd5b5061025761071f565b604051908152602001610192565b348015610270575f80fd5b506101af60c954610100900460ff1660021490565b348015610290575f80fd5b5061013e6107d0565b3480156102a4575f80fd5b5061013e6107e1565b3480156102b8575f80fd5b5061013e610858565b3480156102cc575f80fd5b5061017e61086b565b3480156102e0575f80fd5b506033546001600160a01b031661017e565b3480156102fd575f80fd5b5061017e61030c366004611308565b610879565b34801561031c575f80fd5b5061013e61032b366004611332565b61088c565b34801561033b575f80fd5b5060c9546103569062010000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610192565b34801561037a575f80fd5b506065546001600160a01b031661017e565b348015610397575f80fd5b5061013e6103a636600461118f565b61096a565b6103b36109db565b5f54600290610100900460ff161580156103d357505f5460ff8083169116105b6103f85760405162461bcd60e51b81526004016103ef9061136f565b60405180910390fd5b5f8054609780546001600160a01b0319163017905561ffff191660ff83169081176101001761ff0019169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b5f54610100900460ff161580801561047957505f54600160ff909116105b806104925750303b15801561049257505f5460ff166001145b6104ae5760405162461bcd60e51b81526004016103ef9061136f565b5f805460ff1916600117905580156104cf575f805461ff0019166101001790555b6104d882610a35565b609780546001600160a01b03191630179055801561052f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b67ffffffffffffffff82165f90815260fb602090815260408083208484529091529020546001600160a01b03165b92915050565b5f6002610572610a93565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000061630036105c35760405162461bcd60e51b81526004016103ef906113bd565b7f00000000000000000000000001670000000000000000000000000000000000066001600160a01b03166105f5610ad2565b6001600160a01b03161461061b5760405162461bcd60e51b81526004016103ef90611409565b61062481610aed565b604080515f8082526020820190925261063f91839190610af5565b50565b5f61064e848484610c64565b949350505050565b61065e610d57565b610668335f610de8565b565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000061630036106b25760405162461bcd60e51b81526004016103ef906113bd565b7f00000000000000000000000001670000000000000000000000000000000000066001600160a01b03166106e4610ad2565b6001600160a01b03161461070a5760405162461bcd60e51b81526004016103ef90611409565b61071382610aed565b61052f82826001610af5565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000000000616146107be5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103ef565b505f8051602061154283398151915290565b6107d86109db565b6106685f610e01565b60655433906001600160a01b0316811461084f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016103ef565b61063f81610e01565b610860610e1a565b610668336001610de8565b5f610874610ad2565b905090565b5f610885468484610c64565b9392505050565b6108946109db565b67ffffffffffffffff83165f90815260fb602090815260408083208584529091529020546001600160a01b039081169082168190036108e65760405163a883089360e01b815260040160405180910390fd5b67ffffffffffffffff84165f81815260fb6020908152604080832087845282529182902080546001600160a01b0319166001600160a01b038781169182179092558351908152908516918101919091528592917f500dcd607a98daece9bccc2511bf6032471252929de73caf507aae0e082f8453910160405180910390a350505050565b6109726109db565b606580546001600160a01b0383166001600160a01b031990911681179091556109a36033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146106685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ef565b5f54610100900460ff16610a5b5760405162461bcd60e51b81526004016103ef90611455565b610a63610e8b565b610a816001600160a01b03821615610a7b5781610e01565b33610e01565b5060c9805461ff001916610100179055565b5f610a9d46610eb1565b15610ac857507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020611542833981519152546001600160a01b031690565b61063f6109db565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610b2d57610b2883610ede565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610b87575060408051601f3d908101601f19168201909252610b84918101906114a0565b60015b610bea5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016103ef565b5f805160206115428339815191528114610c585760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016103ef565b50610b28838383610f79565b6097545f906001600160a01b031680610c9057604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa158015610ce3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0791906114b7565b915082158015610d1e57506001600160a01b038216155b15610d4f57604051632b0d65db60e01b815267ffffffffffffffff86166004820152602481018590526044016103ef565b509392505050565b610d6b60c954610100900460ff1660021490565b610d885760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff0019909116620100004267ffffffffffffffff1602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b604051630c2b8f8f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561063f81610fa3565b610e2e60c954610100900460ff1660021490565b15610e4c5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610dde565b5f54610100900460ff166106685760405162461bcd60e51b81526004016103ef90611455565b5f6001821480610ec2575061426882145b80610ecf575062aa36a782145b80610561575061056182610ff4565b6001600160a01b0381163b610f4b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016103ef565b5f8051602061154283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610f828361100b565b5f82511180610f8e5750805b15610b2857610f9d838361104a565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f617e2c8210158015610561575050617e90101590565b61101481610ede565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061088583836040518060600160405280602781526020016115626027913960605f80856001600160a01b03168560405161108691906114f4565b5f60405180830381855af49150503d805f81146110be576040519150601f19603f3d011682016040523d82523d5f602084013e6110c3565b606091505b50915091506110d4868383876110de565b9695505050505050565b6060831561114c5782515f03611145576001600160a01b0385163b6111455760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ef565b508161064e565b61064e83838151156111615781518083602001fd5b8060405162461bcd60e51b81526004016103ef919061150f565b6001600160a01b038116811461063f575f80fd5b5f6020828403121561119f575f80fd5b81356108858161117b565b803567ffffffffffffffff811681146111c1575f80fd5b919050565b5f80604083850312156111d7575f80fd5b6111e0836111aa565b946020939093013593505050565b803580151581146111c1575f80fd5b5f805f6060848603121561120f575f80fd5b611218846111aa565b92506020840135915061122d604085016111ee565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561125b575f80fd5b82356112668161117b565b9150602083013567ffffffffffffffff80821115611282575f80fd5b818501915085601f830112611295575f80fd5b8135818111156112a7576112a7611236565b604051601f8201601f19908116603f011681019083821181831017156112cf576112cf611236565b816040528281528860208487010111156112e7575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f8060408385031215611319575f80fd5b82359150611329602084016111ee565b90509250929050565b5f805f60608486031215611344575f80fd5b61134d846111aa565b92506020840135915060408401356113648161117b565b809150509250925092565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f602082840312156114b0575f80fd5b5051919050565b5f602082840312156114c7575f80fd5b81516108858161117b565b5f5b838110156114ec5781810151838201526020016114d4565b50505f910152565b5f82516115058184602087016114d2565b9190910192915050565b602081525f825180602084015261152d8160408501602087016114d2565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220546acba5cf9d5840aa28144a5c5b7154e1fbe167d06f40edc368d12eba1367a264736f6c63430008180033", + "balance": "0x0" + }, + "0x1670000000000000000000000000000000000006": { + "contractName": "SharedAddressManager", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be", + "0x64b0a7232218be95294a8bfd8a8f958623901c31d4ce8f421b3dd01d27f0bc86": "0x0000000000000000000000001670000000000000000000000000000000000001", + "0xebbdc3237c69e98e9c7200d31900043e365976ccb97440842fbb996b566e0bb9": "0x0000000000000000000000001670000000000000000000000000000000000002", + "0x5a9e1b5f43a1d207fe9f902e474332bbbf1ba2b4f37f37b6b8d12f3ad31d4ed2": "0x0000000000000000000000001670000000000000000000000000000000000003", + "0x998447bde1020afbc46a0d19e189af8347a307de25980b4c8bec9a5f9d78e6d8": "0x0000000000000000000000001670000000000000000000000000000000000004", + "0x8d8c812a6339da49d9820b2b8be4ab1418e11a25c28673c250614e6a14477ec3": "0x0000000000000000000000001670000000000000000000000000000000000005", + "0xe6c2d8673b995b9111fe92918db5f0f60e10a6202b33472a3a9c604bd47f978b": "0x0000000000000000000000000167000000000000000000000000000000010096", + "0x2f6768a857bebdbceec387bd5318de269435cd5a0e01a4be82dff1cd8c884d6d": "0x0000000000000000000000000167000000000000000000000000000000010097", + "0x3d93f0fc81e1363c2c9e5f0830edd3353096bce9270f43b5af8baf61835b20e0": "0x0000000000000000000000000167000000000000000000000000000000010098", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167000000000000000000000000000000000006" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167000000000000000000000000000000000001": { + "contractName": "BridgeImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be" + }, + "code": "0x608060405260043610610215575f3560e01c806382b5e8891161011e578063b8acae0e116100a8578063e07baba61161006d578063e07baba614610654578063e30c397814610691578063eefbf17e146106ae578063f09a4016146106d4578063f2fde38b146106f3575f80fd5b8063b8acae0e14610598578063be880c81146105b7578063c012fa77146105cd578063d0496d6a146105ec578063d1aaa5df14610634575f80fd5b80638e3881a9116100ee5780638e3881a9146104e7578063913b16cb146105255780639efc7a2e14610544578063a730cdfb14610563578063a86f9d9e14610579575f80fd5b806382b5e889146104835780638456cb59146104a25780638abf6077146104b65780638da5cb5b146104ca575f80fd5b80633f4ba83a1161019f5780635c975abb1161016f5780635c975abb146103e857806360620c6b14610408578063715018a61461042757806379ba50971461043b5780637cbadfaa1461044f575f80fd5b80633f4ba83a146103805780634f1ef2861461039457806352d1902d146103a75780635862f6e1146103c9575f80fd5b80633075db56116101e55780633075db56146102ac5780633659cfe6146102d05780633ab76e9f146102ef5780633c6cf473146103265780633eb6b8cf14610361575f80fd5b80630432873c14610220578063069489a2146102415780631bdb0037146102555780632035065e1461027f575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023f61023a366004613118565b610712565b005b34801561024c575f80fd5b5061023f6109a9565b610268610263366004613166565b610a60565b6040516102769291906132e7565b60405180910390f35b34801561028a575f80fd5b5061029e6102993660046132ff565b610e13565b6040516102769291906133b5565b3480156102b7575f80fd5b506102c06112ed565b6040519015158152602001610276565b3480156102db575f80fd5b5061023f6102ea366004613404565b611301565b3480156102fa575f80fd5b5060975461030e906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b348015610331575f80fd5b5061035461034036600461341f565b60fc6020525f908152604090205460ff1681565b6040516102769190613436565b34801561036c575f80fd5b5061030e61037b36600461345a565b6113c8565b34801561038b575f80fd5b5061023f6113de565b61023f6103a236600461355c565b6113f2565b3480156103b2575f80fd5b506103bb6114ab565b604051908152602001610276565b3480156103d4575f80fd5b506102c06103e33660046132ff565b61155d565b3480156103f3575f80fd5b506102c060c954610100900460ff1660021490565b348015610413575f80fd5b506102c0610422366004613166565b6115c8565b348015610432575f80fd5b5061023f611696565b348015610446575f80fd5b5061023f6116a7565b34801561045a575f80fd5b5061046e61046936600461341f565b61171e565b60405163ffffffff9091168152602001610276565b34801561048e575f80fd5b5061023f61049d366004613404565b61173a565b3480156104ad575f80fd5b5061023f6117ba565b3480156104c1575f80fd5b5061030e6117cd565b3480156104d5575f80fd5b506033546001600160a01b031661030e565b3480156104f2575f80fd5b506105066105013660046135a8565b6117db565b6040805192151583526001600160a01b03909116602083015201610276565b348015610530575f80fd5b5061023f61053f366004613166565b611807565b34801561054f575f80fd5b5061023f61055e3660046132ff565b6119f2565b34801561056e575f80fd5b5061046e6201d4c081565b348015610584575f80fd5b5061030e6105933660046135c1565b611ceb565b3480156105a3575f80fd5b506102c06105b23660046132ff565b611cf7565b3480156105c2575f80fd5b5061046e620c350081565b3480156105d8575f80fd5b506103bb6105e73660046136e3565b611d58565b3480156105f7575f80fd5b50610600611d87565b60408051825181526020808401516001600160a01b031690820152918101516001600160401b031690820152606001610276565b34801561063f575f80fd5b506103bb61064e36600461341f565b60031890565b34801561065f575f80fd5b5060c954610679906201000090046001600160401b031681565b6040516001600160401b039091168152602001610276565b34801561069c575f80fd5b506065546001600160a01b031661030e565b3480156106b9575f80fd5b5060fb5461067990600160401b90046001600160401b031681565b3480156106df575f80fd5b5061023f6106ee366004613714565b611ddb565b3480156106fe575f80fd5b5061023f61070d366004613404565b611ea2565b61072260e0830160c084016135a8565b46816001600160401b03161461074b57604051631c6c777560e31b815260040160405180910390fd5b61075b60a08401608085016135a8565b6001600160401b0381161580610779575046816001600160401b0316145b1561079757604051631c6c777560e31b815260040160405180910390fd5b6107ab60c954610100900460ff1660021490565b156107c95760405163bae6e2a960e01b815260040160405180910390fd5b60026107d3611f13565b60ff16036107f45760405163dfc60d8560e01b815260040160405180910390fd5b6107fe6002611f52565b5f61080b6105e786613740565b9050610818816001611f9a565b610826856101200135611fec565b610843576040516335856fbd60e21b815260040160405180910390fd5b5f610855610100870160e08801613404565b6001600160a01b0316336001600160a01b0316146108bc5761087d606087016040880161374b565b63ffffffff16158061088c5750845b156108aa576040516372b6e1c360e11b815260040160405180910390fd5b6108b586600161208d565b90506108c0565b5a90505b6108cb868383612115565b156108e0576108db8260026121e8565b610997565b841561097e576108f18260036121e8565b61090c6d7369676e616c5f7365727669636560901b5f611ceb565b60405163019b28af60e61b81526003841860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af1158015610954573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109789190613764565b50610997565b60405163161e3ead60e01b815260040160405180910390fd5b50506109a36001611f52565b50505050565b6109b16122a5565b5f54600290610100900460ff161580156109d157505f5460ff8083169116105b6109f65760405162461bcd60e51b81526004016109ed9061377b565b60405180910390fd5b5f805460fb805467ffffffffffffffff1916905560ff82815561010083815561ff001991851661ffff19909316831717169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201839052610140820152610ac660c0840160a08501613404565b6001600160a01b038116610aed5760405163538ba4f960e01b815260040160405180910390fd5b610afe610100850160e08601613404565b6001600160a01b038116610b255760405163538ba4f960e01b815260040160405180910390fd5b610b3560e0860160c087016135a8565b6001600160401b0381161580610b53575046816001600160401b0316145b15610b7157604051631c6c777560e31b815260040160405180910390fd5b610b8560c954610100900460ff1660021490565b15610ba35760405163bae6e2a960e01b815260040160405180910390fd5b6002610bad611f13565b60ff1603610bce5760405163dfc60d8560e01b815260040160405180910390fd5b610bd86002611f52565b610be8606087016040880161374b565b63ffffffff165f03610c3057610c0460408701602088016135a8565b6001600160401b031615610c2b5760405163c9f5178760e01b815260040160405180910390fd5b610c59565b610c3a865f61208d565b5f03610c59576040516308c2ad5360e01b815260040160405180910390fd5b5f610c6d61050160e0890160c08a016135a8565b50905080610c8e57604051631c6c777560e31b815260040160405180910390fd5b34610c9f6040890160208a016135a8565b610cb7906001600160401b03166101208a01356137dd565b14610cd557604051634ac2abdf60e11b815260040160405180910390fd5b610cde87613740565b60fb8054919650600160401b9091046001600160401b0316906008610d02836137f0565b82546101009290920a6001600160401b03818102199093169183160217909155908116865233606087015246166080860152610d3d85611d58565b9550857fe33fd33b4f45b95b1c196242240c5b5233129d724b578f95b66ce8d8aae9351786604051610d6f9190613815565b60405180910390a2610d926d7369676e616c5f7365727669636560901b5f611ceb565b6001600160a01b03166366ca2bc0876040518263ffffffff1660e01b8152600401610dbf91815260200190565b6020604051808303815f875af1158015610ddb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dff9190613764565b5050610e0b6001611f52565b505050915091565b5f80610e2960c954610100900460ff1660021490565b15610e475760405163bae6e2a960e01b815260040160405180910390fd5b6002610e51611f13565b60ff1603610e725760405163dfc60d8560e01b815260040160405180910390fd5b610e7c6002611f52565b5f5a905046610e9160e0880160c089016135a8565b6001600160401b031614610eb857604051631c6c777560e31b815260040160405180910390fd5b610ec860a08701608088016135a8565b6001600160401b03161580610ef4575046610ee960a08801608089016135a8565b6001600160401b0316145b15610f1257604051631c6c777560e31b815260040160405180910390fd5b610f22606087016040880161374b565b63ffffffff16158015610f575750610f41610100870160e08801613404565b6001600160a01b0316336001600160a01b031614155b15610f75576040516372b6e1c360e11b815260040160405180910390fd5b5f610f826105e788613740565b9050610f8e815f611f9a565b5f610faa6d7369676e616c5f7365727669636560901b5f611ceb565b604080516060810182525f8082529181019190915263ffffffff88166020820152909150610fea8284610fe360a08d0160808e016135a8565b8b8b6122ff565b63ffffffff166040808301919091526110299061100c908b0160208c016135a8565b611024906001600160401b03166101208c01356137dd565b611fec565b61107c5761103e6101008a0160e08b01613404565b6001600160a01b0316336001600160a01b03161461106f576040516335856fbd60e21b815260040160405180910390fd5b6001955060039450611293565b5f6110878a846123aa565b156110a057506002955060019450610120890135611105565b5f6110b26101008c0160e08d01613404565b6001600160a01b0316336001600160a01b0316146110da576110d58b600161208d565b6110dc565b5a5b90506110e98b8683612115565b156110fa57600297505f9650611103565b60019750600296505b505b61111560408b0160208c016135a8565b6001600160401b0316156112695761113360408b0160208c016135a8565b611146906001600160401b0316826137dd565b90506111596101008b0160e08c01613404565b6001600160a01b0316336001600160a01b03161415801561118e575061118560608b0160408c0161374b565b63ffffffff1615155b1561126957604082015163ffffffff16614e20025a86036201d4c00163ffffffff9081168085525f9183916111c6918391906124a116565b0390505f6111da60608e0160408f0161374b565b63ffffffff168d60200160208101906111f391906135a8565b6001600160401b031683028161120b5761120b613827565b0490505f48830290505f61124f8f602001602081019061122b91906135a8565b6001600160401b0316848410156112475784840160011c611249565b845b906124b6565b9586900395905061126333826188b86124ca565b50505050505b611291816188b86112816101008e0160e08f01613404565b6001600160a01b031691906124ca565b505b61129d83876121e8565b827fdaa934be05606f60ac49cd6e2ca4fbb3a5c15680dd3304880ea6abb590486e3d8a836040516112cf9291906139ce565b60405180910390a2505050506112e56001611f52565b935093915050565b5f60026112f8611f13565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000011630036113495760405162461bcd60e51b81526004016109ed90613a10565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b031661137b61250d565b6001600160a01b0316146113a15760405162461bcd60e51b81526004016109ed90613a5c565b6113aa81612528565b604080515f808252602082019092526113c591839190612530565b50565b5f6113d484848461269a565b90505b9392505050565b6113e661278b565b6113f0335f61281b565b565b6001600160a01b037f000000000000000000000000016700000000000000000000000000000000000116300361143a5760405162461bcd60e51b81526004016109ed90613a10565b7f00000000000000000000000001670000000000000000000000000000000000016001600160a01b031661146c61250d565b6001600160a01b0316146114925760405162461bcd60e51b81526004016109ed90613a5c565b61149b82612528565b6114a782826001612530565b5050565b5f306001600160a01b037f0000000000000000000000000167000000000000000000000000000000000001161461154a5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016109ed565b505f80516020613c818339815191525b90565b5f4661156f60a08601608087016135a8565b6001600160401b03161461158457505f6113d7565b6113d46115a26d7369676e616c5f7365727669636560901b5f611ceb565b6115b161064e6105e788613740565b6115c160e0880160c089016135a8565b86866128c8565b5f466115da60a08401608085016135a8565b6001600160401b0316146115ef57505f919050565b61160a6d7369676e616c5f7365727669636560901b5f611ceb565b6001600160a01b03166332676bc6306116256105e786613740565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa15801561166c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116909190613aa8565b92915050565b61169e6122a5565b6113f05f61294a565b60655433906001600160a01b031681146117155760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016109ed565b6113c58161294a565b5f6101c06020808404020160041b6113d7620c35008201612963565b806001600160a01b0381166117625760405163538ba4f960e01b815260040160405180910390fd5b6040516317066a5760e21b81523060048201526001600160a01b03831690635c19a95c906024015f604051808303815f87803b1580156117a0575f80fd5b505af11580156117b2573d5f803e3d5ffd5b505050505050565b6117c26129cb565b6113f033600161281b565b5f6117d661250d565b905090565b5f806117f2836562726964676560d01b60016113c8565b6001600160a01b038116151594909350915050565b61181760e0820160c083016135a8565b46816001600160401b03161461184057604051631c6c777560e31b815260040160405180910390fd5b61185060a08301608084016135a8565b6001600160401b038116158061186e575046816001600160401b0316145b1561188c57604051631c6c777560e31b815260040160405180910390fd5b6118a060c954610100900460ff1660021490565b156118be5760405163bae6e2a960e01b815260040160405180910390fd5b60026118c8611f13565b60ff16036118e95760405163dfc60d8560e01b815260040160405180910390fd5b6118f36002611f52565b611904610100840160e08501613404565b6001600160a01b0316336001600160a01b031614611935576040516372b6e1c360e11b815260040160405180910390fd5b5f6119426105e785613740565b905061194f816001611f9a565b61195a8160036121e8565b6119756d7369676e616c5f7365727669636560901b5f611ceb565b60405163019b28af60e61b81526003831860048201526001600160a01b0391909116906366ca2bc0906024016020604051808303815f875af11580156119bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119e19190613764565b50506119ed6001611f52565b505050565b611a0260a08401608085016135a8565b46816001600160401b031614611a2b57604051631c6c777560e31b815260040160405180910390fd5b611a3b60e0850160c086016135a8565b6001600160401b0381161580611a59575046816001600160401b0316145b15611a7757604051631c6c777560e31b815260040160405180910390fd5b611a8b60c954610100900460ff1660021490565b15611aa95760405163bae6e2a960e01b815260040160405180910390fd5b6002611ab3611f13565b60ff1603611ad45760405163dfc60d8560e01b815260040160405180910390fd5b611ade6002611f52565b5f611aeb6105e787613740565b9050611af7815f611f9a565b5f611b136d7369676e616c5f7365727669636560901b5f611ceb565b604051631933b5e360e11b8152306004820152602481018490529091506001600160a01b038216906332676bc690604401602060405180830381865afa158015611b5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b839190613aa8565b611ba05760405163ab035ad560e01b815260040160405180910390fd5b611bbf8160038418611bb860e08b0160c08c016135a8565b89896122ff565b50611bcb8260046121e8565b611bd9876101200135611fec565b611bf6576040516335856fbd60e21b815260040160405180910390fd5b611c1f62bc399d60e11b611c1060808a0160608b01613404565b6001600160a01b031690612a3c565b15611cbc57611c3e8230611c3960a08b0160808c016135a8565b612ac9565b611c4e6080880160608901613404565b6001600160a01b0316630178733a88610120013589856040518463ffffffff1660e01b8152600401611c81929190613ac3565b5f604051808303818588803b158015611c98575f80fd5b505af1158015611caa573d5f803e3d5ffd5b5050505050611cb7612b9a565b611cd8565b611cd86101208801356188b861128160c08b0160a08c01613404565b5050611ce46001611f52565b5050505050565b5f6113d746848461269a565b5f46611d0960e0860160c087016135a8565b6001600160401b031614611d1e57505f6113d7565b6113d4611d3c6d7369676e616c5f7365727669636560901b5f611ceb565b611d486105e787613740565b6115c160a08801608089016135a8565b5f81604051602001611d6a9190613ae4565b604051602081830303815290604052805190602001209050919050565b604080516060810182525f8082526020820181905291810191909152611dab612bbf565b80519091501580611dbd575080515f19145b1561155a57604051635ceed17360e01b815260040160405180910390fd5b5f54610100900460ff1615808015611df957505f54600160ff909116105b80611e125750303b158015611e1257505f5460ff166001145b611e2e5760405162461bcd60e51b81526004016109ed9061377b565b5f805460ff191660011790558015611e4f575f805461ff0019166101001790555b611e598383612cb9565b80156119ed575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b611eaa6122a5565b606580546001600160a01b0383166001600160a01b03199091168117909155611edb6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f611f1d46612cf3565b15611f4857507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b611f5b46612cf3565b15611f8657807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b806004811115611fac57611fac61338d565b5f83815260fc602052604090205460ff166004811115611fce57611fce61338d565b146114a7576040516319d893ad60e21b815260040160405180910390fd5b5f806120096c38bab7ba30afb6b0b730b3b2b960991b6001611ceb565b90506001600160a01b0381166120225750600192915050565b6040516315c638fb60e31b81525f6004820152602481018490526001600160a01b0382169063ae31c7d8906044015f604051808303815f87803b158015612067575f80fd5b505af1925050508015612078575060015b61208457505f92915050565b50600192915050565b5f806120a76120a0610140860186613b1a565b905061171e565b63ffffffff169050806120d86120c3606087016040880161374b565b63ffffffff16836124a190919063ffffffff16565b039150508180156120f757508060065a6120f390603f613b5c565b901c105b1561169057604051635fbdff7360e01b815260040160405180910390fd5b5f306121276080860160608701613404565b6001600160a01b03160361213d5761213d613b73565b815f0361214b57505f6113d7565b61216f8361215f6080870160608801613404565b611c3960a08801608089016135a8565b6121de61012085013583612187610140880188613b1a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121cd9250505061012089016101008a01613404565b6001600160a01b0316929190612d20565b90506113d7612b9a565b8060048111156121fa576121fa61338d565b5f83815260fc602052604090205460ff16600481111561221c5761221c61338d565b0361223a576040516319d893ad60e21b815260040160405180910390fd5b5f82815260fc60205260409020805482919060ff191660018360048111156122645761226461338d565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b2575634826040516122999190613436565b60405180910390a25050565b6033546001600160a01b031633146113f05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109ed565b5f856001600160a01b031663910af6ed85612324876562726964676560d01b5f6113c8565b8887876040518663ffffffff1660e01b8152600401612347959493929190613b87565b6020604051808303815f875af1925050508015612381575060408051601f3d908101601f1916820190925261237e91810190613764565b60015b61239e576040516314504c7360e31b815260040160405180910390fd5b90505b95945050505050565b5f806123be61012085016101008601613404565b6001600160a01b0316036123d457506001611690565b306123e761012085016101008601613404565b6001600160a01b0316036123fd57506001611690565b6001600160a01b03821661241961012085016101008601613404565b6001600160a01b03160361242f57506001611690565b600461243f610140850185613b1a565b9050101580156124765750637f07c94760e01b612460610140850185613b1a565b61246991613bbd565b6001600160e01b03191614155b80156113d757506113d761249261012085016101008601613404565b6001600160a01b03163b151590565b5f8183116124af57816113d7565b5090919050565b5f8183116124c457826113d7565b50919050565b815f036124d657505050565b6124f083838360405180602001604052805f815250612d20565b6119ed57604051634c67134d60e11b815260040160405180910390fd5b5f80516020613c81833981519152546001600160a01b031690565b6113c56122a5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612563576119ed83612d5d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156125bd575060408051601f3d908101601f191682019092526125ba91810190613764565b60015b6126205760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016109ed565b5f80516020613c81833981519152811461268e5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016109ed565b506119ed838383612df8565b6097545f906001600160a01b0316806126c657604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa158015612718573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061273c9190613bed565b91508215801561275357506001600160a01b038216155b1561278357604051632b0d65db60e01b81526001600160401b0386166004820152602481018590526044016109ed565b509392505050565b61279f60c954610100900460ff1660021490565b6127bc5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6033546001600160a01b0383811691161480612863575061284e6d636861696e5f7761746368646f6760901b6001611ceb565b6001600160a01b0316826001600160a01b0316145b1561286c575050565b8080156128a657506128916e6272696467655f7761746368646f6760881b6001611ceb565b6001600160a01b0316826001600160a01b0316145b156128af575050565b604051630d85cccf60e11b815260040160405180910390fd5b5f856001600160a01b031663ce9d0820856128ed876562726964676560d01b5f6113c8565b8887876040518663ffffffff1660e01b8152600401612910959493929190613b87565b5f6040518083038186803b158015612926575f80fd5b505afa925050508015612937575060015b61294257505f6123a1565b5060016123a1565b606580546001600160a01b03191690556113c581612e1c565b5f63ffffffff8211156129c75760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016109ed565b5090565b6129df60c954610100900460ff1660021490565b156129fd5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001612811565b5f6001600160a01b0383163b612a5357505f611690565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa925050508015612abd575060408051601f3d908101601f19168201909252612aba91810190613aa8565b60015b15611690579392505050565b612ad246612cf3565b15612b4557827fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2b95d817fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2ba5d807fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2bb5d505050565b604080516060810182528481526001600160a01b0393909316602084018190526001600160401b0392909216920182905260fd9290925560fe80546001600160e01b031916909217600160a01b909102179055565b612ba346612cf3565b15612bb3576113f05f8080612ac9565b6113f05f198080612ac9565b604080516060810182525f8082526020820181905291810191909152612be446612cf3565b15612c7d5750604080516060810182527fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2b95c81526001600160a01b037fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2ba5c1660208201526001600160401b037fe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2bb5c169181019190915290565b506040805160608101825260fd54815260fe546001600160a01b0381166020830152600160a01b90046001600160401b03169181019190915290565b806001600160a01b038116612ce15760405163538ba4f960e01b815260040160405180910390fd5b612cea83612e6d565b6119ed82612ecb565b5f6001821480612d04575061426882145b80612d11575062aa36a782145b80611690575061169082612f3b565b5f6001600160a01b038516612d4857604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b6001600160a01b0381163b612dca5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016109ed565b5f80516020613c8183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612e0183612f52565b5f82511180612e0d5750805b156119ed576109a38383612f91565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16612e935760405162461bcd60e51b81526004016109ed90613c08565b612e9b612fb6565b612eb96001600160a01b03821615612eb3578161294a565b3361294a565b5060c9805461ff001916610100179055565b5f54610100900460ff16612ef15760405162461bcd60e51b81526004016109ed90613c08565b6001600160401b03461115612f195760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c8210158015611690575050617e90101590565b612f5b81612d5d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606113d78383604051806060016040528060278152602001613ca160279139612fdc565b5f54610100900460ff166113f05760405162461bcd60e51b81526004016109ed90613c08565b60605f80856001600160a01b031685604051612ff89190613c53565b5f60405180830381855af49150503d805f8114613030576040519150601f19603f3d011682016040523d82523d5f602084013e613035565b606091505b509150915061304686838387613050565b9695505050505050565b606083156130be5782515f036130b7576001600160a01b0385163b6130b75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ed565b50816130c8565b6130c883836130d0565b949350505050565b8151156130e05781518083602001fd5b8060405162461bcd60e51b81526004016109ed9190613c6e565b5f61016082840312156124c4575f80fd5b80151581146113c5575f80fd5b5f8060408385031215613129575f80fd5b82356001600160401b0381111561313e575f80fd5b61314a858286016130fa565b925050602083013561315b8161310b565b809150509250929050565b5f60208284031215613176575f80fd5b81356001600160401b0381111561318b575f80fd5b6130c8848285016130fa565b5f5b838110156131b1578181015183820152602001613199565b50505f910152565b5f81518084526131d0816020860160208601613197565b601f01601f19169290920160200192915050565b80516001600160401b031682525f610160602083015161320f60208601826001600160401b03169052565b506040830151613227604086018263ffffffff169052565b50606083015161324260608601826001600160a01b03169052565b50608083015161325d60808601826001600160401b03169052565b5060a083015161327860a08601826001600160a01b03169052565b5060c083015161329360c08601826001600160401b03169052565b5060e08301516132ae60e08601826001600160a01b03169052565b50610100838101516001600160a01b031690850152610120808401519085015261014080840151818601839052613046838701826131b9565b828152604060208201525f6113d460408301846131e4565b5f805f60408486031215613311575f80fd5b83356001600160401b0380821115613327575f80fd5b613333878388016130fa565b94506020860135915080821115613348575f80fd5b818601915086601f83011261335b575f80fd5b813581811115613369575f80fd5b87602082850101111561337a575f80fd5b6020830194508093505050509250925092565b634e487b7160e01b5f52602160045260245ffd5b600581106133b1576133b161338d565b9052565b604081016133c382856133a1565b600483106133d3576133d361338d565b8260208301529392505050565b6001600160a01b03811681146113c5575f80fd5b80356133ff816133e0565b919050565b5f60208284031215613414575f80fd5b81356113d7816133e0565b5f6020828403121561342f575f80fd5b5035919050565b6020810161169082846133a1565b80356001600160401b03811681146133ff575f80fd5b5f805f6060848603121561346c575f80fd5b61347584613444565b925060208401359150604084013561348c8161310b565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b03811182821017156134ce576134ce613497565b60405290565b5f82601f8301126134e3575f80fd5b81356001600160401b03808211156134fd576134fd613497565b604051601f8301601f19908116603f0116810190828211818310171561352557613525613497565b8160405283815286602085880101111561353d575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f806040838503121561356d575f80fd5b8235613578816133e0565b915060208301356001600160401b03811115613592575f80fd5b61359e858286016134d4565b9150509250929050565b5f602082840312156135b8575f80fd5b6113d782613444565b5f80604083850312156135d2575f80fd5b82359150602083013561315b8161310b565b803563ffffffff811681146133ff575f80fd5b5f6101608284031215613608575f80fd5b6136106134ab565b905061361b82613444565b815261362960208301613444565b602082015261363a604083016135e4565b604082015261364b606083016133f4565b606082015261365c60808301613444565b608082015261366d60a083016133f4565b60a082015261367e60c08301613444565b60c082015261368f60e083016133f4565b60e08201526101006136a28184016133f4565b908201526101208281013590820152610140808301356001600160401b038111156136cb575f80fd5b6136d7858286016134d4565b82840152505092915050565b5f602082840312156136f3575f80fd5b81356001600160401b03811115613708575f80fd5b6130c8848285016135f7565b5f8060408385031215613725575f80fd5b8235613730816133e0565b9150602083013561315b816133e0565b5f61169036836135f7565b5f6020828403121561375b575f80fd5b6113d7826135e4565b5f60208284031215613774575f80fd5b5051919050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611690576116906137c9565b5f6001600160401b0380831681810361380b5761380b6137c9565b6001019392505050565b602081525f6113d760208301846131e4565b634e487b7160e01b5f52601260045260245ffd5b5f808335601e19843603018112613850575f80fd5b83016020810192503590506001600160401b0381111561386e575f80fd5b80360382131561387c575f80fd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f6101606138c9846138bc85613444565b6001600160401b03169052565b6138d560208401613444565b6001600160401b031660208501526138ef604084016135e4565b63ffffffff166040850152613906606084016133f4565b6001600160a01b0316606085015261392060808401613444565b6001600160401b0316608085015261393a60a084016133f4565b6001600160a01b031660a085015261395460c08401613444565b6001600160401b031660c085015261396e60e084016133f4565b6001600160a01b031660e085015261010061398a8482016133f4565b6001600160a01b03169085015261012083810135908501526101406139b18185018561383b565b83838801526139c38488018284613883565b979650505050505050565b608081525f6139e060808301856138ab565b905063ffffffff808451166020840152806020850151166040840152806040850151166060840152509392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f60208284031215613ab8575f80fd5b81516113d78161310b565b604081525f613ad560408301856138ab565b90508260208301529392505050565b60408152600d60408201526c5441494b4f5f4d45535341474560981b6060820152608060208201525f6113d760808301846131e4565b5f808335601e19843603018112613b2f575f80fd5b8301803591506001600160401b03821115613b48575f80fd5b60200191503681900382131561387c575f80fd5b8082028115828204841417611690576116906137c9565b634e487b7160e01b5f52600160045260245ffd5b6001600160401b038616815260018060a01b0385166020820152836040820152608060608201525f6139c3608083018486613883565b6001600160e01b03198135818116916004851015613be55780818660040360031b1b83161692505b505092915050565b5f60208284031215613bfd575f80fd5b81516113d7816133e0565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8251613c64818460208701613197565b9190910192915050565b602081525f6113d760208301846131b956fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f2c5685035163cd920e9567e16343c7bc7d62f3b8c4a50374cd222d82b8ff4b864736f6c63430008180033", + "balance": "0x0" + }, + "0x1670000000000000000000000000000000000001": { + "contractName": "Bridge", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670000000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167000000000000000000000000000000000001" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x033b2e26f0b307875bc00000" + }, + "0x0167000000000000000000000000000000000002": { + "contractName": "ERC20VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be" + }, + "code": "0x608060405260043610620001df575f3560e01c8063715018a61162000106578063a86f9d9e116200009e578063e07baba6116200006a578063e07baba61462000567578063e30c397814620005a7578063f09a401614620005c6578063f2fde38b14620005ea575f80fd5b8063a86f9d9e14620004d2578063b84d9ffe14620004f6578063caec3e4e146200051c578063d56ad7ac146200054f575f80fd5b80638456cb5911620000de5780638456cb59146200044e5780638abf607714620004655780638da5cb5b146200047c5780639aa8605c146200049b575f80fd5b8063715018a6146200040957806379ba509714620004205780637f07c9471462000437575f80fd5b80633ab76e9f116200017a5780634f1ef28611620001525780634f1ef286146200037557806352d1902d146200038c5780635c975abb14620003a357806367090ccf14620003c5575f80fd5b80633ab76e9f14620003195780633eb6b8cf146200033a5780633f4ba83a146200035e575f80fd5b806306fdde0311620001ba57806306fdde03146200027f5780630ecd8be914620002a15780633075db5614620002de5780633659cfe614620002f5575f80fd5b80630178733a14620001e357806301ffc9a714620001fc578063066fe7b41462000235575b5f80fd5b620001fa620001f436600462003578565b6200060e565b005b34801562000208575f80fd5b50620002206200021a366004620035c1565b620007b6565b60405190151581526020015b60405180910390f35b34801562000241575f80fd5b506200027062000253366004620035ff565b61013060209081525f928352604080842090915290825290205481565b6040519081526020016200022c565b3480156200028b575f80fd5b506a195c98cc8c17dd985d5b1d60aa1b62000270565b348015620002ad575f80fd5b50620002c5620002bf36600462003630565b62000808565b6040516001600160a01b0390911681526020016200022c565b348015620002ea575f80fd5b506200022062000ef8565b34801562000301575f80fd5b50620001fa620003133660046200367c565b62000f0e565b34801562000325575f80fd5b50609754620002c5906001600160a01b031681565b34801562000346575f80fd5b50620002c562000358366004620036bd565b62000fea565b3480156200036a575f80fd5b50620001fa62001002565b620001fa620003863660046200381a565b6200101a565b34801562000398575f80fd5b5062000270620010db565b348015620003af575f80fd5b506200022060c954610100900460ff1660021490565b348015620003d1575f80fd5b50620002c5620003e3366004620035ff565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b34801562000415575f80fd5b50620001fa6200118f565b3480156200042c575f80fd5b50620001fa620011a4565b620001fa620004483660046200386c565b6200121f565b3480156200045a575f80fd5b50620001fa6200137f565b34801562000471575f80fd5b50620002c562001396565b34801562000488575f80fd5b506033546001600160a01b0316620002c5565b348015620004a7575f80fd5b50620004bf620004b93660046200367c565b620013a6565b6040516200022c9594939291906200392d565b348015620004de575f80fd5b50620002c5620004f03660046200398a565b6200150b565b6200050d62000507366004620039b0565b62001519565b6040516200022c9190620039c7565b34801562000528575f80fd5b50620002206200053a3660046200367c565b61012f6020525f908152604090205460ff1681565b3480156200055b575f80fd5b50620002706276a70081565b34801562000573575f80fd5b5060c9546200058e906201000090046001600160401b031681565b6040516001600160401b0390911681526020016200022c565b348015620005b3575f80fd5b506065546001600160a01b0316620002c5565b348015620005d2575f80fd5b50620001fa620005e436600462003ac8565b62001939565b348015620005f6575f80fd5b50620001fa620006083660046200367c565b62001a51565b6200062360c954610100900460ff1660021490565b15620006425760405163bae6e2a960e01b815260040160405180910390fd5b60026200064e62001ac5565b60ff1603620006705760405163dfc60d8560e01b815260040160405180910390fd5b6200067c600262001b07565b6200068662001b52565b505f6200069861014084018462003ae7565b620006a891600490829062003b33565b810190620006b7919062003b5c565b90505f8082806020019051810190620006d1919062003c10565b9350505091505f620006f9838760a0016020810190620006f291906200367c565b8462001c4f565b9050620007276101208701356200071760c0890160a08a016200367c565b6001600160a01b03169062001d01565b6200073960c0870160a088016200367c565b6001600160a01b0316857f3dea0f5955b148debf6212261e03bd80eaf8534bee43780452d16637dcc22dd5856020015184866040516200079a939291906001600160a01b039384168152919092166020820152604081019190915260600190565b60405180910390a350505050620007b2600162001b07565b5050565b5f6001600160e01b0319821662bc399d60e11b1480620007e657506001600160e01b03198216637f07c94760e01b145b806200080257506001600160e01b031982166301ffc9a760e01b145b92915050565b5f6200081362001d0e565b60026200081f62001ac5565b60ff1603620008415760405163dfc60d8560e01b815260040160405180910390fd5b6200084d600262001b07565b6001600160a01b03821615806200088457506001600160a01b038281165f90815261012d6020526040902054600160401b90041615155b15620008a35760405163dc63f98760e01b815260040160405180910390fd5b6001600160a01b0382165f90815261012f602052604090205460ff1615620008de576040516375c42fc160e01b815260040160405180910390fd5b5f61013081620008f2602087018762003d0f565b6001600160401b031681526020019081526020015f205f8560200160208101906200091e91906200367c565b6001600160a01b0316815260208101919091526040015f20549050620009486276a7008262003d41565b421015620009695760405163231d35fb60e11b815260040160405180910390fd5b61012e5f6200097c602087018762003d0f565b6001600160401b031681526020019081526020015f205f856020016020810190620009a891906200367c565b6001600160a01b03908116825260208201929092526040015f2054169150811562000d32576001600160a01b038281165f90815261012d60209081526040808320815160a08101835281546001600160401b0381168252600160401b810490961693810193909352600160e01b90940460ff16908201526001830180549293919260608401919062000a3a9062003d57565b80601f016020809104026020016040519081016040528092919081815260200182805462000a689062003d57565b801562000ab75780601f1062000a8d5761010080835404028352916020019162000ab7565b820191905f5260205f20905b81548152906001019060200180831162000a9957829003601f168201915b5050505050815260200160028201805462000ad29062003d57565b80601f016020809104026020016040519081016040528092919081815260200182805462000b009062003d57565b801562000b4f5780601f1062000b255761010080835404028352916020019162000b4f565b820191905f5260205f20905b81548152906001019060200180831162000b3157829003601f168201915b50505050508152505090508060405160200162000b6d919062003df7565b604051602081830303815290604052805190602001208560405160200162000b96919062003e84565b604051602081830303815290604052805190602001201462000bcb57604051632f9d1d7b60e11b815260040160405180910390fd5b6001600160a01b0383165f90815261012d6020526040812080546001600160e81b03191681559062000c01600183018262003518565b62000c10600283015f62003518565b50506001600160a01b0383165f81815261012f60205260409020805460ff1916600117905562000c489063b8f2e0c560e01b62001d6a565b801562000c6c575062000c6c6001600160a01b03851663b8f2e0c560e01b62001d6a565b1562000d305760405163b8f2e0c560e01b81526001600160a01b0385811660048301525f602483015284169063b8f2e0c5906044015f604051808303815f87803b15801562000cb9575f80fd5b505af115801562000ccc573d5f803e3d5ffd5b505060405163b8f2e0c560e01b81526001600160a01b038681166004830152600160248301528716925063b8f2e0c591506044015f604051808303815f87803b15801562000d18575f80fd5b505af115801562000d2b573d5f803e3d5ffd5b505050505b505b6001600160a01b0383165f90815261012d60205260409020849062000d58828262004046565b5083905061012e5f62000d6f602088018862003d0f565b6001600160401b031681526020019081526020015f205f86602001602081019062000d9b91906200367c565b6001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550426101305f865f01602081019062000df6919062003d0f565b6001600160401b031681526020019081526020015f205f86602001602081019062000e2291906200367c565b6001600160a01b03166001600160a01b031681526020019081526020015f208190555083602001602081019062000e5a91906200367c565b6001600160a01b031662000e72602086018662003d0f565b6001600160401b03167f031d68e1805917560c34a5f55a7dd91bef98f911190ed02cdbb53caedae6c39d848662000ead60608a018a62003ae7565b62000ebc60808c018c62003ae7565b62000ece60608e0160408f016200411b565b60405162000ee3979695949392919062004139565b60405180910390a35062000802600162001b07565b5f600262000f0562001ac5565b60ff1614905090565b6001600160a01b037f000000000000000000000000016700000000000000000000000000000000000216300362000f625760405162461bcd60e51b815260040162000f599062004194565b60405180910390fd5b7f00000000000000000000000001670000000000000000000000000000000000026001600160a01b031662000f9662001dfd565b6001600160a01b03161462000fbf5760405162461bcd60e51b815260040162000f5990620041e0565b62000fca8162001e19565b604080515f8082526020820190925262000fe79183919062001e23565b50565b5f62000ff884848462001f9a565b90505b9392505050565b6200100c62002092565b62001018335f62002124565b565b6001600160a01b037f0000000000000000000000000167000000000000000000000000000000000002163003620010655760405162461bcd60e51b815260040162000f599062004194565b7f00000000000000000000000001670000000000000000000000000000000000026001600160a01b03166200109962001dfd565b6001600160a01b031614620010c25760405162461bcd60e51b815260040162000f5990620041e0565b620010cd8262001e19565b620007b28282600162001e23565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000000000216146200117c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000f59565b505f8051602062004d1883398151915290565b6200119962001d0e565b620010185f6200212e565b60655433906001600160a01b03168114620012145760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840162000f59565b62000fe7816200212e565b6200123460c954610100900460ff1660021490565b15620012535760405163bae6e2a960e01b815260040160405180910390fd5b60026200125f62001ac5565b60ff1603620012815760405163dfc60d8560e01b815260040160405180910390fd5b6200128d600262001b07565b5f8080806200129f8587018762004239565b93509350935093505f620012b262002149565b9050620012bf8362002271565b5f620012cd86858562001c4f565b9050620012e46001600160a01b0385163462001d01565b836001600160a01b0316856001600160a01b0316835f01517f75a051823424fc80e92556c41cb0ad977ae1dcb09c68a9c38acab86b11a69f8985604001518a6020015186896040516200136594939291906001600160401b039490941684526001600160a01b03928316602085015291166040830152606082015260800190565b60405180910390a4505050505050620007b2600162001b07565b62001389620022af565b6200101833600162002124565b5f620013a162001dfd565b905090565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b84046001600160a01b031693600160e01b900460ff16929091620013f09062003d57565b80601f01602080910402602001604051908101604052809291908181526020018280546200141e9062003d57565b80156200146d5780601f1062001443576101008083540402835291602001916200146d565b820191905f5260205f20905b8154815290600101906020018083116200144f57829003601f168201915b505050505090806002018054620014849062003d57565b80601f0160208091040260200160405190810160405280929190818152602001828054620014b29062003d57565b8015620015015780601f10620014d75761010080835404028352916020019162001501565b820191905f5260205f20905b815481529060010190602001808311620014e357829003601f168201915b5050505050905085565b5f62000ffb46848462001f9a565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820183905261010082018390526101208201929092526101408101919091526200158860c954610100900460ff1660021490565b15620015a75760405163bae6e2a960e01b815260040160405180910390fd5b6002620015b362001ac5565b60ff1603620015d55760405163dfc60d8560e01b815260040160405180910390fd5b620015e1600262001b07565b8160c001355f036200160657604051634299323b60e11b815260040160405180910390fd5b5f6200161960a08401608085016200367c565b6001600160a01b03160362001641576040516303f8a7d360e01b815260040160405180910390fd5b61012f5f6200165760a08501608086016200367c565b6001600160a01b0316815260208101919091526040015f205460ff161562001692576040516375c42fc160e01b815260040160405180910390fd5b5f805f620016a08562002323565b6040805161016081019091525f808252939650919450925060208101620016ce6080890160608a0162003d0f565b6001600160401b03168152602001620016ee60c0890160a08a016200434a565b63ffffffff1681525f60208083018290526040830191909152336060830152608090910190620017219089018962003d0f565b6001600160401b031681526020015f6001600160a01b03168860200160208101906200174e91906200367c565b6001600160a01b03160362001764573362001776565b620017766040890160208a016200367c565b6001600160a01b03168152602090810190620017b1906200179a908a018a62003d0f565b6a195c98cc8c17dd985d5b1d60aa1b5b5f62000fea565b6001600160a01b03168152602001620017d16080890160608a0162003d0f565b620017e6906001600160401b03163462004368565b815260200185905290505f620018066562726964676560d01b826200150b565b6001600160a01b0316631bdb003734846040518363ffffffff1660e01b8152600401620018349190620039c7565b5f6040518083038185885af115801562001850573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f191682016040526200187a91908101906200438b565b965090506200189060608801604089016200367c565b60a08701516001600160a01b039182169116827feb8a69f21b7a981e25f90d9f1e2ab7fa5bdbfddbc0ac160344145fc5caa6ddd2620018d360208c018c62003d0f565b6020890151620018ea60a08e0160808f016200367c565b604080516001600160401b0390941684526001600160a01b0392831660208501529116908201526060810188905260800160405180910390a4505050505062001934600162001b07565b919050565b5f54610100900460ff16158080156200195857505f54600160ff909116105b80620019735750303b1580156200197357505f5460ff166001145b620019d85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000f59565b5f805460ff191660011790558015620019fa575f805461ff0019166101001790555b62001a068383620027f9565b801562001a4c575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b62001a5b62001d0e565b606580546001600160a01b0383166001600160a01b0319909116811790915562001a8d6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f62001ad14662002838565b1562001afd57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b62001b124662002838565b1562001b3e57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b62001b858160016200150b565b6001600160a01b0316336001600160a01b03161462001bb757604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001bf4573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001c1a9190620044c0565b60208101519092506001600160a01b0316331462001c4b57604051632583296b60e01b815260040160405180910390fd5b5090565b5f46845f01516001600160401b03160362001c865750602083015162001c806001600160a01b03821684846200286a565b62001cf5565b62001c9184620028cf565b6040516340c10f1960e01b81526001600160a01b03858116600483015260248201859052919250908216906340c10f19906044015f604051808303815f87803b15801562001cdd575f80fd5b505af115801562001cf0573d5f803e3d5ffd5b505050505b62000ffb818362002914565b620007b282825a620029a8565b6033546001600160a01b03163314620010185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000f59565b5f6001600160a01b0383163b62001d8357505f62000802565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa92505050801562001df0575060408051601f3d908101601f1916820190925262001ded918101906200452e565b60015b1562000802579392505050565b5f8051602062004d18833981519152546001600160a01b031690565b62000fe762001d0e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001e595762001a4c83620029ef565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001eb6575060408051601f3d908101601f1916820190925262001eb3918101906200454c565b60015b62001f1b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000f59565b5f8051602062004d18833981519152811462001f8c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000f59565b5062001a4c83838362002a8d565b6097545f906001600160a01b03168062001fc757604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa1580156200201a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002040919062004564565b9150821580156200205857506001600160a01b038216155b156200208a57604051632b0d65db60e01b81526001600160401b03861660048201526024810185905260440162000f59565b509392505050565b620020a760c954610100900460ff1660021490565b620020c55760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b620007b262001d0e565b606580546001600160a01b031916905562000fe78162002abd565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b6200217c8160016200150b565b6001600160a01b0316336001600160a01b031614620021ae57604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015620021eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620022119190620044c0565b91505f620022338360400151620017aa6a195c98cc8c17dd985d5b1d60aa1b90565b9050806001600160a01b031683602001516001600160a01b0316146200226c57604051632583296b60e01b815260040160405180910390fd5b505090565b6001600160a01b03811615806200229057506001600160a01b03811630145b1562000fe757604051635b50f3f960e01b815260040160405180910390fd5b620022c460c954610100900460ff1660021490565b15620022e35760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016200211a565b6040805160a0810182525f8082526020820181905291810191909152606081810181905260808201819052905f8061012d816200236760a08801608089016200367c565b6001600160a01b03908116825260208201929092526040015f208054909250600160401b90041615620025b7576040805160a08101825282546001600160401b0381168252600160401b81046001600160a01b03166020830152600160e01b900460ff169181019190915260018201805483916060840191620023ea9062003d57565b80601f0160208091040260200160405190810160405280929190818152602001828054620024189062003d57565b8015620024675780601f106200243d5761010080835404028352916020019162002467565b820191905f5260205f20905b8154815290600101906020018083116200244957829003601f168201915b50505050508152602001600282018054620024829062003d57565b80601f0160208091040260200160405190810160405280929190818152602001828054620024b09062003d57565b8015620024ff5780601f10620024d557610100808354040283529160200191620024ff565b820191905f5260205f20905b815481529060010190602001808311620024e157829003601f168201915b50505050508152505092506200253c33308760c001358860800160208101906200252a91906200367c565b6001600160a01b031692919062002b0e565b6200254e60a08601608087016200367c565b604051630852cd8d60e31b815260c087013560048201526001600160a01b0391909116906342966c68906024015f604051808303815f87803b15801562002593575f80fd5b505af1158015620025a6573d5f803e3d5ffd5b505050508460c00135915062002773565b6040518060a00160405280466001600160401b03168152602001866080016020810190620025e691906200367c565b6001600160a01b03168152602001620026106200260a60a0890160808a016200367c565b62002b48565b60ff168152602001620026346200262e60a0890160808a016200367c565b62002c0d565b8152602001620026556200264f60a0890160808a016200367c565b62002cbf565b905292505f6200266c60a08701608088016200367c565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa158015620026b4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620026da91906200454c565b9050620026f76001600160a01b038316333060c08b013562002b0e565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa1580156200273c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200276291906200454c565b6200276e919062004368565b935050505b30637f07c94784336200278d60608a0160408b016200367c565b86604051602001620027a3949392919062004582565b60408051601f1981840301815290829052620027c291602401620045b9565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050509350509193909250565b806001600160a01b038116620028225760405163538ba4f960e01b815260040160405180910390fd5b6200282d8362002d07565b62001a4c8262002d6e565b5f60018214806200284a575061426882145b8062002858575062aa36a782145b80620008025750620008028262002de2565b6040516001600160a01b03831660248201526044810182905262001a4c90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262002dfa565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b03908116855292529091205416806200193457620008028262002ed4565b5f620029326c38bab7ba30afb6b0b730b3b2b960991b60016200150b565b90506001600160a01b0381161562001a4c576040516315c638fb60e31b81526001600160a01b0384811660048301526024820184905282169063ae31c7d8906044015f604051808303815f87803b1580156200298c575f80fd5b505af11580156200299f573d5f803e3d5ffd5b50505050505050565b815f03620029b557505050565b620029d183838360405180602001604052805f815250620030e6565b62001a4c57604051634c67134d60e11b815260040160405180910390fd5b6001600160a01b0381163b62002a5e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000f59565b5f8051602062004d1883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b62002a988362003124565b5f8251118062002aa55750805b1562001a4c5762002ab7838362003165565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040516001600160a01b038085166024830152831660448201526064810182905262002ab79085906323b872dd60e01b9060840162002897565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290515f91829182916001600160a01b0386169162002b8f9190620045cd565b5f60405180830381855afa9150503d805f811462002bc9576040519150601f19603f3d011682016040523d82523d5f602084013e62002bce565b606091505b509150915081801562002be2575080516020145b62002bef57601262002c05565b8080602001905181019062002c059190620045ea565b949350505050565b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b17905290516060915f9182916001600160a01b0386169162002c559190620045cd565b5f60405180830381855afa9150503d805f811462002c8f576040519150601f19603f3d011682016040523d82523d5f602084013e62002c94565b606091505b50915091508162002cb45760405180602001604052805f81525062002c05565b62002c05816200318d565b60408051600481526024810182526020810180516001600160e01b03166306fdde0360e01b17905290516060915f9182916001600160a01b0386169162002c559190620045cd565b5f54610100900460ff1662002d305760405162461bcd60e51b815260040162000f599062004608565b62002d3a620032e0565b62002d5c6001600160a01b0382161562002d5557816200212e565b336200212e565b5060c9805461ff001916610100179055565b5f54610100900460ff1662002d975760405162461bcd60e51b815260040162000f599062004608565b6001600160401b0346111562002dc05760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c821015801562000802575050617e90101590565b5f62002e50826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620033099092919063ffffffff16565b905080515f148062002e7357508080602001905181019062002e7391906200452e565b62001a4c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000f59565b5f8062002ee96033546001600160a01b031690565b60975460208501518551604080880151606089015160808a0151925162002f2197966001600160a01b03169594939060240162004653565b60408051601f198184030181529190526020810180516001600160e01b031663bb86ef9360e01b179052905062002f696c0627269646765645f657263323609c1b5f6200150b565b8160405162002f789062003554565b62002f85929190620046c2565b604051809103905ff08015801562002f9f573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d602090815260409182902087518154928901519389015160ff16600160e01b0260ff60e01b1994909516600160401b026001600160e01b03199093166001600160401b03909116179190911791909116919091178155606085015191935084916001820190620030239082620046e7565b50608082015160028201906200303a9082620046e7565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b0319168885169081179091559151885160608a015160808b0151848c01519451959850929095169516937fb6b427556e8cb0ebf9175da4bc48c64c4f56e44cfaf8c3ab5ebf8e2ea130907993620030d89391929190620047b3565b60405180910390a450919050565b5f6001600160a01b0385166200310f57604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b6200312f81620029ef565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000ffb838360405180606001604052806027815260200162004d386027913962003319565b60606040825110620031af5781806020019051810190620008029190620047ef565b8151602003620032cd575f5b602081108015620031ee5750828181518110620031dc57620031dc62004824565b01602001516001600160f81b03191615155b156200320757620031ff8162004838565b9050620031bb565b805f036200322457505060408051602081019091525f8152919050565b5f816001600160401b0381111562003240576200324062003701565b6040519080825280601f01601f1916602001820160405280156200326b576020820181803683370190505b5090505f5b828110156200208a578481815181106200328e576200328e62004824565b602001015160f81c60f81b828281518110620032ae57620032ae62004824565b60200101906001600160f81b03191690815f1a90535060010162003270565b505060408051602081019091525f815290565b5f54610100900460ff16620010185760405162461bcd60e51b815260040162000f599062004608565b606062000ff884845f8562003393565b60605f80856001600160a01b031685604051620033379190620045cd565b5f60405180830381855af49150503d805f811462003371576040519150601f19603f3d011682016040523d82523d5f602084013e62003376565b606091505b5091509150620033898683838762003472565b9695505050505050565b606082471015620033f65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000f59565b5f80866001600160a01b03168587604051620034139190620045cd565b5f6040518083038185875af1925050503d805f81146200344f576040519150601f19603f3d011682016040523d82523d5f602084013e62003454565b606091505b5091509150620034678783838762003472565b979650505050505050565b60608315620034e55782515f03620034dd576001600160a01b0385163b620034dd5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000f59565b508162002c05565b62002c058383815115620034fc5781518083602001fd5b8060405162461bcd60e51b815260040162000f599190620045b9565b508054620035269062003d57565b5f825580601f1062003536575050565b601f0160209004905f5260205f209081019062000fe7919062003562565b6104c4806200485483390190565b5b8082111562001c4b575f815560010162003563565b5f80604083850312156200358a575f80fd5b82356001600160401b03811115620035a0575f80fd5b83016101608186031215620035b3575f80fd5b946020939093013593505050565b5f60208284031215620035d2575f80fd5b81356001600160e01b03198116811462000ffb575f80fd5b6001600160a01b038116811462000fe7575f80fd5b5f806040838503121562003611575f80fd5b8235915060208301356200362581620035ea565b809150509250929050565b5f806040838503121562003642575f80fd5b82356001600160401b0381111562003658575f80fd5b830160a081860312156200366a575f80fd5b915060208301356200362581620035ea565b5f602082840312156200368d575f80fd5b813562000ffb81620035ea565b6001600160401b038116811462000fe7575f80fd5b801515811462000fe7575f80fd5b5f805f60608486031215620036d0575f80fd5b8335620036dd816200369a565b9250602084013591506040840135620036f681620036af565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b03811182821017156200373a576200373a62003701565b60405290565b60405161016081016001600160401b03811182821017156200373a576200373a62003701565b604051601f8201601f191681016001600160401b038111828210171562003791576200379162003701565b604052919050565b5f6001600160401b03821115620037b457620037b462003701565b50601f01601f191660200190565b5f82601f830112620037d2575f80fd5b8135620037e9620037e38262003799565b62003766565b818152846020838601011115620037fe575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156200382c575f80fd5b82356200383981620035ea565b915060208301356001600160401b0381111562003854575f80fd5b6200386285828601620037c2565b9150509250929050565b5f80602083850312156200387e575f80fd5b82356001600160401b038082111562003895575f80fd5b818501915085601f830112620038a9575f80fd5b813581811115620038b8575f80fd5b866020828501011115620038ca575f80fd5b60209290920196919550909350505050565b5f5b83811015620038f8578181015183820152602001620038de565b50505f910152565b5f815180845262003919816020860160208601620038dc565b601f01601f19169290920160200192915050565b6001600160401b03861681526001600160a01b038516602082015260ff8416604082015260a0606082018190525f906200396a9083018562003900565b82810360808401526200397e818562003900565b98975050505050505050565b5f80604083850312156200399c575f80fd5b8235915060208301356200362581620036af565b5f60e08284031215620039c1575f80fd5b50919050565b60208152620039e26020820183516001600160401b03169052565b5f6020830151620039fe60408401826001600160401b03169052565b50604083015163ffffffff811660608401525060608301516001600160a01b03811660808401525060808301516001600160401b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160401b03811660e08401525060e083015161010062003a82818501836001600160a01b03169052565b840151905061012062003a9f848201836001600160a01b03169052565b8401516101408481019190915284015161016080850152905062002c0561018084018262003900565b5f806040838503121562003ada575f80fd5b82356200366a81620035ea565b5f808335601e1984360301811262003afd575f80fd5b8301803591506001600160401b0382111562003b17575f80fd5b60200191503681900382131562003b2c575f80fd5b9250929050565b5f808585111562003b42575f80fd5b8386111562003b4f575f80fd5b5050820193919092039150565b5f6020828403121562003b6d575f80fd5b81356001600160401b0381111562003b83575f80fd5b62002c0584828501620037c2565b805162001934816200369a565b80516200193481620035ea565b60ff8116811462000fe7575f80fd5b8051620019348162003bab565b5f82601f83011262003bd7575f80fd5b815162003be8620037e38262003799565b81815284602083860101111562003bfd575f80fd5b62002c05826020830160208701620038dc565b5f805f806080858703121562003c24575f80fd5b84516001600160401b038082111562003c3b575f80fd5b9086019060a0828903121562003c4f575f80fd5b62003c5962003715565b825162003c66816200369a565b8152602083015162003c7881620035ea565b602082015262003c8b6040840162003bba565b604082015260608301518281111562003ca2575f80fd5b62003cb08a82860162003bc7565b60608301525060808301518281111562003cc8575f80fd5b62003cd68a82860162003bc7565b608083015250955062003cef9150506020860162003b9e565b925062003cff6040860162003b9e565b6060959095015193969295505050565b5f6020828403121562003d20575f80fd5b813562000ffb816200369a565b634e487b7160e01b5f52601160045260245ffd5b8082018082111562000802576200080262003d2d565b600181811c9082168062003d6c57607f821691505b602082108103620039c157634e487b7160e01b5f52602260045260245ffd5b6001600160401b03815116825260018060a01b03602082015116602083015260ff60408201511660408301525f606082015160a0606085015262003dd360a085018262003900565b90506080830151848203608086015262003dee828262003900565b95945050505050565b602081525f62000ffb602083018462003d8b565b8035620019348162003bab565b5f808335601e1984360301811262003e2e575f80fd5b83016020810192503590506001600160401b0381111562003e4d575f80fd5b80360382131562003b2c575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f823562003e96816200369a565b6001600160401b038116602084015250602083013562003eb681620035ea565b6001600160a01b031660408381019190915283013562003ed68162003bab565b60ff811660608401525062003eef606084018462003e18565b60a0608085015262003f0660c08501828462003e5c565b91505062003f18608085018562003e18565b848303601f190160a08601526200338983828462003e5c565b601f82111562001a4c57805f5260205f20601f840160051c8101602085101562003f585750805b601f840160051c820191505b8181101562003f79575f815560010162003f64565b5050505050565b6001600160401b0383111562003f9a5762003f9a62003701565b62003fb28362003fab835462003d57565b8362003f31565b5f601f84116001811462003fe6575f851562003fce5750838201355b5f19600387901b1c1916600186901b17835562003f79565b5f83815260208120601f198716915b8281101562004017578685013582556020948501946001909201910162003ff5565b508682101562004034575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b813562004053816200369a565b6001600160401b03811690508154816001600160401b0319821617835560208401356200408081620035ea565b68010000000000000000600160e01b03604091821b166001600160e01b0319831684178117855590850135620040b68162003bab565b60ff60e01b8160e01b1660ff60e01b19851662ffffff60e81b851617831717855550505050620040ea606083018362003ae7565b620040fa81836001860162003f80565b50506200410b608083018362003ae7565b62002ab781836002860162003f80565b5f602082840312156200412c575f80fd5b813562000ffb8162003bab565b6001600160a01b0388811682528716602082015260a0604082018190525f9062004167908301878962003e5c565b82810360608401526200417c81868862003e5c565b91505060ff8316608083015298975050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80356200193481620035ea565b5f805f80608085870312156200424d575f80fd5b84356001600160401b038082111562004264575f80fd5b9086019060a0828903121562004278575f80fd5b6200428262003715565b82356200428f816200369a565b81526020830135620042a181620035ea565b6020820152620042b46040840162003e0b565b6040820152606083013582811115620042cb575f80fd5b620042d98a828601620037c2565b606083015250608083013582811115620042f1575f80fd5b620042ff8a828601620037c2565b608083015250955062004318915050602086016200422c565b925062004328604086016200422c565b9396929550929360600135925050565b63ffffffff8116811462000fe7575f80fd5b5f602082840312156200435b575f80fd5b813562000ffb8162004338565b8181038181111562000802576200080262003d2d565b8051620019348162004338565b5f80604083850312156200439d575f80fd5b8251915060208301516001600160401b0380821115620043bb575f80fd5b908401906101608287031215620043d0575f80fd5b620043da62003740565b620043e58362003b91565b8152620043f56020840162003b91565b602082015262004408604084016200437e565b60408201526200441b6060840162003b9e565b60608201526200442e6080840162003b91565b60808201526200444160a0840162003b9e565b60a08201526200445460c0840162003b91565b60c08201526200446760e0840162003b9e565b60e08201526101006200447c81850162003b9e565b90820152610120838101519082015261014080840151838111156200449f575f80fd5b620044ad8982870162003bc7565b8284015250508093505050509250929050565b5f60608284031215620044d1575f80fd5b604051606081018181106001600160401b0382111715620044f657620044f662003701565b6040528251815260208301516200450d81620035ea565b6020820152604083015162004522816200369a565b60408201529392505050565b5f602082840312156200453f575f80fd5b815162000ffb81620036af565b5f602082840312156200455d575f80fd5b5051919050565b5f6020828403121562004575575f80fd5b815162000ffb81620035ea565b608081525f62004596608083018762003d8b565b6001600160a01b0395861660208401529390941660408201526060015292915050565b602081525f62000ffb602083018462003900565b5f8251620045e0818460208701620038dc565b9190910192915050565b5f60208284031215620045fb575f80fd5b815162000ffb8162003bab565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0388811682528781166020830152861660408201526001600160401b038516606082015260ff8416608082015260e060a082018190525f90620046a09083018562003900565b82810360c0840152620046b4818562003900565b9a9950505050505050505050565b6001600160a01b03831681526040602082018190525f9062000ff89083018462003900565b81516001600160401b0381111562004703576200470362003701565b6200471b8162004714845462003d57565b8462003f31565b602080601f83116001811462004751575f8415620047395750858301515b5f19600386901b1c1916600185901b178555620047ab565b5f85815260208120601f198616915b82811015620047815788860151825594840194600190910190840162004760565b50858210156200479f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b606081525f620047c7606083018662003900565b8281036020840152620047db818662003900565b91505060ff83166040830152949350505050565b5f6020828403121562004800575f80fd5b81516001600160401b0381111562004816575f80fd5b62002c058482850162003bc7565b634e487b7160e01b5f52603260045260245ffd5b5f600182016200484c576200484c62003d2d565b506001019056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ea36dcba768a52059ed0ed48fee13b0a8043b482e8915ed094ab8c2cf570450964736f6c63430008180033", + "balance": "0x0" + }, + "0x1670000000000000000000000000000000000002": { + "contractName": "ERC20Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000201", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670000000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167000000000000000000000000000000000002" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167000000000000000000000000000000000003": { + "contractName": "ERC721VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be" + }, + "code": "0x6080604052600436106200019b575f3560e01c806367090ccf11620000de5780638da5cb5b1162000092578063e07baba6116200006a578063e07baba614620004bd578063e30c397814620004fd578063f09a4016146200051c578063f2fde38b1462000540575f80fd5b80638da5cb5b14620004445780639aa8605c1462000463578063a86f9d9e1462000499575f80fd5b806367090ccf146200038d578063715018a614620003d157806379ba509714620003e85780637f07c94714620003ff5780638456cb5914620004165780638abf6077146200042d575f80fd5b80633659cfe611620001525780633f4ba83a116200012a5780633f4ba83a14620003265780634f1ef286146200033d57806352d1902d14620003545780635c975abb146200036b575f80fd5b80633659cfe614620002a45780633ab76e9f14620002c85780633eb6b8cf1462000302575f80fd5b80630178733a146200019f57806301ffc9a714620001b857806306fdde0314620001f1578063150b7a02146200021e5780631f59a83014620002675780633075db56146200028d575b5f80fd5b620001b6620001b036600462002b7d565b62000564565b005b348015620001c4575f80fd5b50620001dc620001d636600462002bc6565b62000736565b60405190151581526020015b60405180910390f35b348015620001fd575f80fd5b506b195c98cdcc8c57dd985d5b1d60a21b5b604051908152602001620001e8565b3480156200022a575f80fd5b506200024d6200023c36600462002c58565b630a85bd0160e11b95945050505050565b6040516001600160e01b03199091168152602001620001e8565b6200027e6200027836600462002ccd565b62000788565b604051620001e8919062002d58565b34801562000299575f80fd5b50620001dc62000c14565b348015620002b0575f80fd5b50620001b6620002c236600462002e59565b62000c2a565b348015620002d4575f80fd5b50609754620002e9906001600160a01b031681565b6040516001600160a01b039091168152602001620001e8565b3480156200030e575f80fd5b50620002e96200032036600462002ea7565b62000d06565b34801562000332575f80fd5b50620001b662000d1e565b620001b66200034e3660046200302a565b62000d36565b34801562000360575f80fd5b506200020f62000df7565b34801562000377575f80fd5b50620001dc60c954610100900460ff1660021490565b34801562000399575f80fd5b50620002e9620003ab3660046200307c565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b348015620003dd575f80fd5b50620001b662000eab565b348015620003f4575f80fd5b50620001b662000ec0565b620001b662000410366004620030ad565b62000f3b565b34801562000422575f80fd5b50620001b6620010b9565b34801562000439575f80fd5b50620002e9620010d0565b34801562000450575f80fd5b506033546001600160a01b0316620002e9565b3480156200046f575f80fd5b50620004876200048136600462002e59565b620010e0565b604051620001e89493929190620030ef565b348015620004a5575f80fd5b50620002e9620004b736600462003142565b6200123b565b348015620004c9575f80fd5b5060c954620004e4906201000090046001600160401b031681565b6040516001600160401b039091168152602001620001e8565b34801562000509575f80fd5b506065546001600160a01b0316620002e9565b34801562000528575f80fd5b50620001b66200053a36600462003168565b62001249565b3480156200054c575f80fd5b50620001b66200055e36600462002e59565b62001361565b6200057960c954610100900460ff1660021490565b15620005985760405163bae6e2a960e01b815260040160405180910390fd5b6002620005a4620013d5565b60ff1603620005c65760405163dfc60d8560e01b815260040160405180910390fd5b620005d2600262001417565b620005dc62001462565b505f620005ee61014084018462003199565b620005fe916004908290620031de565b8101906200060d919062003207565b90505f808280602001905181019062000627919062003332565b9350505091505f6200064f838760a001602081019062000648919062002e59565b846200155f565b90506200067d6101208701356200066d60c0890160a08a0162002e59565b6001600160a01b031690620016e9565b6200068f60c0870160a0880162002e59565b6001600160a01b0316857fe48bef18455e47bca14864ab6e82dffa29df148b051c09de95aec44ecf13598c8560200151848687516001600160401b03811115620006dd57620006dd62002eeb565b60405190808252806020026020018201604052801562000707578160200160208202803683370190505b506040516200071a949392919062003478565b60405180910390a35050505062000732600162001417565b5050565b5f6001600160e01b0319821662bc399d60e11b14806200076657506001600160e01b03198216637f07c94760e01b145b806200078257506001600160e01b031982166301ffc9a760e01b145b92915050565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820192909252610140810191909152620007f760c954610100900460ff1660021490565b15620008165760405163bae6e2a960e01b815260040160405180910390fd5b62000821826200353b565b8060e00151518160c0015151146200084c5760405163196e8a4160e31b815260040160405180910390fd5b60808101516001600160a01b031662000878576040516303f8a7d360e01b815260040160405180910390fd5b600262000884620013d5565b60ff1603620008a65760405163dfc60d8560e01b815260040160405180910390fd5b620008b2600262001417565b5f5b620008c360c08501856200361f565b90508110156200091f57620008dc60e08501856200361f565b82818110620008ef57620008ef62003667565b905060200201355f146200091657604051634299323b60e11b815260040160405180910390fd5b600101620008b4565b506200094e6380ac58cd60e01b6200093e60a086016080870162002e59565b6001600160a01b031690620016f6565b6200096c57604051633ee915f560e11b815260040160405180910390fd5b5f80620009798562001789565b6040805161016081019091525f80825292945090925060208101620009a56080890160608a016200367b565b6001600160401b03168152602001620009c560c0890160a08a0162003699565b63ffffffff1681525f60208083018290526040830191909152336060830152608090910190620009f8908901896200367b565b6001600160401b031681526020015f6001600160a01b031688602001602081019062000a25919062002e59565b6001600160a01b03160362000a3b573362000a4d565b62000a4d6040890160208a0162002e59565b6001600160a01b0316815260209081019062000a899062000a71908a018a6200367b565b6b195c98cdcc8c57dd985d5b1d60a21b5b5f62000d06565b6001600160a01b0316815260200162000aa96080890160608a016200367b565b62000abe906001600160401b031634620036cb565b815260200184905290505f62000ade6562726964676560d01b826200123b565b6001600160a01b0316631bdb003734846040518363ffffffff1660e01b815260040162000b0c919062002d58565b5f6040518083038185885af115801562000b28573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f1916820160405262000b529190810190620036ee565b9650905062000b68606088016040890162002e59565b6001600160a01b03168660a001516001600160a01b0316827fabbf62a1459339f9ac59136d313a5ccd83d2706cc6d4c04d90642520169144dc8960c0015187602001518c608001602081019062000bc0919062002e59565b62000bcf60c08f018f6200361f565b8f8060e0019062000be191906200361f565b60405162000bf6979695949392919062003854565b60405180910390a45050505062000c0e600162001417565b50919050565b5f600262000c21620013d5565b60ff1614905090565b6001600160a01b037f000000000000000000000000016700000000000000000000000000000000000316300362000c7e5760405162461bcd60e51b815260040162000c7590620038b4565b60405180910390fd5b7f00000000000000000000000001670000000000000000000000000000000000036001600160a01b031662000cb262001cb5565b6001600160a01b03161462000cdb5760405162461bcd60e51b815260040162000c759062003900565b62000ce68162001cd1565b604080515f8082526020820190925262000d039183919062001cdb565b50565b5f62000d1484848462001e52565b90505b9392505050565b62000d2862001f42565b62000d34335f62001fd4565b565b6001600160a01b037f000000000000000000000000016700000000000000000000000000000000000316300362000d815760405162461bcd60e51b815260040162000c7590620038b4565b7f00000000000000000000000001670000000000000000000000000000000000036001600160a01b031662000db562001cb5565b6001600160a01b03161462000dde5760405162461bcd60e51b815260040162000c759062003900565b62000de98262001cd1565b620007328282600162001cdb565b5f306001600160a01b037f0000000000000000000000000167000000000000000000000000000000000003161462000e985760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000c75565b505f805160206200439383398151915290565b62000eb562001fd9565b62000d345f62002035565b60655433906001600160a01b0316811462000f305760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840162000c75565b62000d038162002035565b62000f5060c954610100900460ff1660021490565b1562000f6f5760405163bae6e2a960e01b815260040160405180910390fd5b600262000f7b620013d5565b60ff160362000f9d5760405163dfc60d8560e01b815260040160405180910390fd5b62000fa9600262001417565b5f80808062000fbb858701876200394c565b93509350935093505f62000fce62002050565b905062000fdb8362002179565b5f62000fe98685856200155f565b9050620010006001600160a01b03851634620016e9565b836001600160a01b0316856001600160a01b0316835f01517f895f73e418d1bbbad2a311d085fad00e5d98a960e9f2afa4b942071d39bec43a85604001518a6020015186898a516001600160401b0381111562001061576200106162002eeb565b6040519080825280602002602001820160405280156200108b578160200160208202803683370190505b506040516200109f95949392919062003a4a565b60405180910390a450505050505062000732600162001417565b620010c3620021b7565b62000d3433600162001fd4565b5f620010db62001cb5565b905090565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b9093046001600160a01b0316929190620011209062003aa6565b80601f01602080910402602001604051908101604052809291908181526020018280546200114e9062003aa6565b80156200119d5780601f1062001173576101008083540402835291602001916200119d565b820191905f5260205f20905b8154815290600101906020018083116200117f57829003601f168201915b505050505090806002018054620011b49062003aa6565b80601f0160208091040260200160405190810160405280929190818152602001828054620011e29062003aa6565b8015620012315780601f10620012075761010080835404028352916020019162001231565b820191905f5260205f20905b8154815290600101906020018083116200121357829003601f168201915b5050505050905084565b5f62000d1746848462001e52565b5f54610100900460ff16158080156200126857505f54600160ff909116105b80620012835750303b1580156200128357505f5460ff166001145b620012e85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000c75565b5f805460ff1916600117905580156200130a575f805461ff0019166101001790555b6200131683836200222b565b80156200135c575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6200136b62001fd9565b606580546001600160a01b0383166001600160a01b031990911681179091556200139d6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f620013e1466200226a565b156200140d57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b62001422466200226a565b156200144e57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b620014958160016200123b565b6001600160a01b0316336001600160a01b031614620014c757604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562001504573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200152a919062003ada565b60208101519092506001600160a01b031633146200155b57604051632583296b60e01b815260040160405180910390fd5b5090565b5f46845f01516001600160401b0316036200162e575060208301515f5b82518110156200162757816001600160a01b03166342842e0e3086868581518110620015ac57620015ac62003667565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064015f604051808303815f87803b15801562001604575f80fd5b505af115801562001617573d5f803e3d5ffd5b505050508060010190506200157c565b5062000d17565b62001639846200229c565b90505f5b8251811015620016e157816001600160a01b03166340c10f19858584815181106200166c576200166c62003667565b60200260200101516040518363ffffffff1660e01b8152600401620016a69291906001600160a01b03929092168252602082015260400190565b5f604051808303815f87803b158015620016be575f80fd5b505af1158015620016d1573d5f803e3d5ffd5b505050508060010190506200163d565b509392505050565b6200073282825a620022e6565b5f6001600160a01b0383163b6200170f57505f62000782565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa9250505080156200177c575060408051601f3d908101601f19168201909252620017799181019062003b48565b60015b1562000782579392505050565b604080516080810182525f808252602082015260609181018290528082018290525f61012d81620017c160a087016080880162002e59565b6001600160a01b03908116825260208201929092526040015f208054909250600160401b9004161562001acb576040805160808101825282546001600160401b0381168252600160401b90046001600160a01b03166020820152600183018054919284929084019190620018359062003aa6565b80601f0160208091040260200160405190810160405280929190818152602001828054620018639062003aa6565b8015620018b25780601f106200188857610100808354040283529160200191620018b2565b820191905f5260205f20905b8154815290600101906020018083116200189457829003601f168201915b50505050508152602001600282018054620018cd9062003aa6565b80601f0160208091040260200160405190810160405280929190818152602001828054620018fb9062003aa6565b80156200194a5780601f1062001920576101008083540402835291602001916200194a565b820191905f5260205f20905b8154815290600101906020018083116200192c57829003601f168201915b50505050508152505091505f5b6200196660c08601866200361f565b905081101562001ac4576200198260a086016080870162002e59565b6001600160a01b03166342842e0e3330620019a160c08a018a6200361f565b86818110620019b457620019b462003667565b6040516001600160e01b031960e088901b1681526001600160a01b039586166004820152949093166024850152506020909102013560448201526064015f604051808303815f87803b15801562001a09575f80fd5b505af115801562001a1c573d5f803e3d5ffd5b5062001a339250505060a086016080870162002e59565b6001600160a01b03166342966c6862001a5060c08801886200361f565b8481811062001a635762001a6362003667565b905060200201356040518263ffffffff1660e01b815260040162001a8991815260200190565b5f604051808303815f87803b15801562001aa1575f80fd5b505af115801562001ab4573d5f803e3d5ffd5b5050505080600101905062001957565b5062001c22565b6040518060800160405280466001600160401b0316815260200185608001602081019062001afa919062002e59565b6001600160a01b0316815260200162001b2462001b1e60a088016080890162002e59565b6200232d565b815260200162001b4562001b3f60a088016080890162002e59565b620023e7565b905291505f5b62001b5a60c08601866200361f565b905081101562001c205762001b7660a086016080870162002e59565b6001600160a01b03166342842e0e333062001b9560c08a018a6200361f565b8681811062001ba85762001ba862003667565b6040516001600160e01b031960e088901b1681526001600160a01b039586166004820152949093166024850152506020909102013560448201526064015f604051808303815f87803b15801562001bfd575f80fd5b505af115801562001c10573d5f803e3d5ffd5b5050505080600101905062001b4b565b505b5030637f07c947823362001c3d606088016040890162002e59565b62001c4c60c08901896200361f565b60405160200162001c6295949392919062003b66565b60408051601f198184030181529082905262001c819160240162003bf6565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050509150915091565b5f8051602062004393833981519152546001600160a01b031690565b62000d0362001fd9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001d11576200135c836200242f565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001d6e575060408051601f3d908101601f1916820190925262001d6b9181019062003c0a565b60015b62001dd35760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000c75565b5f8051602062004393833981519152811462001e445760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000c75565b506200135c838383620024cd565b6097545f906001600160a01b03168062001e7f57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa15801562001ed2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001ef8919062003c22565b91508215801562001f1057506001600160a01b038216155b15620016e157604051632b0d65db60e01b81526001600160401b03861660048201526024810185905260440162000c75565b62001f5760c954610100900460ff1660021490565b62001f755760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b620007325b6033546001600160a01b0316331462000d345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000c75565b606580546001600160a01b031916905562000d0381620024fd565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b620020838160016200123b565b6001600160a01b0316336001600160a01b031614620020b557604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015620020f2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002118919062003ada565b91505f6200213b836040015162000a826b195c98cdcc8c57dd985d5b1d60a21b90565b9050806001600160a01b031683602001516001600160a01b0316146200217457604051632583296b60e01b815260040160405180910390fd5b505090565b6001600160a01b03811615806200219857506001600160a01b03811630145b1562000d0357604051635b50f3f960e01b815260040160405180910390fd5b620021cc60c954610100900460ff1660021490565b15620021eb5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200162001fca565b806001600160a01b038116620022545760405163538ba4f960e01b815260040160405180910390fd5b6200225f836200254e565b6200135c82620025b5565b5f60018214806200227c575061426882145b806200228a575062aa36a782145b80620007825750620007828262002629565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b0390811685529252909120541680620022e157620007828262002641565b919050565b815f03620022f357505050565b6200230f83838360405180602001604052805f8152506200282c565b6200135c57604051634c67134d60e11b815260040160405180910390fd5b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b17905290516060915f9182916001600160a01b0386169162002375919062003c40565b5f60405180830381855afa9150503d805f8114620023af576040519150601f19603f3d011682016040523d82523d5f602084013e620023b4565b606091505b509150915081620023d45760405180602001604052805f815250620023df565b620023df816200286a565b949350505050565b60408051600481526024810182526020810180516001600160e01b03166306fdde0360e01b17905290516060915f9182916001600160a01b0386169162002375919062003c40565b6001600160a01b0381163b6200249e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000c75565b5f805160206200439383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b620024d883620029bd565b5f82511180620024e55750805b156200135c57620024f78383620029fe565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16620025775760405162461bcd60e51b815260040162000c759062003c5d565b6200258162002a26565b620025a36001600160a01b038216156200259c578162002035565b3362002035565b5060c9805461ff001916610100179055565b5f54610100900460ff16620025de5760405162461bcd60e51b815260040162000c759062003c5d565b6001600160401b03461115620026075760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c821015801562000782575050617e90101590565b5f80620026566033546001600160a01b031690565b60975460208501518551604080880151606089015191516200268996956001600160a01b03169493929060240162003ca8565b60408051601f198184030181529190526020810180516001600160e01b03166377c6257360e11b1790529050620026d26d627269646765645f65726337323160901b5f6200123b565b81604051620026e19062002b6f565b620026ee92919062003d0d565b604051809103905ff08015801562002708573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d60209081526040918290208751815492890151909416600160401b026001600160e01b03199092166001600160401b0390941693909317178255850151919350849160018201906200276e908262003d81565b506060820151600282019062002785908262003d81565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b03191688851690811790915591518851828a015160608b01519351949750919094169493909316927f44977f2d30fe1e3aee2c1476f2f95aaacaf34e44b9359c403da01fcc93fd751b926200281e929062003e4d565b60405180910390a450919050565b5f6001600160a01b0385166200285557604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b606060408251106200288c578180602001905181019062000782919062003e7e565b8151602003620029aa575f5b602081108015620028cb5750828181518110620028b957620028b962003667565b01602001516001600160f81b03191615155b15620028e457620028dc8162003eb3565b905062002898565b805f036200290157505060408051602081019091525f8152919050565b5f816001600160401b038111156200291d576200291d62002eeb565b6040519080825280601f01601f19166020018201604052801562002948576020820181803683370190505b5090505f5b82811015620016e1578481815181106200296b576200296b62003667565b602001015160f81c60f81b8282815181106200298b576200298b62003667565b60200101906001600160f81b03191690815f1a9053506001016200294d565b505060408051602081019091525f815290565b620029c8816200242f565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000d178383604051806060016040528060278152602001620043b36027913962002a4f565b5f54610100900460ff1662000d345760405162461bcd60e51b815260040162000c759062003c5d565b60605f80856001600160a01b03168560405162002a6d919062003c40565b5f60405180830381855af49150503d805f811462002aa7576040519150601f19603f3d011682016040523d82523d5f602084013e62002aac565b606091505b509150915062002abf8683838762002ac9565b9695505050505050565b6060831562002b3c5782515f0362002b34576001600160a01b0385163b62002b345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000c75565b5081620023df565b620023df838381511562002b535781518083602001fd5b8060405162461bcd60e51b815260040162000c75919062003bf6565b6104c48062003ecf83390190565b5f806040838503121562002b8f575f80fd5b82356001600160401b0381111562002ba5575f80fd5b8301610160818603121562002bb8575f80fd5b946020939093013593505050565b5f6020828403121562002bd7575f80fd5b81356001600160e01b03198116811462000d17575f80fd5b6001600160a01b038116811462000d03575f80fd5b8035620022e18162002bef565b5f8083601f84011262002c22575f80fd5b5081356001600160401b0381111562002c39575f80fd5b60208301915083602082850101111562002c51575f80fd5b9250929050565b5f805f805f6080868803121562002c6d575f80fd5b853562002c7a8162002bef565b9450602086013562002c8c8162002bef565b93506040860135925060608601356001600160401b0381111562002cae575f80fd5b62002cbc8882890162002c11565b969995985093965092949392505050565b5f6020828403121562002cde575f80fd5b81356001600160401b0381111562002cf4575f80fd5b8201610100818503121562000d17575f80fd5b5f5b8381101562002d2357818101518382015260200162002d09565b50505f910152565b5f815180845262002d4481602086016020860162002d07565b601f01601f19169290920160200192915050565b6020815262002d736020820183516001600160401b03169052565b5f602083015162002d8f60408401826001600160401b03169052565b50604083015163ffffffff811660608401525060608301516001600160a01b03811660808401525060808301516001600160401b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160401b03811660e08401525060e083015161010062002e13818501836001600160a01b03169052565b840151905061012062002e30848201836001600160a01b03169052565b84015161014084810191909152840151610160808501529050620023df61018084018262002d2b565b5f6020828403121562002e6a575f80fd5b813562000d178162002bef565b6001600160401b038116811462000d03575f80fd5b8035620022e18162002e77565b801515811462000d03575f80fd5b5f805f6060848603121562002eba575f80fd5b833562002ec78162002e77565b925060208401359150604084013562002ee08162002e99565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b038111828210171562002f245762002f2462002eeb565b60405290565b60405161010081016001600160401b038111828210171562002f245762002f2462002eeb565b60405161016081016001600160401b038111828210171562002f245762002f2462002eeb565b604051601f8201601f191681016001600160401b038111828210171562002fa15762002fa162002eeb565b604052919050565b5f6001600160401b0382111562002fc45762002fc462002eeb565b50601f01601f191660200190565b5f82601f83011262002fe2575f80fd5b813562002ff962002ff38262002fa9565b62002f76565b8181528460208386010111156200300e575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156200303c575f80fd5b8235620030498162002bef565b915060208301356001600160401b0381111562003064575f80fd5b620030728582860162002fd2565b9150509250929050565b5f80604083850312156200308e575f80fd5b823591506020830135620030a28162002bef565b809150509250929050565b5f8060208385031215620030bf575f80fd5b82356001600160401b03811115620030d5575f80fd5b620030e38582860162002c11565b90969095509350505050565b6001600160401b03851681526001600160a01b03841660208201526080604082018190525f90620031239083018562002d2b565b828103606084015262003137818562002d2b565b979650505050505050565b5f806040838503121562003154575f80fd5b823591506020830135620030a28162002e99565b5f80604083850312156200317a575f80fd5b8235620031878162002bef565b91506020830135620030a28162002bef565b5f808335601e19843603018112620031af575f80fd5b8301803591506001600160401b03821115620031c9575f80fd5b60200191503681900382131562002c51575f80fd5b5f8085851115620031ed575f80fd5b83861115620031fa575f80fd5b5050820193919092039150565b5f6020828403121562003218575f80fd5b81356001600160401b038111156200322e575f80fd5b620023df8482850162002fd2565b8051620022e18162002e77565b8051620022e18162002bef565b5f82601f83011262003266575f80fd5b81516200327762002ff38262002fa9565b8181528460208386010111156200328c575f80fd5b620023df82602083016020870162002d07565b5f6001600160401b03821115620032ba57620032ba62002eeb565b5060051b60200190565b5f82601f830112620032d4575f80fd5b81516020620032e762002ff3836200329f565b8083825260208201915060208460051b87010193508684111562003309575f80fd5b602086015b848110156200332757805183529183019183016200330e565b509695505050505050565b5f805f806080858703121562003346575f80fd5b84516001600160401b03808211156200335d575f80fd5b908601906080828903121562003371575f80fd5b6200337b62002eff565b8251620033888162002e77565b815260208301516200339a8162002bef565b6020820152604083015182811115620033b1575f80fd5b620033bf8a82860162003256565b604083015250606083015182811115620033d7575f80fd5b620033e58a82860162003256565b6060830152509550620033fb6020880162003249565b94506200340b6040880162003249565b9350606087015191508082111562003421575f80fd5b506200343087828801620032c4565b91505092959194509250565b5f815180845260208085019450602084015f5b838110156200346d578151875295820195908201906001016200344f565b509495945050505050565b6001600160a01b038581168252841660208201526080604082018190525f90620034a5908301856200343c565b82810360608401526200313781856200343c565b63ffffffff8116811462000d03575f80fd5b8035620022e181620034b9565b5f82601f830112620034e8575f80fd5b81356020620034fb62002ff3836200329f565b8083825260208201915060208460051b8701019350868411156200351d575f80fd5b602086015b8481101562003327578035835291830191830162003522565b5f61010082360312156200354d575f80fd5b6200355762002f2a565b620035628362002e8c565b8152620035726020840162002c04565b6020820152620035856040840162002c04565b6040820152620035986060840162002e8c565b6060820152620035ab6080840162002c04565b6080820152620035be60a08401620034cb565b60a082015260c08301356001600160401b0380821115620035dd575f80fd5b620035eb36838701620034d8565b60c084015260e085013591508082111562003604575f80fd5b506200361336828601620034d8565b60e08301525092915050565b5f808335601e1984360301811262003635575f80fd5b8301803591506001600160401b038211156200364f575f80fd5b6020019150600581901b360382131562002c51575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156200368c575f80fd5b813562000d178162002e77565b5f60208284031215620036aa575f80fd5b813562000d1781620034b9565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620007825762000782620036b7565b8051620022e181620034b9565b5f806040838503121562003700575f80fd5b8251915060208301516001600160401b03808211156200371e575f80fd5b90840190610160828703121562003733575f80fd5b6200373d62002f50565b62003748836200323c565b815262003758602084016200323c565b60208201526200376b60408401620036e1565b60408201526200377e6060840162003249565b606082015262003791608084016200323c565b6080820152620037a460a0840162003249565b60a0820152620037b760c084016200323c565b60c0820152620037ca60e0840162003249565b60e0820152610100620037df81850162003249565b908201526101208381015190820152610140808401518381111562003802575f80fd5b620038108982870162003256565b8284015250508093505050509250929050565b8183525f6001600160fb1b038311156200383b575f80fd5b8260051b80836020870137939093016020019392505050565b6001600160401b03881681526001600160a01b0387811660208301528616604082015260a0606082018190525f9062003891908301868862003823565b8281036080840152620038a681858762003823565b9a9950505050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f805f806080858703121562003960575f80fd5b84356001600160401b038082111562003977575f80fd5b90860190608082890312156200398b575f80fd5b6200399562002eff565b8235620039a28162002e77565b81526020830135620039b48162002bef565b6020820152604083013582811115620039cb575f80fd5b620039d98a82860162002fd2565b604083015250606083013582811115620039f1575f80fd5b620039ff8a82860162002fd2565b606083015250955062003a156020880162002c04565b945062003a256040880162002c04565b9350606087013591508082111562003a3b575f80fd5b506200343087828801620034d8565b6001600160401b03861681526001600160a01b0385811660208301528416604082015260a0606082018190525f9062003a86908301856200343c565b828103608084015262003a9a81856200343c565b98975050505050505050565b600181811c9082168062003abb57607f821691505b60208210810362000c0e57634e487b7160e01b5f52602260045260245ffd5b5f6060828403121562003aeb575f80fd5b604051606081018181106001600160401b038211171562003b105762003b1062002eeb565b60405282518152602083015162003b278162002bef565b6020820152604083015162003b3c8162002e77565b60408201529392505050565b5f6020828403121562003b59575f80fd5b815162000d178162002e99565b608080825286516001600160401b03168282015260208701516001600160a01b0390811660a0840152604088015160c08401929092525f919062003baf61010085018362002d2b565b91506060890151607f198584030160e086015262003bce838262002d2b565b89831660208701529188166040860152508381036060850152905062003a9a81858762003823565b602081525f62000d17602083018462002d2b565b5f6020828403121562003c1b575f80fd5b5051919050565b5f6020828403121562003c33575f80fd5b815162000d178162002bef565b5f825162003c5381846020870162002d07565b9190910192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0387811682528681166020830152851660408201526001600160401b038416606082015260c0608082018190525f9062003cec9083018562002d2b565b82810360a084015262003d00818562002d2b565b9998505050505050505050565b6001600160a01b03831681526040602082018190525f9062000d149083018462002d2b565b601f8211156200135c57805f5260205f20601f840160051c8101602085101562003d595750805b601f840160051c820191505b8181101562003d7a575f815560010162003d65565b5050505050565b81516001600160401b0381111562003d9d5762003d9d62002eeb565b62003db58162003dae845462003aa6565b8462003d32565b602080601f83116001811462003deb575f841562003dd35750858301515b5f19600386901b1c1916600185901b17855562003e45565b5f85815260208120601f198616915b8281101562003e1b5788860151825594840194600190910190840162003dfa565b508582101562003e3957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b604081525f62003e61604083018562002d2b565b828103602084015262003e75818562002d2b565b95945050505050565b5f6020828403121562003e8f575f80fd5b81516001600160401b0381111562003ea5575f80fd5b620023df8482850162003256565b5f6001820162003ec75762003ec7620036b7565b506001019056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220b74901e552064099b775b843720858dd3b59cf2dcea297bf896118a92af85cd064736f6c63430008180033", + "balance": "0x0" + }, + "0x1670000000000000000000000000000000000003": { + "contractName": "ERC721Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670000000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167000000000000000000000000000000000003" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167000000000000000000000000000000000004": { + "contractName": "ERC1155VaultImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be" + }, + "code": "0x608060405260043610620001b7575f3560e01c8063715018a611620000fa578063a86f9d9e1162000092578063e30c3978116200006a578063e30c3978146200051d578063f09a4016146200053c578063f23a6e611462000560578063f2fde38b1462000590575f80fd5b8063a86f9d9e146200046d578063bc197c811462000491578063e07baba614620004dd575f80fd5b80638456cb5911620000d25780638456cb5914620003ea5780638abf607714620004015780638da5cb5b14620004185780639aa8605c1462000437575f80fd5b8063715018a614620003a557806379ba509714620003bc5780637f07c94714620003d3575f80fd5b80633ab76e9f116200016e5780634f1ef28611620001465780634f1ef286146200031157806352d1902d14620003285780635c975abb146200033f57806367090ccf1462000361575f80fd5b80633ab76e9f146200029c5780633eb6b8cf14620002d65780633f4ba83a14620002fa575f80fd5b80630178733a14620001bb57806301ffc9a714620001d457806306fdde03146200020d5780631f59a830146200023b5780633075db5614620002615780633659cfe61462000278575b5f80fd5b620001d2620001cc36600462002b04565b620005b4565b005b348015620001e0575f80fd5b50620001f8620001f236600462002b4d565b62000745565b60405190151581526020015b60405180910390f35b34801562000219575f80fd5b506c195c98cc4c4d4d57dd985d5b1d609a1b5b60405190815260200162000204565b620002526200024c36600462002b76565b62000769565b60405162000204919062002c01565b3480156200026d575f80fd5b50620001f862000bf6565b34801562000284575f80fd5b50620001d26200029636600462002d24565b62000c0c565b348015620002a8575f80fd5b50609754620002bd906001600160a01b031681565b6040516001600160a01b03909116815260200162000204565b348015620002e2575f80fd5b50620002bd620002f436600462002d72565b62000ce8565b34801562000306575f80fd5b50620001d262000cfe565b620001d26200032236600462002ef5565b62000d16565b34801562000334575f80fd5b506200022c62000dd7565b3480156200034b575f80fd5b50620001f860c954610100900460ff1660021490565b3480156200036d575f80fd5b50620002bd6200037f36600462002f47565b61012e60209081525f92835260408084209091529082529020546001600160a01b031681565b348015620003b1575f80fd5b50620001d262000e8b565b348015620003c8575f80fd5b50620001d262000ea0565b620001d2620003e436600462002fbf565b62000f1b565b348015620003f6575f80fd5b50620001d262001058565b3480156200040d575f80fd5b50620002bd6200106f565b34801562000424575f80fd5b506033546001600160a01b0316620002bd565b34801562000443575f80fd5b506200045b6200045536600462002d24565b6200107f565b60405162000204949392919062003001565b34801562000479575f80fd5b50620002bd6200048b36600462003054565b620011da565b3480156200049d575f80fd5b50620004c3620004af366004620030bd565b63bc197c8160e01b98975050505050505050565b6040516001600160e01b0319909116815260200162000204565b348015620004e9575f80fd5b5060c95462000504906201000090046001600160401b031681565b6040516001600160401b03909116815260200162000204565b34801562000529575f80fd5b506065546001600160a01b0316620002bd565b34801562000548575f80fd5b50620001d26200055a36600462003181565b620011ef565b3480156200056c575f80fd5b50620004c36200057e366004620031b2565b63f23a6e6160e01b9695505050505050565b3480156200059c575f80fd5b50620001d2620005ae36600462002d24565b62001311565b620005c960c954610100900460ff1660021490565b15620005e85760405163bae6e2a960e01b815260040160405180910390fd5b6002620005f462001385565b60ff1603620006165760405163dfc60d8560e01b815260040160405180910390fd5b620006226002620013c7565b6200062c62001412565b505f6200063e61014084018462003230565b6200064e91600490829062003275565b8101906200065d91906200329e565b90505f805f83806020019051810190620006789190620033c9565b94509450505092505f620006a3848860a00160208101906200069b919062002d24565b85856200150f565b9050620006d1610120880135620006c160c08a0160a08b0162002d24565b6001600160a01b0316906200160a565b620006e360c0880160a0890162002d24565b6001600160a01b0316867fe48bef18455e47bca14864ab6e82dffa29df148b051c09de95aec44ecf13598c866020015184878760405162000728949392919062003535565b60405180910390a35050505050620007416001620013c7565b5050565b5f620007518262001617565b80620007635750620007638262001668565b92915050565b60408051610160810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820192909252610140810191909152620007d860c954610100900460ff1660021490565b15620007f75760405163bae6e2a960e01b815260040160405180910390fd5b6200080282620035f8565b8060e00151518160c0015151146200082d5760405163196e8a4160e31b815260040160405180910390fd5b60808101516001600160a01b031662000859576040516303f8a7d360e01b815260040160405180910390fd5b60026200086562001385565b60ff1603620008875760405163dfc60d8560e01b815260040160405180910390fd5b620008936002620013c7565b5f5b620008a460e0850185620036dc565b90508110156200090057620008bd60e0850185620036dc565b82818110620008d057620008d062003724565b905060200201355f03620008f757604051634299323b60e11b815260040160405180910390fd5b60010162000895565b506200092f636cdb3d1360e11b6200091f60a086016080870162002d24565b6001600160a01b0316906200169e565b6200094d57604051633ee915f560e11b815260040160405180910390fd5b5f806200095a8562001731565b6040805161016081019091525f80825292945090925060208101620009866080890160608a0162003738565b6001600160401b03168152602001620009a660c0890160a08a0162003756565b63ffffffff1681525f60208083018290526040830191909152336060830152608090910190620009d99089018962003738565b6001600160401b031681526020015f6001600160a01b031688602001602081019062000a06919062002d24565b6001600160a01b03160362000a1c573362000a2e565b62000a2e6040890160208a0162002d24565b6001600160a01b0316815260209081019062000a6b9062000a52908a018a62003738565b6c195c98cc4c4d4d57dd985d5b1d609a1b5b5f62000ce8565b6001600160a01b0316815260200162000a8b6080890160608a0162003738565b62000aa0906001600160401b03163462003788565b815260200184905290505f62000ac06562726964676560d01b82620011da565b6001600160a01b0316631bdb003734846040518363ffffffff1660e01b815260040162000aee919062002c01565b5f6040518083038185885af115801562000b0a573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f1916820160405262000b349190810190620037ab565b9650905062000b4a606088016040890162002d24565b6001600160a01b03168660a001516001600160a01b0316827fabbf62a1459339f9ac59136d313a5ccd83d2706cc6d4c04d90642520169144dc8960c0015187602001518c608001602081019062000ba2919062002d24565b62000bb160c08f018f620036dc565b8f8060e0019062000bc39190620036dc565b60405162000bd8979695949392919062003911565b60405180910390a45050505062000bf06001620013c7565b50919050565b5f600262000c0362001385565b60ff1614905090565b6001600160a01b037f000000000000000000000000016700000000000000000000000000000000000416300362000c605760405162461bcd60e51b815260040162000c579062003971565b60405180910390fd5b7f00000000000000000000000001670000000000000000000000000000000000046001600160a01b031662000c9462001c40565b6001600160a01b03161462000cbd5760405162461bcd60e51b815260040162000c5790620039bd565b62000cc88162001c5c565b604080515f8082526020820190925262000ce59183919062001c66565b50565b5f62000cf684848462001ddd565b949350505050565b62000d0862001ed5565b62000d14335f62001f67565b565b6001600160a01b037f000000000000000000000000016700000000000000000000000000000000000416300362000d615760405162461bcd60e51b815260040162000c579062003971565b7f00000000000000000000000001670000000000000000000000000000000000046001600160a01b031662000d9562001c40565b6001600160a01b03161462000dbe5760405162461bcd60e51b815260040162000c5790620039bd565b62000dc98262001c5c565b620007418282600162001c66565b5f306001600160a01b037f0000000000000000000000000167000000000000000000000000000000000004161462000e785760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000c57565b505f805160206200459583398151915290565b62000e9562001f6c565b62000d145f62001fc8565b60655433906001600160a01b0316811462000f105760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840162000c57565b62000ce58162001fc8565b62000f3060c954610100900460ff1660021490565b1562000f4f5760405163bae6e2a960e01b815260040160405180910390fd5b600262000f5b62001385565b60ff160362000f7d5760405163dfc60d8560e01b815260040160405180910390fd5b62000f896002620013c7565b5f8080808062000f9c8688018862003a09565b945094509450945094505f62000fb162001fe3565b905062000fbe846200210d565b5f62000fcd878686866200150f565b905062000fe46001600160a01b038616346200160a565b846001600160a01b0316866001600160a01b0316835f01517f895f73e418d1bbbad2a311d085fad00e5d98a960e9f2afa4b942071d39bec43a85604001518b60200151868a8a6040516200103d95949392919062003b2c565b60405180910390a450505050505050620007416001620013c7565b620010626200214b565b62000d1433600162001f67565b5f6200107a62001c40565b905090565b61012d6020525f9081526040902080546001820180546001600160401b03831693600160401b9093046001600160a01b0316929190620010bf9062003b88565b80601f0160208091040260200160405190810160405280929190818152602001828054620010ed9062003b88565b80156200113c5780601f1062001112576101008083540402835291602001916200113c565b820191905f5260205f20905b8154815290600101906020018083116200111e57829003601f168201915b505050505090806002018054620011539062003b88565b80601f0160208091040260200160405190810160405280929190818152602001828054620011819062003b88565b8015620011d05780601f10620011a657610100808354040283529160200191620011d0565b820191905f5260205f20905b815481529060010190602001808311620011b257829003601f168201915b5050505050905084565b5f620011e846848462001ddd565b9392505050565b5f54610100900460ff16158080156200120e57505f54600160ff909116105b80620012295750303b1580156200122957505f5460ff166001145b6200128e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000c57565b5f805460ff191660011790558015620012b0575f805461ff0019166101001790555b620012bc8383620021bf565b620012c6620021fe565b80156200130c575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6200131b62001f6c565b606580546001600160a01b0383166001600160a01b031990911681179091556200134d6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f620013914662002227565b15620013bd57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b620013d24662002227565b15620013fe57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b62001445816001620011da565b6001600160a01b0316336001600160a01b0316146200147757604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa158015620014b4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620014da919062003bbc565b60208101519092506001600160a01b031633146200150b57604051632583296b60e01b815260040160405180910390fd5b5090565b5f46855f01516001600160401b0316036200159357506020840151604051631759616b60e11b81526001600160a01b03821690632eb2c2d6906200155e90309088908890889060040162003c2a565b5f604051808303815f87803b15801562001576575f80fd5b505af115801562001589573d5f803e3d5ffd5b5050505062000cf6565b6200159e8562002259565b60405163d81d0a1560e01b81529091506001600160a01b0382169063d81d0a1590620015d39087908790879060040162003c87565b5f604051808303815f87803b158015620015eb575f80fd5b505af1158015620015fe573d5f803e3d5ffd5b50505050949350505050565b6200074182825a620022a3565b5f6001600160e01b0319821662bc399d60e11b14806200164757506001600160e01b03198216637f07c94760e01b145b806200076357506001600160e01b031982166301ffc9a760e01b1492915050565b5f6001600160e01b03198216630271189760e51b14806200076357506301ffc9a760e01b6001600160e01b031983161462000763565b5f6001600160a01b0383163b620016b757505f62000763565b6040516301ffc9a760e01b81526001600160e01b0319831660048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa92505050801562001724575060408051601f3d908101601f19168201909252620017219181019062003cc0565b60015b1562000763579392505050565b604080516080810182525f808252602082015260609181018290528082018290525f61012d816200176960a087016080880162002d24565b6001600160a01b03908116825260208201929092526040015f208054909250600160401b9004161562001a8b576040805160808101825282546001600160401b0381168252600160401b90046001600160a01b03166020820152600183018054919284929084019190620017dd9062003b88565b80601f01602080910402602001604051908101604052809291908181526020018280546200180b9062003b88565b80156200185a5780601f1062001830576101008083540402835291602001916200185a565b820191905f5260205f20905b8154815290600101906020018083116200183c57829003601f168201915b50505050508152602001600282018054620018759062003b88565b80601f0160208091040260200160405190810160405280929190818152602001828054620018a39062003b88565b8015620018f25780601f10620018c857610100808354040283529160200191620018f2565b820191905f5260205f20905b815481529060010190602001808311620018d457829003601f168201915b505050505081525050915083608001602081019062001912919062002d24565b6001600160a01b0316632eb2c2d633306200193160c0890189620036dc565b6200194060e08b018b620036dc565b6040518763ffffffff1660e01b8152600401620019639695949392919062003cde565b5f604051808303815f87803b1580156200197b575f80fd5b505af11580156200198e573d5f803e3d5ffd5b505050505f5b620019a360c0860186620036dc565b905081101562001a8457620019bf60a086016080870162002d24565b6001600160a01b031663b390c0ab620019dc60c0880188620036dc565b84818110620019ef57620019ef62003724565b90506020020135878060e0019062001a089190620036dc565b8581811062001a1b5762001a1b62003724565b905060200201356040518363ffffffff1660e01b815260040162001a49929190918252602082015260400190565b5f604051808303815f87803b15801562001a61575f80fd5b505af115801562001a74573d5f803e3d5ffd5b5050505080600101905062001994565b5062001b9c565b6040518060800160405280466001600160401b0316815260200185608001602081019062001aba919062002d24565b6001600160a01b0316815260200162001ae462001ade60a088016080890162002d24565b620022ea565b815260200162001b0562001aff60a088016080890162002d24565b6200239c565b9052915062001b1b60a085016080860162002d24565b6001600160a01b0316632eb2c2d6333062001b3a60c0890189620036dc565b62001b4960e08b018b620036dc565b6040518763ffffffff1660e01b815260040162001b6c9695949392919062003cde565b5f604051808303815f87803b15801562001b84575f80fd5b505af115801562001b97573d5f803e3d5ffd5b505050505b5030637f07c947823362001bb7606088016040890162002d24565b62001bc660c0890189620036dc565b62001bd560e08b018b620036dc565b60405160200162001bed979695949392919062003d3f565b60408051601f198184030181529082905262001c0c9160240162003df8565b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050509150915091565b5f8051602062004595833981519152546001600160a01b031690565b62000ce562001f6c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562001c9c576200130c83620023e4565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562001cf9575060408051601f3d908101601f1916820190925262001cf69181019062003e0c565b60015b62001d5e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000c57565b5f8051602062004595833981519152811462001dcf5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000c57565b506200130c83838362002482565b6097545f906001600160a01b03168062001e0a57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa15801562001e5d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001e83919062003e24565b91508215801562001e9b57506001600160a01b038216155b1562001ecd57604051632b0d65db60e01b81526001600160401b03861660048201526024810185905260440162000c57565b509392505050565b62001eea60c954610100900460ff1660021490565b62001f085760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b620007415b6033546001600160a01b0316331462000d145760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000c57565b606580546001600160a01b031916905562000ce581620024b2565b604080516060810182525f80825260208201819052918101919091526562726964676560d01b62002016816001620011da565b6001600160a01b0316336001600160a01b0316146200204857604051630d85cccf60e11b815260040160405180910390fd5b336001600160a01b031663d0496d6a6040518163ffffffff1660e01b8152600401606060405180830381865afa15801562002085573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620020ab919062003bbc565b91505f620020cf836040015162000a646c195c98cc4c4d4d57dd985d5b1d609a1b90565b9050806001600160a01b031683602001516001600160a01b0316146200210857604051632583296b60e01b815260040160405180910390fd5b505090565b6001600160a01b03811615806200212c57506001600160a01b03811630145b1562000ce557604051635b50f3f960e01b815260040160405180910390fd5b6200216060c954610100900460ff1660021490565b156200217f5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589060200162001f5d565b806001600160a01b038116620021e85760405163538ba4f960e01b815260040160405180910390fd5b620021f38362002503565b6200130c826200256a565b5f54610100900460ff1662000d145760405162461bcd60e51b815260040162000c579062003e42565b5f600182148062002239575061426882145b8062002247575062aa36a782145b806200076357506200076382620025de565b80516001600160401b03165f90815261012e60209081526040808320828501516001600160a01b03908116855292529091205416806200229e576200076382620025f6565b919050565b815f03620022b057505050565b620022cc83838360405180602001604052805f815250620027e2565b6200130c57604051634c67134d60e11b815260040160405180910390fd5b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b17905290516060915f9182916001600160a01b0386169162002332919062003e8d565b5f60405180830381855afa9150503d805f81146200236c576040519150601f19603f3d011682016040523d82523d5f602084013e62002371565b606091505b509150915081620023915760405180602001604052805f81525062000cf6565b62000cf68162002820565b60408051600481526024810182526020810180516001600160e01b03166306fdde0360e01b17905290516060915f9182916001600160a01b0386169162002332919062003e8d565b6001600160a01b0381163b620024535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000c57565b5f805160206200459583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6200248d8362002973565b5f825111806200249a5750805b156200130c57620024ac8383620029b4565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff166200252c5760405162461bcd60e51b815260040162000c579062003e42565b62002536620021fe565b620025586001600160a01b0382161562002551578162001fc8565b3362001fc8565b5060c9805461ff001916610100179055565b5f54610100900460ff16620025935760405162461bcd60e51b815260040162000c579062003e42565b6001600160401b03461115620025bc5760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c821015801562000763575050617e90101590565b5f806200260b6033546001600160a01b031690565b60975460208501518551604080880151606089015191516200263e96956001600160a01b03169493929060240162003eaa565b60408051601f198184030181529190526020810180516001600160e01b03166377c6257360e11b1790529050620026886e627269646765645f6572633131353560881b5f620011da565b81604051620026979062002af6565b620026a492919062003f0f565b604051809103905ff080158015620026be573d5f803e3d5ffd5b506001600160a01b038082165f90815261012d60209081526040918290208751815492890151909416600160401b026001600160e01b03199092166001600160401b03909416939093171782558501519193508491600182019062002724908262003f83565b50606082015160028201906200273b908262003f83565b505083516001600160401b039081165f90815261012e6020908152604080832082890180516001600160a01b039081168652919093529281902080546001600160a01b03191688851690811790915591518851828a015160608b01519351949750919094169493909316927f44977f2d30fe1e3aee2c1476f2f95aaacaf34e44b9359c403da01fcc93fd751b92620027d492906200404f565b60405180910390a450919050565b5f6001600160a01b0385166200280b57604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b6060604082511062002842578180602001905181019062000763919062004080565b815160200362002960575f5b6020811080156200288157508281815181106200286f576200286f62003724565b01602001516001600160f81b03191615155b156200289a576200289281620040b5565b90506200284e565b805f03620028b757505060408051602081019091525f8152919050565b5f816001600160401b03811115620028d357620028d362002db6565b6040519080825280601f01601f191660200182016040528015620028fe576020820181803683370190505b5090505f5b8281101562001ecd5784818151811062002921576200292162003724565b602001015160f81c60f81b82828151811062002941576200294162003724565b60200101906001600160f81b03191690815f1a90535060010162002903565b505060408051602081019091525f815290565b6200297e81620023e4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620011e88383604051806060016040528060278152602001620045b56027913960605f80856001600160a01b031685604051620029f4919062003e8d565b5f60405180830381855af49150503d805f811462002a2e576040519150601f19603f3d011682016040523d82523d5f602084013e62002a33565b606091505b509150915062002a468683838762002a50565b9695505050505050565b6060831562002ac35782515f0362002abb576001600160a01b0385163b62002abb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000c57565b508162000cf6565b62000cf6838381511562002ada5781518083602001fd5b8060405162461bcd60e51b815260040162000c57919062003df8565b6104c480620040d183390190565b5f806040838503121562002b16575f80fd5b82356001600160401b0381111562002b2c575f80fd5b8301610160818603121562002b3f575f80fd5b946020939093013593505050565b5f6020828403121562002b5e575f80fd5b81356001600160e01b031981168114620011e8575f80fd5b5f6020828403121562002b87575f80fd5b81356001600160401b0381111562002b9d575f80fd5b82016101008185031215620011e8575f80fd5b5f5b8381101562002bcc57818101518382015260200162002bb2565b50505f910152565b5f815180845262002bed81602086016020860162002bb0565b601f01601f19169290920160200192915050565b6020815262002c1c6020820183516001600160401b03169052565b5f602083015162002c3860408401826001600160401b03169052565b50604083015163ffffffff811660608401525060608301516001600160a01b03811660808401525060808301516001600160401b03811660a08401525060a08301516001600160a01b03811660c08401525060c08301516001600160401b03811660e08401525060e083015161010062002cbc818501836001600160a01b03169052565b840151905061012062002cd9848201836001600160a01b03169052565b8401516101408481019190915284015161016080850152905062000cf661018084018262002bd4565b6001600160a01b038116811462000ce5575f80fd5b80356200229e8162002d02565b5f6020828403121562002d35575f80fd5b8135620011e88162002d02565b6001600160401b038116811462000ce5575f80fd5b80356200229e8162002d42565b801515811462000ce5575f80fd5b5f805f6060848603121562002d85575f80fd5b833562002d928162002d42565b925060208401359150604084013562002dab8162002d64565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b038111828210171562002def5762002def62002db6565b60405290565b60405161010081016001600160401b038111828210171562002def5762002def62002db6565b60405161016081016001600160401b038111828210171562002def5762002def62002db6565b604051601f8201601f191681016001600160401b038111828210171562002e6c5762002e6c62002db6565b604052919050565b5f6001600160401b0382111562002e8f5762002e8f62002db6565b50601f01601f191660200190565b5f82601f83011262002ead575f80fd5b813562002ec462002ebe8262002e74565b62002e41565b81815284602083860101111562002ed9575f80fd5b816020850160208301375f918101602001919091529392505050565b5f806040838503121562002f07575f80fd5b823562002f148162002d02565b915060208301356001600160401b0381111562002f2f575f80fd5b62002f3d8582860162002e9d565b9150509250929050565b5f806040838503121562002f59575f80fd5b82359150602083013562002f6d8162002d02565b809150509250929050565b5f8083601f84011262002f89575f80fd5b5081356001600160401b0381111562002fa0575f80fd5b60208301915083602082850101111562002fb8575f80fd5b9250929050565b5f806020838503121562002fd1575f80fd5b82356001600160401b0381111562002fe7575f80fd5b62002ff58582860162002f78565b90969095509350505050565b6001600160401b03851681526001600160a01b03841660208201526080604082018190525f90620030359083018562002bd4565b828103606084015262003049818562002bd4565b979650505050505050565b5f806040838503121562003066575f80fd5b82359150602083013562002f6d8162002d64565b5f8083601f8401126200308b575f80fd5b5081356001600160401b03811115620030a2575f80fd5b6020830191508360208260051b850101111562002fb8575f80fd5b5f805f805f805f8060a0898b031215620030d5575f80fd5b8835620030e28162002d02565b97506020890135620030f48162002d02565b965060408901356001600160401b038082111562003110575f80fd5b6200311e8c838d016200307a565b909850965060608b013591508082111562003137575f80fd5b620031458c838d016200307a565b909650945060808b01359150808211156200315e575f80fd5b506200316d8b828c0162002f78565b999c989b5096995094979396929594505050565b5f806040838503121562003193575f80fd5b8235620031a08162002d02565b9150602083013562002f6d8162002d02565b5f805f805f8060a08789031215620031c8575f80fd5b8635620031d58162002d02565b95506020870135620031e78162002d02565b9450604087013593506060870135925060808701356001600160401b0381111562003210575f80fd5b6200321e89828a0162002f78565b979a9699509497509295939492505050565b5f808335601e1984360301811262003246575f80fd5b8301803591506001600160401b0382111562003260575f80fd5b60200191503681900382131562002fb8575f80fd5b5f808585111562003284575f80fd5b8386111562003291575f80fd5b5050820193919092039150565b5f60208284031215620032af575f80fd5b81356001600160401b03811115620032c5575f80fd5b62000cf68482850162002e9d565b80516200229e8162002d42565b80516200229e8162002d02565b5f82601f830112620032fd575f80fd5b81516200330e62002ebe8262002e74565b81815284602083860101111562003323575f80fd5b62000cf682602083016020870162002bb0565b5f6001600160401b0382111562003351576200335162002db6565b5060051b60200190565b5f82601f8301126200336b575f80fd5b815160206200337e62002ebe8362003336565b8083825260208201915060208460051b870101935086841115620033a0575f80fd5b602086015b84811015620033be5780518352918301918301620033a5565b509695505050505050565b5f805f805f60a08688031215620033de575f80fd5b85516001600160401b0380821115620033f5575f80fd5b908701906080828a03121562003409575f80fd5b6200341362002dca565b8251620034208162002d42565b81526020830151620034328162002d02565b602082015260408301518281111562003449575f80fd5b620034578b828601620032ed565b6040830152506060830151828111156200346f575f80fd5b6200347d8b828601620032ed565b60608301525096506200349360208901620032e0565b9550620034a360408901620032e0565b94506060880151915080821115620034b9575f80fd5b620034c789838a016200335b565b93506080880151915080821115620034dd575f80fd5b50620034ec888289016200335b565b9150509295509295909350565b5f815180845260208085019450602084015f5b838110156200352a578151875295820195908201906001016200350c565b509495945050505050565b6001600160a01b038581168252841660208201526080604082018190525f906200356290830185620034f9565b8281036060840152620030498185620034f9565b63ffffffff8116811462000ce5575f80fd5b80356200229e8162003576565b5f82601f830112620035a5575f80fd5b81356020620035b862002ebe8362003336565b8083825260208201915060208460051b870101935086841115620035da575f80fd5b602086015b84811015620033be5780358352918301918301620035df565b5f61010082360312156200360a575f80fd5b6200361462002df5565b6200361f8362002d57565b81526200362f6020840162002d17565b6020820152620036426040840162002d17565b6040820152620036556060840162002d57565b6060820152620036686080840162002d17565b60808201526200367b60a0840162003588565b60a082015260c08301356001600160401b03808211156200369a575f80fd5b620036a83683870162003595565b60c084015260e0850135915080821115620036c1575f80fd5b50620036d03682860162003595565b60e08301525092915050565b5f808335601e19843603018112620036f2575f80fd5b8301803591506001600160401b038211156200370c575f80fd5b6020019150600581901b360382131562002fb8575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562003749575f80fd5b8135620011e88162002d42565b5f6020828403121562003767575f80fd5b8135620011e88162003576565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000763576200076362003774565b80516200229e8162003576565b5f8060408385031215620037bd575f80fd5b8251915060208301516001600160401b0380821115620037db575f80fd5b908401906101608287031215620037f0575f80fd5b620037fa62002e1b565b6200380583620032d3565b81526200381560208401620032d3565b602082015262003828604084016200379e565b60408201526200383b60608401620032e0565b60608201526200384e60808401620032d3565b60808201526200386160a08401620032e0565b60a08201526200387460c08401620032d3565b60c08201526200388760e08401620032e0565b60e08201526101006200389c818501620032e0565b9082015261012083810151908201526101408084015183811115620038bf575f80fd5b620038cd89828701620032ed565b8284015250508093505050509250929050565b8183525f6001600160fb1b03831115620038f8575f80fd5b8260051b80836020870137939093016020019392505050565b6001600160401b03881681526001600160a01b0387811660208301528616604082015260a0606082018190525f906200394e9083018688620038e0565b828103608084015262003963818587620038e0565b9a9950505050505050505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b5f805f805f60a0868803121562003a1e575f80fd5b85356001600160401b038082111562003a35575f80fd5b908701906080828a03121562003a49575f80fd5b62003a5362002dca565b823562003a608162002d42565b8152602083013562003a728162002d02565b602082015260408301358281111562003a89575f80fd5b62003a978b82860162002e9d565b60408301525060608301358281111562003aaf575f80fd5b62003abd8b82860162002e9d565b606083015250965062003ad36020890162002d17565b955062003ae36040890162002d17565b9450606088013591508082111562003af9575f80fd5b62003b0789838a0162003595565b9350608088013591508082111562003b1d575f80fd5b50620034ec8882890162003595565b6001600160401b03861681526001600160a01b0385811660208301528416604082015260a0606082018190525f9062003b6890830185620034f9565b828103608084015262003b7c8185620034f9565b98975050505050505050565b600181811c9082168062003b9d57607f821691505b60208210810362000bf057634e487b7160e01b5f52602260045260245ffd5b5f6060828403121562003bcd575f80fd5b604051606081018181106001600160401b038211171562003bf25762003bf262002db6565b60405282518152602083015162003c098162002d02565b6020820152604083015162003c1e8162002d42565b60408201529392505050565b6001600160a01b0385811682528416602082015260a0604082018190525f9062003c5790830185620034f9565b828103606084015262003c6b8185620034f9565b83810360809094019390935250505f8152602001949350505050565b6001600160a01b03841681526060602082018190525f9062003cac90830185620034f9565b828103604084015262002a468185620034f9565b5f6020828403121562003cd1575f80fd5b8151620011e88162002d64565b6001600160a01b0387811682528616602082015260a0604082018190525f9062003d0c9083018688620038e0565b828103606084015262003d21818587620038e0565b83810360809094019390935250505f81526020019695505050505050565b60a080825288516001600160401b03169082015260208801516001600160a01b031660c08201526040880151608060e08301525f9062003d8461012084018262002bd4565b905060608a0151609f198483030161010085015262003da4828262002bd4565b91505062003dbd602084018a6001600160a01b03169052565b6001600160a01b0388166040840152828103606084015262003de1818789620038e0565b9050828103608084015262003963818587620038e0565b602081525f620011e8602083018462002bd4565b5f6020828403121562003e1d575f80fd5b5051919050565b5f6020828403121562003e35575f80fd5b8151620011e88162002d02565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f825162003ea081846020870162002bb0565b9190910192915050565b6001600160a01b0387811682528681166020830152851660408201526001600160401b038416606082015260c0608082018190525f9062003eee9083018562002bd4565b82810360a084015262003f02818562002bd4565b9998505050505050505050565b6001600160a01b03831681526040602082018190525f9062000cf69083018462002bd4565b601f8211156200130c57805f5260205f20601f840160051c8101602085101562003f5b5750805b601f840160051c820191505b8181101562003f7c575f815560010162003f67565b5050505050565b81516001600160401b0381111562003f9f5762003f9f62002db6565b62003fb78162003fb0845462003b88565b8462003f34565b602080601f83116001811462003fed575f841562003fd55750858301515b5f19600386901b1c1916600185901b17855562004047565b5f85815260208120601f198616915b828110156200401d5788860151825594840194600190910190840162003ffc565b50858210156200403b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b604081525f62004063604083018562002bd4565b828103602084015262004077818562002bd4565b95945050505050565b5f6020828403121562004091575f80fd5b81516001600160401b03811115620040a7575f80fd5b62000cf684828501620032ed565b5f60018201620040c957620040c962003774565b506001019056fe60806040526040516104c43803806104c4833981016040819052610022916102d2565b61002d82825f610034565b50506103e7565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049d6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80856001600160a01b031685604051610199919061039a565b5f60405180830381855af49150503d805f81146101d1576040519150601f19603f3d011682016040523d82523d5f602084013e6101d6565b606091505b5090925090506101e8868383876101f2565b9695505050505050565b606083156102605782515f03610259576001600160a01b0385163b6102595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610133565b508161026a565b61026a8383610272565b949350505050565b8151156102825781518083602001fd5b8060405162461bcd60e51b815260040161013391906103b5565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102ca5781810151838201526020016102b2565b50505f910152565b5f80604083850312156102e3575f80fd5b82516001600160a01b03811681146102f9575f80fd5b60208401519092506001600160401b0380821115610315575f80fd5b818501915085601f830112610328575f80fd5b81518181111561033a5761033a61029c565b604051601f8201601f19908116603f011681019083821181831017156103625761036261029c565b8160405282815288602084870101111561037a575f80fd5b61038b8360208301602088016102b0565b80955050505050509250929050565b5f82516103ab8184602087016102b0565b9190910192915050565b602081525f82518060208401526103d38160408501602087016102b0565b601f01601f19169190910160400192915050565b60aa806103f35f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d663a4d1b4b1d1fe8a62f7efcbebbc49fdbde0f90ea972b1d22f96ca608dd14a64736f6c63430008180033", + "balance": "0x0" + }, + "0x1670000000000000000000000000000000000004": { + "contractName": "ERC1155Vault", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670000000000000000000000000000000000006", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167000000000000000000000000000000000004" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167000000000000000000000000000000010096": { + "contractName": "BridgedERC20", + "storage": {}, + "code": "0x608060405260043610610233575f3560e01c806370a0823111610129578063a77f1516116100a8578063dd62ed3e1161006d578063dd62ed3e14610684578063e07baba6146106a3578063e30c3978146106e2578063f12506c1146106ff578063f2fde38b14610713575f80fd5b8063a77f1516146105e7578063a86f9d9e14610608578063a9059cbb14610627578063b8f2e0c514610646578063bb86ef9314610665575f80fd5b80638456cb59116100ee5780638456cb591461056f5780638abf6077146105835780638da5cb5b1461059757806395d89b41146105b4578063a457c2d7146105c8575f80fd5b806370a08231146104d3578063715018a61461050757806379ba50971461051b5780637cf8ed0d1461052f5780637e4746341461054f575f80fd5b806339509351116101b557806342966c681161017a57806342966c681461045757806349d12605146104765780634f1ef2861461048c57806352d1902d1461049f5780635c975abb146104b3575f80fd5b806339509351146103af5780633ab76e9f146103ce5780633eb6b8cf146104055780633f4ba83a1461042457806340c10f1914610438575f80fd5b806323b872dd116101fb57806323b872dd146102ea57806326afaadd146103095780633075db561461034d578063313ce567146103615780633659cfe61461038e575f80fd5b806301ffc9a71461023757806306fdde031461026b578063095ea7b31461028c5780630ae74548146102ab57806318160ddd146102cc575b5f80fd5b348015610242575f80fd5b5061025661025136600461222e565b610732565b60405190151581526020015b60405180910390f35b348015610276575f80fd5b5061027f6107d4565b6040516102629190612277565b348015610297575f80fd5b506102566102a63660046122bd565b610864565b3480156102b6575f80fd5b5061012f5461025690600160a01b900460ff1681565b3480156102d7575f80fd5b5060fd545b604051908152602001610262565b3480156102f5575f80fd5b506102566103043660046122e7565b61087b565b348015610314575f80fd5b5061032e61012d5461012e546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610262565b348015610358575f80fd5b5061025661089e565b34801561036c575f80fd5b5061012d54600160a01b900460ff165b60405160ff9091168152602001610262565b348015610399575f80fd5b506103ad6103a8366004612325565b6108b2565b005b3480156103ba575f80fd5b506102566103c93660046122bd565b610982565b3480156103d9575f80fd5b506097546103ed906001600160a01b031681565b6040516001600160a01b039091168152602001610262565b348015610410575f80fd5b506103ed61041f366004612354565b6109a3565b34801561042f575f80fd5b506103ad6109b7565b348015610443575f80fd5b506103ad6104523660046122bd565b6109cb565b348015610462575f80fd5b506103ad61047136600461239b565b610ae1565b348015610481575f80fd5b506102dc61012e5481565b6103ad61049a3660046123c6565b610c1a565b3480156104aa575f80fd5b506102dc610ccf565b3480156104be575f80fd5b5061025660c954610100900460ff1660021490565b3480156104de575f80fd5b506102dc6104ed366004612325565b6001600160a01b03165f90815260fb602052604090205490565b348015610512575f80fd5b506103ad610d80565b348015610526575f80fd5b506103ad610d91565b34801561053a575f80fd5b5061012d546103ed906001600160a01b031681565b34801561055a575f80fd5b5061012f546103ed906001600160a01b031681565b34801561057a575f80fd5b506103ad610e08565b34801561058e575f80fd5b506103ed610e1b565b3480156105a2575f80fd5b506033546001600160a01b03166103ed565b3480156105bf575f80fd5b5061027f610e29565b3480156105d3575f80fd5b506102566105e23660046122bd565b610e38565b3480156105f2575f80fd5b5061012d5461037c90600160a01b900460ff1681565b348015610613575f80fd5b506103ed610622366004612484565b610eb2565b348015610632575f80fd5b506102566106413660046122bd565b610ec5565b348015610651575f80fd5b506103ad6106603660046124ae565b610ed2565b348015610670575f80fd5b506103ad61067f36600461251d565b61104b565b34801561068f575f80fd5b506102dc61069e3660046125e0565b61120b565b3480156106ae575f80fd5b5060c9546106c99062010000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610262565b3480156106ed575f80fd5b506065546001600160a01b03166103ed565b34801561070a575f80fd5b50610256611235565b34801561071e575f80fd5b506103ad61072d366004612325565b611260565b5f6001600160e01b0319821663093e326b60e21b148061076257506001600160e01b0319821663bb86ef9360e01b145b8061077d57506001600160e01b0319821663b8f2e0c560e01b145b8061079857506001600160e01b031982166336372b0760e01b145b806107b357506001600160e01b0319821663a219a02560e01b145b806107ce57506001600160e01b031982166301ffc9a760e01b145b92915050565b606060fe80546107e390612617565b80601f016020809104026020016040519081016040528092919081815260200182805461080f90612617565b801561085a5780601f106108315761010080835404028352916020019161085a565b820191905f5260205f20905b81548152906001019060200180831161083d57829003601f168201915b5050505050905090565b5f336108718185856112d1565b5060019392505050565b5f336108888582856113f4565b61089385858561146c565b506001949350505050565b5f60026108a9611620565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000100961630036109035760405162461bcd60e51b81526004016108fa9061264f565b60405180910390fd5b7f00000000000000000000000001670000000000000000000000000000000100966001600160a01b031661093561165f565b6001600160a01b03161461095b5760405162461bcd60e51b81526004016108fa9061269b565b6109648161167a565b604080515f8082526020820190925261097f91839190611682565b50565b5f33610871818585610994838361120b565b61099e91906126e7565b6112d1565b5f6109af8484846117ec565b949350505050565b6109bf6118df565b6109c9335f611970565b565b6109df60c954610100900460ff1660021490565b156109fd5760405163bae6e2a960e01b815260040160405180910390fd5b6002610a07611620565b60ff1603610a285760405163dfc60d8560e01b815260040160405180910390fd5b610a326002611978565b610a3a611235565b15610a585760405163270bf77560e01b815260040160405180910390fd5b61012f546001600160a01b031633819003610abf57826001600160a01b0316816001600160a01b03167fe502aa3e015149f4b76a0b2b5394e3100903c4af27c3ddc98385395d3f55252684604051610ab291815260200190565b60405180910390a3610ac8565b610ac8336119c0565b610ad28383611a3c565b50610add6001611978565b5050565b610af560c954610100900460ff1660021490565b15610b135760405163bae6e2a960e01b815260040160405180910390fd5b6002610b1d611620565b60ff1603610b3e5760405163dfc60d8560e01b815260040160405180910390fd5b610b486002611978565b610b50611235565b15610bfd5761012f546040518281526001600160a01b0390911690339082907f638edf84937fb2534b47cac985ea84d6ea4f4076315b56ea1c784d26b87e2bcb9060200160405180910390a36040516340c10f1960e01b8152336004820152602481018390526001600160a01b038216906340c10f19906044015f604051808303815f87803b158015610be1575f80fd5b505af1158015610bf3573d5f803e3d5ffd5b5050505050610c06565b610c06336119c0565b610c103382611b06565b61097f6001611978565b6001600160a01b037f0000000000000000000000000167000000000000000000000000000000010096163003610c625760405162461bcd60e51b81526004016108fa9061264f565b7f00000000000000000000000001670000000000000000000000000000000100966001600160a01b0316610c9461165f565b6001600160a01b031614610cba5760405162461bcd60e51b81526004016108fa9061269b565b610cc38261167a565b610add82826001611682565b5f306001600160a01b037f00000000000000000000000001670000000000000000000000000000000100961614610d6e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108fa565b505f805160206128aa83398151915290565b610d88611c43565b6109c95f611c9d565b60655433906001600160a01b03168114610dff5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016108fa565b61097f81611c9d565b610e10611cb6565b6109c9336001611970565b5f610e2461165f565b905090565b606060ff80546107e390612617565b5f3381610e45828661120b565b905083811015610ea55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108fa565b61089382868684036112d1565b5f610ebe4684846117ec565b9392505050565b5f3361087181858561146c565b610ee660c954610100900460ff1660021490565b15610f045760405163bae6e2a960e01b815260040160405180910390fd5b6a195c98cc8c17dd985d5b1d60aa1b610f1e816001610eb2565b6001600160a01b0316336001600160a01b031614610f4f57604051630d85cccf60e11b815260040160405180910390fd5b6002610f59611620565b60ff1603610f7a5760405163dfc60d8560e01b815260040160405180910390fd5b610f846002611978565b61012f546001600160a01b038481169116148015610fb5575061012f60149054906101000a900460ff161515821515145b15610fd35760405163c118d2f360e01b815260040160405180910390fd5b61012f80546001600160a01b0385166001600160a81b03199091168117600160a01b851515908102919091179092556040805191825260208201929092527fa6b6f959792843a48d9d03d13595f2de7c86ae0ce12ef0fa759dd911b205e565910160405180910390a16110466001611978565b505050565b5f54610100900460ff161580801561106957505f54600160ff909116105b806110825750303b15801561108257505f5460ff166001145b6110e55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108fa565b5f805460ff191660011790558015611106575f805461ff0019166101001790555b6111108888611d27565b61111a8a8a611d63565b61118b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8b0181900481028201810190925289815292508991508890819084018382808284375f92019190915250611d9d92505050565b61012d805461012e89905560ff8816600160a01b026001600160a81b03199091166001600160a01b038b161717905580156111ff575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050565b6001600160a01b039182165f90815260fc6020908152604080832093909416825291909152205490565b61012f545f906001600160a01b031615801590610e2457505061012f54600160a01b900460ff161590565b611268611c43565b606580546001600160a01b0383166001600160a01b031990911681179091556112996033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b0383166113335760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108fa565b6001600160a01b0382166113945760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108fa565b6001600160a01b038381165f81815260fc602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6113ff848461120b565b90505f19811461146657818110156114595760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016108fa565b61146684848484036112d1565b50505050565b6001600160a01b0383166114d05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108fa565b6001600160a01b0382166115325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108fa565b61153d838383611dcd565b6001600160a01b0383165f90815260fb6020526040902054818110156115b45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108fa565b6001600160a01b038085165f81815260fb602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116139086815260200190565b60405180910390a3611466565b5f61162a46611e08565b1561165557507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f805160206128aa833981519152546001600160a01b031690565b61097f611c43565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116b55761104683611e35565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561170f575060408051601f3d908101601f1916820190925261170c91810190612706565b60015b6117725760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108fa565b5f805160206128aa83398151915281146117e05760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108fa565b50611046838383611ed0565b6097545f906001600160a01b03168061181857604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa15801561186b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061188f919061271d565b9150821580156118a657506001600160a01b038216155b156118d757604051632b0d65db60e01b815267ffffffffffffffff86166004820152602481018590526044016108fa565b509392505050565b6118f360c954610100900460ff1660021490565b6119105760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff0019909116620100004267ffffffffffffffff1602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610add611c43565b61198146611e08565b156119ac57807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6a195c98cc8c17dd985d5b1d60aa1b6119e16033546001600160a01b031690565b6001600160a01b0316336001600160a01b031614158015611a1e5750611a08816001610eb2565b6001600160a01b0316336001600160a01b031614155b15610add57604051630d85cccf60e11b815260040160405180910390fd5b6001600160a01b038216611a925760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016108fa565b611a9d5f8383611dcd565b8060fd5f828254611aae91906126e7565b90915550506001600160a01b0382165f81815260fb60209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038216611b665760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016108fa565b611b71825f83611dcd565b6001600160a01b0382165f90815260fb602052604090205481811015611be45760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016108fa565b6001600160a01b0383165f81815260fb60209081526040808320868603905560fd80548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6033546001600160a01b031633146109c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fa565b606580546001600160a01b031916905561097f81611ef4565b611cca60c954610100900460ff1660021490565b15611ce85760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001611966565b6001600160a01b0382161580611d3b575080155b80611d4557504681145b15610add5760405163c118d2f360e01b815260040160405180910390fd5b806001600160a01b038116611d8b5760405163538ba4f960e01b815260040160405180910390fd5b611d9483611f45565b61104682611fa3565b5f54610100900460ff16611dc35760405162461bcd60e51b81526004016108fa90612738565b610add8282612014565b611de160c954610100900460ff1660021490565b15611dff5760405163bae6e2a960e01b815260040160405180910390fd5b61104682612053565b5f6001821480611e19575061426882145b80611e26575062aa36a782145b806107ce57506107ce8261207c565b6001600160a01b0381163b611ea25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108fa565b5f805160206128aa83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611ed983612093565b5f82511180611ee55750805b156110465761146683836120d2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f54610100900460ff16611f6b5760405162461bcd60e51b81526004016108fa90612738565b611f736120f7565b611f916001600160a01b03821615611f8b5781611c9d565b33611c9d565b5060c9805461ff001916610100179055565b5f54610100900460ff16611fc95760405162461bcd60e51b81526004016108fa90612738565b67ffffffffffffffff461115611ff25760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f54610100900460ff1661203a5760405162461bcd60e51b81526004016108fa90612738565b60fe61204683826127ce565b5060ff61104682826127ce565b306001600160a01b0382160361097f57604051630c292c9d60e21b815260040160405180910390fd5b5f617e2c82101580156107ce575050617e90101590565b61209c81611e35565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610ebe83836040518060600160405280602781526020016128ca6027913961211d565b5f54610100900460ff166109c95760405162461bcd60e51b81526004016108fa90612738565b60605f80856001600160a01b031685604051612139919061288e565b5f60405180830381855af49150503d805f8114612171576040519150601f19603f3d011682016040523d82523d5f602084013e612176565b606091505b509150915061218786838387612191565b9695505050505050565b606083156121ff5782515f036121f8576001600160a01b0385163b6121f85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108fa565b50816109af565b6109af83838151156122145781518083602001fd5b8060405162461bcd60e51b81526004016108fa9190612277565b5f6020828403121561223e575f80fd5b81356001600160e01b031981168114610ebe575f80fd5b5f5b8381101561226f578181015183820152602001612257565b50505f910152565b602081525f8251806020840152612295816040850160208701612255565b601f01601f19169190910160400192915050565b6001600160a01b038116811461097f575f80fd5b5f80604083850312156122ce575f80fd5b82356122d9816122a9565b946020939093013593505050565b5f805f606084860312156122f9575f80fd5b8335612304816122a9565b92506020840135612314816122a9565b929592945050506040919091013590565b5f60208284031215612335575f80fd5b8135610ebe816122a9565b8035801515811461234f575f80fd5b919050565b5f805f60608486031215612366575f80fd5b833567ffffffffffffffff8116811461237d575f80fd5b92506020840135915061239260408501612340565b90509250925092565b5f602082840312156123ab575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b5f80604083850312156123d7575f80fd5b82356123e2816122a9565b9150602083013567ffffffffffffffff808211156123fe575f80fd5b818501915085601f830112612411575f80fd5b813581811115612423576124236123b2565b604051601f8201601f19908116603f0116810190838211818310171561244b5761244b6123b2565b81604052828152886020848701011115612463575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f8060408385031215612495575f80fd5b823591506124a560208401612340565b90509250929050565b5f80604083850312156124bf575f80fd5b82356124ca816122a9565b91506124a560208401612340565b5f8083601f8401126124e8575f80fd5b50813567ffffffffffffffff8111156124ff575f80fd5b602083019150836020828501011115612516575f80fd5b9250929050565b5f805f805f805f805f60e08a8c031215612535575f80fd5b8935612540816122a9565b985060208a0135612550816122a9565b975060408a0135612560816122a9565b965060608a0135955060808a013560ff8116811461257c575f80fd5b945060a08a013567ffffffffffffffff80821115612598575f80fd5b6125a48d838e016124d8565b909650945060c08c01359150808211156125bc575f80fd5b506125c98c828d016124d8565b915080935050809150509295985092959850929598565b5f80604083850312156125f1575f80fd5b82356125fc816122a9565b9150602083013561260c816122a9565b809150509250929050565b600181811c9082168061262b57607f821691505b60208210810361264957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b808201808211156107ce57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215612716575f80fd5b5051919050565b5f6020828403121561272d575f80fd5b8151610ebe816122a9565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f82111561104657805f5260205f20601f840160051c810160208510156127a85750805b601f840160051c820191505b818110156127c7575f81556001016127b4565b5050505050565b815167ffffffffffffffff8111156127e8576127e86123b2565b6127fc816127f68454612617565b84612783565b602080601f83116001811461282f575f84156128185750858301515b5f19600386901b1c1916600185901b178555612886565b5f85815260208120601f198616915b8281101561285d5788860151825594840194600190910190840161283e565b508582101561287a57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f825161289f818460208701612255565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e71efa9d5f866b742d3a26addbacfbfd103eaf91f295f46862cb9770e13bc53764736f6c63430008180033", + "balance": "0x0" + }, + "0x0167000000000000000000000000000000010097": { + "contractName": "BridgedERC721", + "storage": {}, + "code": "0x608060405260043610610207575f3560e01c80636352211e11610113578063a22cb4651161009d578063e07baba61161006d578063e07baba6146105c3578063e30c397814610600578063e985e9c51461061d578063ef8c4ae614610665578063f2fde38b14610684575f80fd5b8063a22cb46514610547578063a86f9d9e14610566578063b88d4fde14610585578063c87b56dd146105a4575f80fd5b80637cf8ed0d116100e35780637cf8ed0d146104ce5780638456cb59146104ee5780638abf6077146105025780638da5cb5b1461051657806395d89b4114610533575f80fd5b80636352211e1461046857806370a0823114610487578063715018a6146104a657806379ba5097146104ba575f80fd5b80633eb6b8cf1161019457806342966c681161016457806342966c68146103de57806349d12605146103fd5780634f1ef2861461042157806352d1902d146104345780635c975abb14610448575f80fd5b80633eb6b8cf1461036d5780633f4ba83a1461038c57806340c10f19146103a057806342842e0e146103bf575f80fd5b806323b872dd116101da57806323b872dd146102b857806326afaadd146102d75780633075db561461031b5780633659cfe61461032f5780633ab76e9f1461034e575f80fd5b806301ffc9a71461020b57806306fdde031461023f578063081812fc14610260578063095ea7b314610297575b5f80fd5b348015610216575f80fd5b5061022a6102253660046125e5565b6106a3565b60405190151581526020015b60405180910390f35b34801561024a575f80fd5b506102536106e8565b604051610236919061264d565b34801561026b575f80fd5b5061027f61027a36600461265f565b610779565b6040516001600160a01b039091168152602001610236565b3480156102a2575f80fd5b506102b66102b136600461268a565b61079f565b005b3480156102c3575f80fd5b506102b66102d23660046126b4565b6108b8565b3480156102e2575f80fd5b506102fc61015f54610160546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610236565b348015610326575f80fd5b5061022a6108e9565b34801561033a575f80fd5b506102b66103493660046126f2565b6108fd565b348015610359575f80fd5b5060975461027f906001600160a01b031681565b348015610378575f80fd5b5061027f610387366004612721565b6109c4565b348015610397575f80fd5b506102b66109d8565b3480156103ab575f80fd5b506102b66103ba36600461268a565b6109ec565b3480156103ca575f80fd5b506102b66103d93660046126b4565b610ab3565b3480156103e9575f80fd5b506102b66103f836600461265f565b610acd565b348015610408575f80fd5b506104136101605481565b604051908152602001610236565b6102b661042f366004612803565b610bc8565b34801561043f575f80fd5b50610413610c7d565b348015610453575f80fd5b5061022a60c954610100900460ff1660021490565b348015610473575f80fd5b5061027f61048236600461265f565b610d2e565b348015610492575f80fd5b506104136104a13660046126f2565b610d8e565b3480156104b1575f80fd5b506102b6610e13565b3480156104c5575f80fd5b506102b6610e24565b3480156104d9575f80fd5b5061015f5461027f906001600160a01b031681565b3480156104f9575f80fd5b506102b6610e9b565b34801561050d575f80fd5b5061027f610eae565b348015610521575f80fd5b506033546001600160a01b031661027f565b34801561053e575f80fd5b50610253610ebc565b348015610552575f80fd5b506102b661056136600461284f565b610ecc565b348015610571575f80fd5b5061027f610580366004612882565b610ed7565b348015610590575f80fd5b506102b661059f3660046128a3565b610eea565b3480156105af575f80fd5b506102536105be36600461265f565b610f22565b3480156105ce575f80fd5b5060c9546105e8906201000090046001600160401b031681565b6040516001600160401b039091168152602001610236565b34801561060b575f80fd5b506065546001600160a01b031661027f565b348015610628575f80fd5b5061022a61063736600461290a565b6001600160a01b039182165f9081526101326020908152604080832093909416825291909152205460ff1690565b348015610670575f80fd5b506102b661067f366004612985565b610f4b565b34801561068f575f80fd5b506102b661069e3660046126f2565b6110fd565b5f6001600160e01b0319821663093e326b60e21b14806106d357506001600160e01b031982166377c6257360e11b145b806106e257506106e28261116e565b92915050565b606061012d80546106f890612a2e565b80601f016020809104026020016040519081016040528092919081815260200182805461072490612a2e565b801561076f5780601f106107465761010080835404028352916020019161076f565b820191905f5260205f20905b81548152906001019060200180831161075257829003601f168201915b5050505050905090565b5f610783826111bd565b505f90815261013160205260409020546001600160a01b031690565b5f6107a982610d2e565b9050806001600160a01b0316836001600160a01b03160361081b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061083757506108378133610637565b6108a95760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610812565b6108b3838361121c565b505050565b6108c2338261128a565b6108de5760405162461bcd60e51b815260040161081290612a66565b6108b3838383611307565b5f60026108f4611479565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000100971630036109455760405162461bcd60e51b815260040161081290612ab3565b7f00000000000000000000000001670000000000000000000000000000000100976001600160a01b03166109776114b8565b6001600160a01b03161461099d5760405162461bcd60e51b815260040161081290612aff565b6109a6816114d3565b604080515f808252602082019092526109c1918391906114db565b50565b5f6109d0848484611645565b949350505050565b6109e0611736565b6109ea335f6117c6565b565b610a0060c954610100900460ff1660021490565b15610a1e5760405163bae6e2a960e01b815260040160405180910390fd5b6b195c98cdcc8c57dd985d5b1d60a21b610a39816001610ed7565b6001600160a01b0316336001600160a01b031614610a6a57604051630d85cccf60e11b815260040160405180910390fd5b6002610a74611479565b60ff1603610a955760405163dfc60d8560e01b815260040160405180910390fd5b610a9f60026117ce565b610aa98383611816565b6108b360016117ce565b6108b383838360405180602001604052805f815250610eea565b610ae160c954610100900460ff1660021490565b15610aff5760405163bae6e2a960e01b815260040160405180910390fd5b6b195c98cdcc8c57dd985d5b1d60a21b610b1a816001610ed7565b6001600160a01b0316336001600160a01b031614610b4b57604051630d85cccf60e11b815260040160405180910390fd5b6002610b55611479565b60ff1603610b765760405163dfc60d8560e01b815260040160405180910390fd5b610b8060026117ce565b33610b8a83610d2e565b6001600160a01b031614610bb15760405163358bf3d960e01b815260040160405180910390fd5b610bba8261182f565b610bc460016117ce565b5050565b6001600160a01b037f0000000000000000000000000167000000000000000000000000000000010097163003610c105760405162461bcd60e51b815260040161081290612ab3565b7f00000000000000000000000001670000000000000000000000000000000100976001600160a01b0316610c426114b8565b6001600160a01b031614610c685760405162461bcd60e51b815260040161081290612aff565b610c71826114d3565b610bc4828260016114db565b5f306001600160a01b037f00000000000000000000000001670000000000000000000000000000000100971614610d1c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610812565b505f80516020612ebd83398151915290565b5f81815261012f60205260408120546001600160a01b0316806106e25760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610812565b5f6001600160a01b038216610df75760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610812565b506001600160a01b03165f908152610130602052604090205490565b610e1b6118d1565b6109ea5f61192b565b60655433906001600160a01b03168114610e925760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610812565b6109c18161192b565b610ea3611944565b6109ea3360016117c6565b5f610eb76114b8565b905090565b606061012e80546106f890612a2e565b610bc43383836119b5565b5f610ee3468484611645565b9392505050565b610ef4338361128a565b610f105760405162461bcd60e51b815260040161081290612a66565b610f1c84848484611a83565b50505050565b61015f54610160546060916106e2916001600160a01b0390911690610f4685611ab6565b611b45565b5f54610100900460ff1615808015610f6957505f54600160ff909116105b80610f825750303b158015610f8257505f5460ff166001145b610fe55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610812565b5f805460ff191660011790558015611006575f805461ff0019166101001790555b6110108787611b8f565b61101a8989611bcb565b61108b83838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8b0181900481028201810190925289815292508991508890819084018382808284375f92019190915250611c0592505050565b61015f80546001600160a01b0319166001600160a01b03891617905561016086905580156110f2575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6111056118d1565b606580546001600160a01b0383166001600160a01b031990911681179091556111366033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f6001600160e01b031982166380ac58cd60e01b148061119e57506001600160e01b03198216635b5e139f60e01b145b806106e257506301ffc9a760e01b6001600160e01b03198316146106e2565b5f81815261012f60205260409020546001600160a01b03166109c15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610812565b5f8181526101316020526040902080546001600160a01b0319166001600160a01b038416908117909155819061125182610d2e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f8061129583610d2e565b9050806001600160a01b0316846001600160a01b031614806112dc57506001600160a01b038082165f908152610132602090815260408083209388168352929052205460ff165b806109d05750836001600160a01b03166112f584610779565b6001600160a01b031614949350505050565b826001600160a01b031661131a82610d2e565b6001600160a01b0316146113405760405162461bcd60e51b815260040161081290612b4b565b6001600160a01b0382166113a25760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610812565b6113af8383836001611c35565b826001600160a01b03166113c282610d2e565b6001600160a01b0316146113e85760405162461bcd60e51b815260040161081290612b4b565b5f8181526101316020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652610130855283862080545f190190559087168086528386208054600101905586865261012f90945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5f61148346611c75565b156114ae57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020612ebd833981519152546001600160a01b031690565b6109c16118d1565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561150e576108b383611ca2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611568575060408051601f3d908101601f1916820190925261156591810190612b90565b60015b6115cb5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610812565b5f80516020612ebd83398151915281146116395760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610812565b506108b3838383611d3d565b6097545f906001600160a01b03168061167157604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa1580156116c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e79190612ba7565b9150821580156116fe57506001600160a01b038216155b1561172e57604051632b0d65db60e01b81526001600160401b038616600482015260248101859052604401610812565b509392505050565b61174a60c954610100900460ff1660021490565b6117675760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610bc46118d1565b6117d746611c75565b1561180257807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b610bc4828260405180602001604052805f815250611d61565b5f61183982610d2e565b9050611848815f846001611c35565b61185182610d2e565b5f8381526101316020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552610130845282852080545f1901905587855261012f909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6033546001600160a01b031633146109ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610812565b606580546001600160a01b03191690556109c181611d93565b61195860c954610100900460ff1660021490565b156119765760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016117bc565b816001600160a01b0316836001600160a01b031603611a165760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610812565b6001600160a01b038381165f8181526101326020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611a8e848484611307565b611a9a84848484611de4565b610f1c5760405162461bcd60e51b815260040161081290612bc2565b60605f611ac283611ee1565b60010190505f816001600160401b03811115611ae057611ae0612767565b6040519080825280601f01601f191660200182016040528015611b0a576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611b1457509392505050565b6060611b5b846001600160a01b03166014611fb8565b611b6484611ab6565b83604051602001611b7793929190612c14565b60405160208183030381529060405290509392505050565b6001600160a01b0382161580611ba3575080155b80611bad57504681145b15610bc45760405163c118d2f360e01b815260040160405180910390fd5b806001600160a01b038116611bf35760405163538ba4f960e01b815260040160405180910390fd5b611bfc8361214d565b6108b3826121ab565b5f54610100900460ff16611c2b5760405162461bcd60e51b815260040161081290612c98565b610bc4828261221b565b611c4960c954610100900460ff1660021490565b15611c675760405163bae6e2a960e01b815260040160405180910390fd5b611c708361225c565b610f1c565b5f6001821480611c86575061426882145b80611c93575062aa36a782145b806106e257506106e282612285565b6001600160a01b0381163b611d0f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610812565b5f80516020612ebd83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611d468361229c565b5f82511180611d525750805b156108b357610f1c83836122db565b611d6b8383612300565b611d775f848484611de4565b6108b35760405162461bcd60e51b815260040161081290612bc2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6001600160a01b0384163b15611ed657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611e27903390899088908890600401612ce3565b6020604051808303815f875af1925050508015611e61575060408051601f3d908101601f19168201909252611e5e91810190612d15565b60015b611ebc573d808015611e8e576040519150601f19603f3d011682016040523d82523d5f602084013e611e93565b606091505b5080515f03611eb45760405162461bcd60e51b815260040161081290612bc2565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506109d0565b506001949350505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611f1f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611f4b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611f6957662386f26fc10000830492506010015b6305f5e1008310611f81576305f5e100830492506008015b6127108310611f9557612710830492506004015b60648310611fa7576064830492506002015b600a83106106e25760010192915050565b60605f611fc6836002612d44565b611fd1906002612d5b565b6001600160401b03811115611fe857611fe8612767565b6040519080825280601f01601f191660200182016040528015612012576020820181803683370190505b509050600360fc1b815f8151811061202c5761202c612d6e565b60200101906001600160f81b03191690815f1a905350600f60fb1b8160018151811061205a5761205a612d6e565b60200101906001600160f81b03191690815f1a9053505f61207c846002612d44565b612087906001612d5b565b90505b60018111156120fe576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106120bb576120bb612d6e565b1a60f81b8282815181106120d1576120d1612d6e565b60200101906001600160f81b03191690815f1a90535060049490941c936120f781612d82565b905061208a565b508315610ee35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610812565b5f54610100900460ff166121735760405162461bcd60e51b815260040161081290612c98565b61217b612499565b6121996001600160a01b03821615612193578161192b565b3361192b565b5060c9805461ff001916610100179055565b5f54610100900460ff166121d15760405162461bcd60e51b815260040161081290612c98565b6001600160401b034611156121f95760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f54610100900460ff166122415760405162461bcd60e51b815260040161081290612c98565b61012d61224e8382612de2565b5061012e6108b38282612de2565b306001600160a01b038216036109c157604051630c292c9d60e21b815260040160405180910390fd5b5f617e2c82101580156106e2575050617e90101590565b6122a581611ca2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610ee38383604051806060016040528060278152602001612edd602791396124bf565b6001600160a01b0382166123565760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610812565b5f81815261012f60205260409020546001600160a01b0316156123bb5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610812565b6123c85f83836001611c35565b5f81815261012f60205260409020546001600160a01b03161561242d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610812565b6001600160a01b0382165f818152610130602090815260408083208054600101905584835261012f90915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f54610100900460ff166109ea5760405162461bcd60e51b815260040161081290612c98565b60605f80856001600160a01b0316856040516124db9190612ea1565b5f60405180830381855af49150503d805f8114612513576040519150601f19603f3d011682016040523d82523d5f602084013e612518565b606091505b509150915061252986838387612533565b9695505050505050565b606083156125a15782515f0361259a576001600160a01b0385163b61259a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610812565b50816109d0565b6109d083838151156125b65781518083602001fd5b8060405162461bcd60e51b8152600401610812919061264d565b6001600160e01b0319811681146109c1575f80fd5b5f602082840312156125f5575f80fd5b8135610ee3816125d0565b5f5b8381101561261a578181015183820152602001612602565b50505f910152565b5f8151808452612639816020860160208601612600565b601f01601f19169290920160200192915050565b602081525f610ee36020830184612622565b5f6020828403121561266f575f80fd5b5035919050565b6001600160a01b03811681146109c1575f80fd5b5f806040838503121561269b575f80fd5b82356126a681612676565b946020939093013593505050565b5f805f606084860312156126c6575f80fd5b83356126d181612676565b925060208401356126e181612676565b929592945050506040919091013590565b5f60208284031215612702575f80fd5b8135610ee381612676565b8035801515811461271c575f80fd5b919050565b5f805f60608486031215612733575f80fd5b83356001600160401b0381168114612749575f80fd5b92506020840135915061275e6040850161270d565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261278a575f80fd5b81356001600160401b03808211156127a4576127a4612767565b604051601f8301601f19908116603f011681019082821181831017156127cc576127cc612767565b816040528381528660208588010111156127e4575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f8060408385031215612814575f80fd5b823561281f81612676565b915060208301356001600160401b03811115612839575f80fd5b6128458582860161277b565b9150509250929050565b5f8060408385031215612860575f80fd5b823561286b81612676565b91506128796020840161270d565b90509250929050565b5f8060408385031215612893575f80fd5b823591506128796020840161270d565b5f805f80608085870312156128b6575f80fd5b84356128c181612676565b935060208501356128d181612676565b92506040850135915060608501356001600160401b038111156128f2575f80fd5b6128fe8782880161277b565b91505092959194509250565b5f806040838503121561291b575f80fd5b823561292681612676565b9150602083013561293681612676565b809150509250929050565b5f8083601f840112612951575f80fd5b5081356001600160401b03811115612967575f80fd5b60208301915083602082850101111561297e575f80fd5b9250929050565b5f805f805f805f8060c0898b03121561299c575f80fd5b88356129a781612676565b975060208901356129b781612676565b965060408901356129c781612676565b95506060890135945060808901356001600160401b03808211156129e9575f80fd5b6129f58c838d01612941565b909650945060a08b0135915080821115612a0d575f80fd5b50612a1a8b828c01612941565b999c989b5096995094979396929594505050565b600181811c90821680612a4257607f821691505b602082108103612a6057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b5f60208284031215612ba0575f80fd5b5051919050565b5f60208284031215612bb7575f80fd5b8151610ee381612676565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6832ba3432b932bab69d60b91b81525f8451612c37816009850160208901612600565b600160fe1b6009918401918201528451612c5881600a840160208901612600565b712f746f6b656e5552493f75696e743235363d60701b600a92909101918201528351612c8b81601c840160208801612600565b01601c0195945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061252990830184612622565b5f60208284031215612d25575f80fd5b8151610ee3816125d0565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106e2576106e2612d30565b808201808211156106e2576106e2612d30565b634e487b7160e01b5f52603260045260245ffd5b5f81612d9057612d90612d30565b505f190190565b601f8211156108b357805f5260205f20601f840160051c81016020851015612dbc5750805b601f840160051c820191505b81811015612ddb575f8155600101612dc8565b5050505050565b81516001600160401b03811115612dfb57612dfb612767565b612e0f81612e098454612a2e565b84612d97565b602080601f831160018114612e42575f8415612e2b5750858301515b5f19600386901b1c1916600185901b178555612e99565b5f85815260208120601f198616915b82811015612e7057888601518255948401946001909101908401612e51565b5085821015612e8d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f8251612eb2818460208701612600565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122093f8380e7fb2b66a246c9f54dba067ba35eb6d37cdb1f1a8347242f8a4292bc664736f6c63430008180033", + "balance": "0x0" + }, + "0x0167000000000000000000000000000000010098": { + "contractName": "BridgedERC1155", + "storage": {}, + "code": "0x6080604052600436106101e5575f3560e01c8063715018a611610108578063a86f9d9e1161009d578063e30c39781161006d578063e30c39781461056f578063e985e9c51461058c578063ef8c4ae6146105d4578063f242432a146105f3578063f2fde38b14610612575f80fd5b8063a86f9d9e146104d5578063b390c0ab146104f4578063d81d0a1514610513578063e07baba614610532575f80fd5b80638abf6077116100d85780638abf6077146104715780638da5cb5b1461048557806395d89b41146104a2578063a22cb465146104b6575f80fd5b8063715018a61461041557806379ba5097146104295780637cf8ed0d1461043d5780638456cb591461045d575f80fd5b80633ab76e9f1161017e5780634e1273f41161014e5780634e1273f4146103a25780634f1ef286146103ce57806352d1902d146103e15780635c975abb146103f5575f80fd5b80633ab76e9f146103225780633eb6b8cf146103595780633f4ba83a1461037857806349d126051461038c575f80fd5b806326afaadd116101b957806326afaadd1461028a5780632eb2c2d6146102ce5780633075db56146102ef5780633659cfe614610303575f80fd5b8062fdd58e146101e957806301ffc9a71461021b57806306fdde031461024a5780630e89341c1461026b575b5f80fd5b3480156101f4575f80fd5b50610208610203366004612749565b610631565b6040519081526020015b60405180910390f35b348015610226575f80fd5b5061023a610235366004612788565b6106cb565b6040519015158152602001610212565b348015610255575f80fd5b5061025e61070a565b60405161021291906127f0565b348015610276575f80fd5b5061025e610285366004612802565b610797565b348015610295575f80fd5b506102af61015f54610160546001600160a01b0390911691565b604080516001600160a01b039093168352602083019190915201610212565b3480156102d9575f80fd5b506102ed6102e836600461295d565b61082a565b005b3480156102fa575f80fd5b5061023a610876565b34801561030e575f80fd5b506102ed61031d366004612a03565b61088a565b34801561032d575f80fd5b50609754610341906001600160a01b031681565b6040516001600160a01b039091168152602001610212565b348015610364575f80fd5b50610341610373366004612a32565b610951565b348015610383575f80fd5b506102ed610965565b348015610397575f80fd5b506102086101605481565b3480156103ad575f80fd5b506103c16103bc366004612a78565b610979565b6040516102129190612b78565b6102ed6103dc366004612b8a565b610a98565b3480156103ec575f80fd5b50610208610b51565b348015610400575f80fd5b5061023a60c954610100900460ff1660021490565b348015610420575f80fd5b506102ed610c03565b348015610434575f80fd5b506102ed610c14565b348015610448575f80fd5b5061015f54610341906001600160a01b031681565b348015610468575f80fd5b506102ed610c8b565b34801561047c575f80fd5b50610341610c9e565b348015610490575f80fd5b506033546001600160a01b0316610341565b3480156104ad575f80fd5b5061025e610cac565b3480156104c1575f80fd5b506102ed6104d0366004612bcc565b610cba565b3480156104e0575f80fd5b506103416104ef366004612bff565b610cc5565b3480156104ff575f80fd5b506102ed61050e366004612c20565b610cd8565b34801561051e575f80fd5b506102ed61052d366004612c87565b610da6565b34801561053d575f80fd5b5060c954610557906201000090046001600160401b031681565b6040516001600160401b039091168152602001610212565b34801561057a575f80fd5b506065546001600160a01b0316610341565b348015610597575f80fd5b5061023a6105a6366004612d03565b6001600160a01b039182165f90815261012e6020908152604080832093909416825291909152205460ff1690565b3480156105df575f80fd5b506102ed6105ee366004612d77565b610ee6565b3480156105fe575f80fd5b506102ed61060d366004612e20565b611066565b34801561061d575f80fd5b506102ed61062c366004612a03565b6110ab565b5f6001600160a01b0383166106a05760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b505f81815261012d602090815260408083206001600160a01b03861684529091529020545b92915050565b5f6001600160e01b03198216634d22606360e01b14806106fb57506001600160e01b031982166377c6257360e11b145b806106c557506106c58261111c565b610162805461071890612e83565b80601f016020809104026020016040519081016040528092919081815260200182805461074490612e83565b801561078f5780601f106107665761010080835404028352916020019161078f565b820191905f5260205f20905b81548152906001019060200180831161077257829003601f168201915b505050505081565b606061012f80546107a790612e83565b80601f01602080910402602001604051908101604052809291908181526020018280546107d390612e83565b801561081e5780601f106107f55761010080835404028352916020019161081e565b820191905f5260205f20905b81548152906001019060200180831161080157829003601f168201915b50505050509050919050565b6001600160a01b038516331480610846575061084685336105a6565b6108625760405162461bcd60e51b815260040161069790612ebb565b61086f858585858561116b565b5050505050565b5f6002610881611306565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000100981630036108d25760405162461bcd60e51b815260040161069790612f09565b7f00000000000000000000000001670000000000000000000000000000000100986001600160a01b0316610904611345565b6001600160a01b03161461092a5760405162461bcd60e51b815260040161069790612f55565b61093381611360565b604080515f8082526020820190925261094e91839190611368565b50565b5f61095d8484846114d2565b949350505050565b61096d6115bb565b610977335f61164b565b565b606081518351146109de5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610697565b5f83516001600160401b038111156109f8576109f8612819565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5090505f5b8451811015610a9057610a6b858281518110610a4457610a44612fa1565b6020026020010151858381518110610a5e57610a5e612fa1565b6020026020010151610631565b828281518110610a7d57610a7d612fa1565b6020908102919091010152600101610a26565b509392505050565b6001600160a01b037f0000000000000000000000000167000000000000000000000000000000010098163003610ae05760405162461bcd60e51b815260040161069790612f09565b7f00000000000000000000000001670000000000000000000000000000000100986001600160a01b0316610b12611345565b6001600160a01b031614610b385760405162461bcd60e51b815260040161069790612f55565b610b4182611360565b610b4d82826001611368565b5050565b5f306001600160a01b037f00000000000000000000000001670000000000000000000000000000000100981614610bf05760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610697565b505f805160206135858339815191525b90565b610c0b61164f565b6109775f6116a9565b60655433906001600160a01b03168114610c825760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610697565b61094e816116a9565b610c936116c2565b61097733600161164b565b5f610ca7611345565b905090565b610161805461071890612e83565b610b4d338383611733565b5f610cd14684846114d2565b9392505050565b610cec60c954610100900460ff1660021490565b15610d0a5760405163bae6e2a960e01b815260040160405180910390fd5b6c195c98cc4c4d4d57dd985d5b1d609a1b610d26816001610cc5565b6001600160a01b0316336001600160a01b031614610d5757604051630d85cccf60e11b815260040160405180910390fd5b6002610d61611306565b60ff1603610d825760405163dfc60d8560e01b815260040160405180910390fd5b610d8c6002611813565b610d9733848461185b565b610da16001611813565b505050565b610dba60c954610100900460ff1660021490565b15610dd85760405163bae6e2a960e01b815260040160405180910390fd5b6c195c98cc4c4d4d57dd985d5b1d609a1b610df4816001610cc5565b6001600160a01b0316336001600160a01b031614610e2557604051630d85cccf60e11b815260040160405180910390fd5b6002610e2f611306565b60ff1603610e505760405163dfc60d8560e01b815260040160405180910390fd5b610e5a6002611813565b610ed4868686808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050604080516020808a028281018201909352898252909350899250889182918501908490808284375f920182905250604080516020810190915290815292506119ef915050565b610ede6001611813565b505050505050565b5f54610100900460ff1615808015610f0457505f54600160ff909116105b80610f1d5750303b158015610f1d57505f5460ff166001145b610f805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610697565b5f805460ff191660011790558015610fa1575f805461ff0019166101001790555b610fab8787611b71565b610fb58989611bad565b610fd6610fd1888860405180602001604052805f815250611be7565b611c31565b61015f80546001600160a01b0319166001600160a01b038916179055610160869055610161611006858783612ff9565b50610162611015838583612ff9565b50801561105b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6001600160a01b038516331480611082575061108285336105a6565b61109e5760405162461bcd60e51b815260040161069790612ebb565b61086f8585858585611c60565b6110b361164f565b606580546001600160a01b0383166001600160a01b031990911681179091556110e46033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f6001600160e01b03198216636cdb3d1360e11b148061114c57506001600160e01b031982166303a24d0760e21b145b806106c557506301ffc9a760e01b6001600160e01b03198316146106c5565b815183511461118c5760405162461bcd60e51b8152600401610697906130b2565b6001600160a01b0384166111b25760405162461bcd60e51b8152600401610697906130fa565b336111c1818787878787611d8f565b5f5b84518110156112a0575f8582815181106111df576111df612fa1565b602002602001015190505f8583815181106111fc576111fc612fa1565b6020908102919091018101515f84815261012d835260408082206001600160a01b038e16835290935291909120549091508181101561124d5760405162461bcd60e51b81526004016106979061313f565b5f83815261012d602090815260408083206001600160a01b038e8116855292528083208585039055908b1682528120805484929061128c90849061319d565b9091555050600190930192506111c3915050565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516112f09291906131b0565b60405180910390a4610ede818787878787611dcf565b5f61131046611f29565b1561133b57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020613585833981519152546001600160a01b031690565b61094e61164f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561139b57610da183611f56565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156113f5575060408051601f3d908101601f191682019092526113f2918101906131dd565b60015b6114585760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610697565b5f8051602061358583398151915281146114c65760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610697565b50610da1838383611ff1565b6097545f906001600160a01b0316806114fe57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa158015611550573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157491906131f4565b91508215801561158b57506001600160a01b038216155b15610a9057604051632b0d65db60e01b81526001600160401b038616600482015260248101859052604401610697565b6115cf60c954610100900460ff1660021490565b6115ec5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b610b4d5b6033546001600160a01b031633146109775760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610697565b606580546001600160a01b031916905561094e8161201b565b6116d660c954610100900460ff1660021490565b156116f45760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001611641565b816001600160a01b0316836001600160a01b0316036117a65760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610697565b6001600160a01b038381165f81815261012e6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61181c46611f29565b1561184757807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6001600160a01b0383166118bd5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610697565b335f6118c88461206c565b90505f6118d48461206c565b90506118f283875f858560405180602001604052805f815250611d8f565b5f85815261012d602090815260408083206001600160a01b038a168452909152902054848110156119715760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610697565b5f86815261012d602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a460408051602081019091525f90525b50505050505050565b6001600160a01b038416611a4f5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610697565b8151835114611a705760405162461bcd60e51b8152600401610697906130b2565b33611a7f815f87878787611d8f565b5f5b8451811015611b0b57838181518110611a9c57611a9c612fa1565b602002602001015161012d5f878481518110611aba57611aba612fa1565b602002602001015181526020019081526020015f205f886001600160a01b03166001600160a01b031681526020019081526020015f205f828254611afe919061319d565b9091555050600101611a81565b50846001600160a01b03165f6001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611b5b9291906131b0565b60405180910390a461086f815f87878787611dcf565b6001600160a01b0382161580611b85575080155b80611b8f57504681145b15610b4d5760405163c118d2f360e01b815260040160405180910390fd5b806001600160a01b038116611bd55760405163538ba4f960e01b815260040160405180910390fd5b611bde836120b5565b610da182612113565b6060611bfd846001600160a01b03166014612183565b611c0684612318565b83604051602001611c199392919061320f565b60405160208183030381529060405290509392505050565b5f54610100900460ff16611c575760405162461bcd60e51b815260040161069790613293565b61094e816123a7565b6001600160a01b038416611c865760405162461bcd60e51b8152600401610697906130fa565b335f611c918561206c565b90505f611c9d8561206c565b9050611cad838989858589611d8f565b5f86815261012d602090815260408083206001600160a01b038c16845290915290205485811015611cf05760405162461bcd60e51b81526004016106979061313f565b5f87815261012d602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290611d2f90849061319d565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461105b848a8a8a8a8a6123d6565b611da360c954610100900460ff1660021490565b15611dc15760405163bae6e2a960e01b815260040160405180910390fd5b611dca84612490565b610ede565b6001600160a01b0384163b15610ede5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611e1390899089908890889088906004016132de565b6020604051808303815f875af1925050508015611e4d575060408051601f3d908101601f19168201909252611e4a9181019061333b565b60015b611ef957611e59613356565b806308c379a003611e925750611e6d61336e565b80611e785750611e94565b8060405162461bcd60e51b815260040161069791906127f0565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610697565b6001600160e01b0319811663bc197c8160e01b146119e65760405162461bcd60e51b8152600401610697906133f6565b5f6001821480611f3a575061426882145b80611f47575062aa36a782145b806106c557506106c5826124b9565b6001600160a01b0381163b611fc35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610697565b5f8051602061358583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611ffa836124d0565b5f825111806120065750805b15610da157612015838361250f565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160018082528183019092526060915f91906020808301908036833701905050905082815f815181106120a4576120a4612fa1565b602090810291909101015292915050565b5f54610100900460ff166120db5760405162461bcd60e51b815260040161069790613293565b6120e3612534565b6121016001600160a01b038216156120fb57816116a9565b336116a9565b5060c9805461ff001916610100179055565b5f54610100900460ff166121395760405162461bcd60e51b815260040161069790613293565b6001600160401b034611156121615760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b60605f61219183600261343e565b61219c90600261319d565b6001600160401b038111156121b3576121b3612819565b6040519080825280601f01601f1916602001820160405280156121dd576020820181803683370190505b509050600360fc1b815f815181106121f7576121f7612fa1565b60200101906001600160f81b03191690815f1a905350600f60fb1b8160018151811061222557612225612fa1565b60200101906001600160f81b03191690815f1a9053505f61224784600261343e565b61225290600161319d565b90505b60018111156122c9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061228657612286612fa1565b1a60f81b82828151811061229c5761229c612fa1565b60200101906001600160f81b03191690815f1a90535060049490941c936122c281613455565b9050612255565b508315610cd15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610697565b60605f6123248361255a565b60010190505f816001600160401b0381111561234257612342612819565b6040519080825280601f01601f19166020018201604052801561236c576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461237657509392505050565b5f54610100900460ff166123cd5760405162461bcd60e51b815260040161069790613293565b61094e81612631565b6001600160a01b0384163b15610ede5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061241a908990899088908890889060040161346a565b6020604051808303815f875af1925050508015612454575060408051601f3d908101601f191682019092526124519181019061333b565b60015b61246057611e59613356565b6001600160e01b0319811663f23a6e6160e01b146119e65760405162461bcd60e51b8152600401610697906133f6565b306001600160a01b0382160361094e57604051630c292c9d60e21b815260040160405180910390fd5b5f617e2c82101580156106c5575050617e90101590565b6124d981611f56565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610cd183836040518060600160405280602781526020016135a56027913961263e565b5f54610100900460ff166109775760405162461bcd60e51b815260040161069790613293565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106125985772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106125c4576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106125e257662386f26fc10000830492506010015b6305f5e10083106125fa576305f5e100830492506008015b612710831061260e57612710830492506004015b60648310612620576064830492506002015b600a83106106c55760010192915050565b61012f610b4d82826134ae565b60605f80856001600160a01b03168560405161265a9190613569565b5f60405180830381855af49150503d805f8114612692576040519150601f19603f3d011682016040523d82523d5f602084013e612697565b606091505b50915091506126a8868383876126b2565b9695505050505050565b606083156127205782515f03612719576001600160a01b0385163b6127195760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610697565b508161095d565b61095d8383815115611e785781518083602001fd5b6001600160a01b038116811461094e575f80fd5b5f806040838503121561275a575f80fd5b823561276581612735565b946020939093013593505050565b6001600160e01b03198116811461094e575f80fd5b5f60208284031215612798575f80fd5b8135610cd181612773565b5f5b838110156127bd5781810151838201526020016127a5565b50505f910152565b5f81518084526127dc8160208601602086016127a3565b601f01601f19169290920160200192915050565b602081525f610cd160208301846127c5565b5f60208284031215612812575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f191681016001600160401b038111828210171561285257612852612819565b6040525050565b5f6001600160401b0382111561287157612871612819565b5060051b60200190565b5f82601f83011261288a575f80fd5b8135602061289782612859565b6040516128a4828261282d565b80915083815260208101915060208460051b8701019350868411156128c7575f80fd5b602086015b848110156128e357803583529183019183016128cc565b509695505050505050565b5f82601f8301126128fd575f80fd5b81356001600160401b0381111561291657612916612819565b60405161292d601f8301601f19166020018261282d565b818152846020838601011115612941575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215612971575f80fd5b853561297c81612735565b9450602086013561298c81612735565b935060408601356001600160401b03808211156129a7575f80fd5b6129b389838a0161287b565b945060608801359150808211156129c8575f80fd5b6129d489838a0161287b565b935060808801359150808211156129e9575f80fd5b506129f6888289016128ee565b9150509295509295909350565b5f60208284031215612a13575f80fd5b8135610cd181612735565b80358015158114612a2d575f80fd5b919050565b5f805f60608486031215612a44575f80fd5b83356001600160401b0381168114612a5a575f80fd5b925060208401359150612a6f60408501612a1e565b90509250925092565b5f8060408385031215612a89575f80fd5b82356001600160401b0380821115612a9f575f80fd5b818501915085601f830112612ab2575f80fd5b81356020612abf82612859565b604051612acc828261282d565b83815260059390931b8501820192828101915089841115612aeb575f80fd5b948201945b83861015612b12578535612b0381612735565b82529482019490820190612af0565b96505086013592505080821115612b27575f80fd5b50612b348582860161287b565b9150509250929050565b5f815180845260208085019450602084015f5b83811015612b6d57815187529582019590820190600101612b51565b509495945050505050565b602081525f610cd16020830184612b3e565b5f8060408385031215612b9b575f80fd5b8235612ba681612735565b915060208301356001600160401b03811115612bc0575f80fd5b612b34858286016128ee565b5f8060408385031215612bdd575f80fd5b8235612be881612735565b9150612bf660208401612a1e565b90509250929050565b5f8060408385031215612c10575f80fd5b82359150612bf660208401612a1e565b5f8060408385031215612c31575f80fd5b50508035926020909101359150565b5f8083601f840112612c50575f80fd5b5081356001600160401b03811115612c66575f80fd5b6020830191508360208260051b8501011115612c80575f80fd5b9250929050565b5f805f805f60608688031215612c9b575f80fd5b8535612ca681612735565b945060208601356001600160401b0380821115612cc1575f80fd5b612ccd89838a01612c40565b90965094506040880135915080821115612ce5575f80fd5b50612cf288828901612c40565b969995985093965092949392505050565b5f8060408385031215612d14575f80fd5b8235612d1f81612735565b91506020830135612d2f81612735565b809150509250929050565b5f8083601f840112612d4a575f80fd5b5081356001600160401b03811115612d60575f80fd5b602083019150836020828501011115612c80575f80fd5b5f805f805f805f8060c0898b031215612d8e575f80fd5b8835612d9981612735565b97506020890135612da981612735565b96506040890135612db981612735565b95506060890135945060808901356001600160401b0380821115612ddb575f80fd5b612de78c838d01612d3a565b909650945060a08b0135915080821115612dff575f80fd5b50612e0c8b828c01612d3a565b999c989b5096995094979396929594505050565b5f805f805f60a08688031215612e34575f80fd5b8535612e3f81612735565b94506020860135612e4f81612735565b9350604086013592506060860135915060808601356001600160401b03811115612e77575f80fd5b6129f6888289016128ee565b600181811c90821680612e9757607f821691505b602082108103612eb557634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b601f821115610da157805f5260205f20601f840160051c81016020851015612fda5750805b601f840160051c820191505b8181101561086f575f8155600101612fe6565b6001600160401b0383111561301057613010612819565b6130248361301e8354612e83565b83612fb5565b5f601f841160018114613055575f851561303e5750838201355b5f19600387901b1c1916600186901b17835561086f565b5f83815260208120601f198716915b828110156130845786850135825560209485019460019092019101613064565b50868210156130a0575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106c5576106c5613189565b604081525f6131c26040830185612b3e565b82810360208401526131d48185612b3e565b95945050505050565b5f602082840312156131ed575f80fd5b5051919050565b5f60208284031215613204575f80fd5b8151610cd181612735565b6832ba3432b932bab69d60b91b81525f84516132328160098501602089016127a3565b600160fe1b600991840191820152845161325381600a8401602089016127a3565b712f746f6b656e5552493f75696e743235363d60701b600a9290910191820152835161328681601c8401602088016127a3565b01601c0195945050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0386811682528516602082015260a0604082018190525f9061330990830186612b3e565b828103606084015261331b8186612b3e565b9050828103608084015261332f81856127c5565b98975050505050505050565b5f6020828403121561334b575f80fd5b8151610cd181612773565b5f60033d1115610c005760045f803e505f5160e01c90565b5f60443d101561337b5790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156133aa57505050505090565b82850191508151818111156133c25750505050505090565b843d87010160208285010111156133dc5750505050505090565b6133eb6020828601018761282d565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b80820281158282048414176106c5576106c5613189565b5f8161346357613463613189565b505f190190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f906134a3908301846127c5565b979650505050505050565b81516001600160401b038111156134c7576134c7612819565b6134db816134d58454612e83565b84612fb5565b602080601f83116001811461350e575f84156134f75750858301515b5f19600386901b1c1916600185901b178555610ede565b5f85815260208120601f198616915b8281101561353c5788860151825594840194600190910190840161351d565b508582101561355957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f825161357a8184602087016127a3565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122055e37acbf3a5af2b54294b59ba55be8878c05b123be43328bf9a1e511ae6410164736f6c63430008180033", + "balance": "0x0" + }, + "0x0167000000000000000000000000000000000005": { + "contractName": "SignalServiceImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be" + }, + "code": "0x6080604052600436106101c5575f3560e01c806379ba5097116100f2578063a86f9d9e11610092578063e30c397811610062578063e30c39781461052f578063f09a40161461054c578063f2fde38b1461056b578063fe9fbb801461058a575f80fd5b8063a86f9d9e1461048e578063ce9d0820146104ad578063dfc8ff1d146104cc578063e07baba61461050a575f80fd5b80638da5cb5b116100cd5780638da5cb5b14610414578063910af6ed1461043157806391f3f74b146104505780639b527cfa1461046f575f80fd5b806379ba5097146103d85780638456cb59146103ec5780638abf607714610400575f80fd5b80633eb6b8cf1161016857806352d1902d1161013857806352d1902d146103715780635c975abb1461038557806366ca2bc0146103a5578063715018a6146103c4575f80fd5b80633eb6b8cf146102fe5780633f4ba83a1461031d5780634f1ef286146103315780634f90a67414610344575f80fd5b8063355bcc3d116101a3578063355bcc3d146102325780633659cfe6146102895780633ab76e9f146102a85780633ced0e08146102df575f80fd5b80632d1fb389146101c95780633075db56146101ea57806332676bc614610213575b5f80fd5b3480156101d4575f80fd5b506101e86101e3366004613ad5565b6105b8565b005b3480156101f5575f80fd5b506101fe61065e565b60405190151581526020015b60405180910390f35b34801561021e575f80fd5b506101fe61022d366004613b08565b610672565b34801561023d575f80fd5b5061027161024c366004613b48565b60fb60209081525f92835260408084209091529082529020546001600160401b031681565b6040516001600160401b03909116815260200161020a565b348015610294575f80fd5b506101e86102a3366004613b62565b610688565b3480156102b3575f80fd5b506097546102c7906001600160a01b031681565b6040516001600160a01b03909116815260200161020a565b3480156102ea575f80fd5b506101fe6102f9366004613b7d565b610758565b348015610309575f80fd5b506102c7610318366004613bbe565b61079f565b348015610328575f80fd5b506101e86107b5565b6101e861033f366004613cce565b6107c9565b34801561034f575f80fd5b5061036361035e366004613b7d565b610882565b60405190815260200161020a565b34801561037c575f80fd5b506103636108c8565b348015610390575f80fd5b506101fe60c954610100900460ff1660021490565b3480156103b0575f80fd5b506103636103bf366004613d1a565b610979565b3480156103cf575f80fd5b506101e8610985565b3480156103e3575f80fd5b506101e8610996565b3480156103f7575f80fd5b506101e8610a0d565b34801561040b575f80fd5b506102c7610a20565b34801561041f575f80fd5b506033546001600160a01b03166102c7565b34801561043c575f80fd5b5061036361044b366004613d31565b610a2e565b34801561045b575f80fd5b5061036361046a366004613dc5565b610afe565b34801561047a575f80fd5b50610363610489366004613e01565b610b69565b348015610499575f80fd5b506102c76104a8366004613e31565b610b95565b3480156104b8575f80fd5b506101e86104c7366004613d31565b610ba1565b3480156104d7575f80fd5b506104eb6104e6366004613e01565b610bb7565b604080516001600160401b03909316835260208301919091520161020a565b348015610515575f80fd5b5060c954610271906201000090046001600160401b031681565b34801561053a575f80fd5b506065546001600160a01b03166102c7565b348015610557575f80fd5b506101e8610566366004613e52565b610c4b565b348015610576575f80fd5b506101e8610585366004613b62565b610d5a565b348015610595575f80fd5b506101fe6105a4366004613b62565b60fc6020525f908152604090205460ff1681565b6105c0610dcb565b6001600160a01b0382165f90815260fc602052604090205481151560ff909116151503610600576040516398f26f4560e01b815260040160405180910390fd5b6001600160a01b0382165f81815260fc6020908152604091829020805460ff191685151590811790915591519182527f4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf910160405180910390a25050565b5f6002610669610e25565b60ff1614905090565b5f61067d8383610e64565b151590505b92915050565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000051630036106d95760405162461bcd60e51b81526004016106d090613e89565b60405180910390fd5b7f00000000000000000000000001670000000000000000000000000000000000056001600160a01b031661070b610ec6565b6001600160a01b0316146107315760405162461bcd60e51b81526004016106d090613ed5565b61073a81610ee1565b604080515f8082526020820190925261075591839190610ee9565b50565b5f8180820361077a5760405163ec73295960e01b815260040160405180910390fd5b5f610786878787610b69565b9050836107933083610e64565b14979650505050505050565b5f6107ab848484611053565b90505b9392505050565b6107bd611144565b6107c7335f6111d4565b565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000000051630036108115760405162461bcd60e51b81526004016106d090613e89565b7f00000000000000000000000001670000000000000000000000000000000000056001600160a01b0316610843610ec6565b6001600160a01b0316146108695760405162461bcd60e51b81526004016106d090613ed5565b61087282610ee1565b61087e82826001610ee9565b5050565b335f90815260fc602052604081205460ff166108b157604051631f67751f60e01b815260040160405180910390fd5b6108bd858585856111ed565b90505b949350505050565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000000000516146109675760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016106d0565b505f805160206144e883398151915290565b5f6106823383846112cf565b61098d610dcb565b6107c75f6113a8565b60655433906001600160a01b03168114610a045760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016106d0565b610755816113a8565b610a156113c1565b6107c73360016111d4565b5f610a29610ec6565b905090565b5f610a4360c954610100900460ff1660021490565b15610a615760405163bae6e2a960e01b815260040160405180910390fd5b6002610a6b610e25565b60ff1603610a8c5760405163dfc60d8560e01b815260040160405180910390fd5b610a966002611432565b5f610aa68787878787600161147a565b90505f5b8151811015610ae957610ad5828281518110610ac857610ac8613f21565b6020026020010151611936565b610adf9084613f49565b9250600101610aaa565b5050610af56001611432565b95945050505050565b6040516514d251d3905360d21b60208201526001600160c01b031960c085901b1660268201526bffffffffffffffffffffffff19606084901b16602e820152604281018290525f906062015b6040516020818303038152906040528051906020012090509392505050565b604080516001600160401b03808616602083015291810184905290821660608201525f90608001610b4a565b5f6107ae468484611053565b610baf85858585855f61147a565b505050505050565b5f80826001600160401b03165f03610bf3576001600160401b038086165f90815260fb6020908152604080832088845290915290205416610bf5565b825b91506001600160401b03821615610c43575f610c12868685610b69565b9050610c1e3082610e64565b91505f829003610c415760405163738afa0560e01b815260040160405180910390fd5b505b935093915050565b5f54610100900460ff1615808015610c6957505f54600160ff909116105b80610c825750303b158015610c8257505f5460ff166001145b610ce55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106d0565b5f805460ff191660011790558015610d06575f805461ff0019166101001790555b610d108383611a7a565b8015610d55575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b610d62610dcb565b606580546001600160a01b0383166001600160a01b03199091168117909155610d936033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146107c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d0565b5f610e2f46611ab4565b15610e5a57507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f826001600160a01b038116610e8d5760405163538ba4f960e01b815260040160405180910390fd5b825f819003610eaf5760405163ec73295960e01b815260040160405180910390fd5b5f610ebb468787610afe565b549695505050505050565b5f805160206144e8833981519152546001600160a01b031690565b610755610dcb565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f1c57610d5583611ae1565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f76575060408051601f3d908101601f19168201909252610f7391810190613f5c565b60015b610fd95760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016106d0565b5f805160206144e883398151915281146110475760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016106d0565b50610d55838383611b7c565b6097545f906001600160a01b03168061107f57604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa1580156110d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f59190613f73565b91508215801561110c57506001600160a01b038216155b1561113c57604051632b0d65db60e01b81526001600160401b0386166004820152602481018590526044016106d0565b509392505050565b61115860c954610100900460ff1660021490565b6111755760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b604051630c2b8f8f60e11b815260040160405180910390fd5b5f6111f9858585610b69565b90506112063082846112cf565b506001600160401b038581165f90815260fb6020908152604080832088845290915290205481851691161015611270576001600160401b038581165f90815260fb602090815260408083208884529091529020805467ffffffffffffffff19169185169190911790555b83836001600160401b0316866001600160401b03167fde247c825b1fb2d7ff9e0e771cba6f9e757ad04479fcdc135d88ae91fd50b37d85856040516112bf929190918252602082015260400190565b60405180910390a4949350505050565b5f836001600160a01b0381166112f85760405163538ba4f960e01b815260040160405180910390fd5b835f81900361131a5760405163ec73295960e01b815260040160405180910390fd5b835f81900361133c5760405163ec73295960e01b815260040160405180910390fd5b611347468888610afe565b858155604080516001600160a01b038a16815260208101899052908101829052606081018790529094507f0ad2d108660a211f47bf7fb43a0443cae181624995d3d42b88ee6879d200e9739060800160405180910390a15050509392505050565b606580546001600160a01b031916905561075581611ba6565b6113d560c954610100900460ff1660021490565b156113f35760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258906020016111ca565b61143b46611ab4565b1561146657807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6060856001600160a01b0381166114a45760405163538ba4f960e01b815260040160405180910390fd5b855f8190036114c65760405163ec73295960e01b815260040160405180910390fd5b5f6114d38688018861403d565b905080515f036114f657604051630b92daef60e21b815260040160405180910390fd5b5f60018251611505919061417b565b6001600160401b0381111561151c5761151c613bf7565b604051908082528060200260200182016040528015611545578160200160208202803683370190505b50905085156115d85781516001600160401b0381111561156757611567613bf7565b6040519080825280602002602001820160405280156115d457816020015b6115c16040805160e0810182525f80825260208201819052918101829052606081018290526080810182905260a081018290529060c082015290565b8152602001906001900390816115855790505b5094505b8a8a8a805f6115f9856d7369676e616c5f7365727669636560901b8361079f565b9050306001600160a01b0382160361162457604051637556223560e11b815260040160405180910390fd5b61165c6040805160c0810182525f80825260208201819052918101829052906060820190815260200160608152602001606081525090565b5f805f805b8b518110156118ea578b818151811061167c5761167c613f21565b602002602001015194505f5b818110156116e657855f01516001600160401b03168c82815181106116af576116af613f21565b60200260200101516001600160401b0316036116de576040516348362c2760e11b815260040160405180910390fd5b600101611688565b506116f58a8a8a8a898b611bf7565b93508a518114915081156117355784516001600160401b0316461461172d576040516338bf822760e21b815260040160405180910390fd5b3095506117e0565b845f01518b828151811061174b5761174b613f21565b6001600160401b0392831660209182029290920101528551161580611779575084516001600160401b031646145b1561179757604051637556223560e11b815260040160405180910390fd5b84516117b5906d7369676e616c5f7365727669636560901b5f61079f565b9550306001600160a01b038716036117e057604051637556223560e11b815260040160405180910390fd5b608085015151151592508f15611874576040518060e00160405280866040015181526020018581526020018b6001600160401b0316815260200186602001516001600160401b0316815260200184151581526020018315158152602001866060015160038111156118535761185361418e565b8152508f828151811061186857611868613f21565b60200260200101819052505b6118cf8a846118a3577fc6cdc4f2acf13acb10f410085b821f7b7113b303e9a4799023f928317396aaf56118c5565b7f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da1695b8760200151610b69565b604086015186519b5096995097509495508794600101611661565b5085158061190157506118fd3088610e64565b8614155b1561191f5760405163738afa0560e01b815260040160405180910390fd5b505050505050505050505050509695505050505050565b5f8060038360c0015160038111156119505761195061418e565b1480611971575060028360c00151600381111561196f5761196f61418e565b145b9050808015611981575082608001515b801561198f57508260a00151155b156119d157600191506119cf83604001517f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da1698560600151865f01516111ed565b505b5f60038460c0015160038111156119ea576119ea61418e565b1480611a0b575060018460c001516003811115611a0957611a0961418e565b145b9050808015611a275750836080015180611a2757508360a00151155b15611a7357611a37600184613f49565b9250611a7184604001517fc6cdc4f2acf13acb10f410085b821f7b7113b303e9a4799023f928317396aaf5866060015187602001516111ed565b505b5050919050565b806001600160a01b038116611aa25760405163538ba4f960e01b815260040160405180910390fd5b611aab83611c96565b610d5582611cf4565b5f6001821480611ac5575061426882145b80611ad2575062aa36a782145b80610682575061068282611d64565b6001600160a01b0381163b611b4e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016106d0565b5f805160206144e883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611b8583611d7b565b5f82511180611b915750805b15610d5557611ba08383611dba565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f856001600160a01b038116611c205760405163538ba4f960e01b815260040160405180910390fd5b855f819003611c425760405163ec73295960e01b815260040160405180910390fd5b855f819003611c645760405163ec73295960e01b815260040160405180910390fd5b611c88866040015186611c788d8d8d610afe565b8a8a608001518b60a00151611ddf565b9a9950505050505050505050565b5f54610100900460ff16611cbc5760405162461bcd60e51b81526004016106d0906141a2565b611cc4611eec565b611ce26001600160a01b03821615611cdc57816113a8565b336113a8565b5060c9805461ff001916610100179055565b5f54610100900460ff16611d1a5760405162461bcd60e51b81526004016106d0906141a2565b6001600160401b03461115611d425760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b5f617e2c8210158015610682575050617e90101590565b611d8481611ae1565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606107ae838360405180606001604052806027815260200161450860279139611f12565b5f82515f14611e87576040516bffffffffffffffffffffffff19606088901b1660208201525f90611e2390603401604051602081830303815290604052858a611f86565b905080515f03611e4657604051630414cd5b60e31b815260040160405180910390fd5b5f611e5082611f9f565b9050611e7581600281518110611e6857611e68613f21565b6020026020010151611fb2565b611e7e906141ed565b92505050611e8a565b50855b5f611ec186604051602001611ea191815260200190565b60408051601f19818403018152919052611eba876120d2565b85856120e5565b905080611ee157604051638d9a4db360e01b815260040160405180910390fd5b509695505050505050565b5f54610100900460ff166107c75760405162461bcd60e51b81526004016106d0906141a2565b60605f80856001600160a01b031685604051611f2e9190614235565b5f60405180830381855af49150503d805f8114611f66576040519150601f19603f3d011682016040523d82523d5f602084013e611f6b565b606091505b5091509150611f7c868383876120fe565b9695505050505050565b60605f611f9285612176565b9050610af58185856121a8565b6060610682611fad83612a15565b612a66565b60605f805f611fc085612c83565b919450925090505f816001811115611fda57611fda61418e565b1461204d5760405162461bcd60e51b815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d0000000000000060648201526084016106d0565b6120578284613f49565b8551146120c35760405162461bcd60e51b815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527330b71034b73b30b634b2103932b6b0b4b73232b960611b60648201526084016106d0565b610af58560200151848461332a565b60606106826120e0836133ba565b6134cd565b5f806120f086612176565b9050611f7c81868686613525565b6060831561216c5782515f03612165576001600160a01b0385163b6121655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106d0565b50816108c0565b6108c0838361354b565b6060818051906020012060405160200161219291815260200190565b6040516020818303038152906040529050919050565b60605f8451116121f25760405162461bcd60e51b81526020600482015260156024820152744d65726b6c65547269653a20656d707479206b657960581b60448201526064016106d0565b5f6121fc84613575565b90505f61220886613658565b90505f8460405160200161221e91815260200190565b60405160208183030381529060405290505f805b84518110156129be575f85828151811061224e5761224e613f21565b6020026020010151905084518311156122c05760405162461bcd60e51b815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201526d0e8c2d840d6caf240d8cadccee8d60931b60648201526084016106d0565b825f0361235e578051805160209182012060405161230d926122e792910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b6123595760405162461bcd60e51b815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f74206861736800000060448201526064016106d0565b612454565b8051516020116123e45780518051602091820120604051612388926122e792910190815260200190565b6123595760405162461bcd60e51b815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e6044820152660c2d840d0c2e6d60cb1b60648201526084016106d0565b8051845160208087019190912082519190920120146124545760405162461bcd60e51b815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f646044820152650ca40d0c2e6d60d31b60648201526084016106d0565b61246060106001613f49565b816020015151036125f857845183036125925761248d8160200151601081518110611e6857611e68613f21565b96505f8751116125055760405162461bcd60e51b815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e636829000000000060648201526084016106d0565b60018651612513919061417b565b82146125875760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e63682900000000000060648201526084016106d0565b5050505050506107ae565b5f8584815181106125a5576125a5613f21565b602001015160f81c60f81b60f81c90505f82602001518260ff16815181106125cf576125cf613f21565b602002602001015190506125e2816136b9565b95506125ef600186613f49565b945050506129b5565b60028160200151510361295c575f61260f826136dd565b90505f815f8151811061262457612624613f21565b016020015160f81c90505f61263a600283614264565b612645906002614285565b90505f612655848360ff16613700565b90505f6126628a89613700565b90505f61266f8383613735565b9050808351146126e75760405162461bcd60e51b815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b657900000000000060648201526084016106d0565b60ff8516600214806126fc575060ff85166003145b1561289c57808251146127775760405162461bcd60e51b815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e64657200000060648201526084016106d0565b6127918760200151600181518110611e6857611e68613f21565b9c505f8d51116128095760405162461bcd60e51b815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c656166290000000000000060648201526084016106d0565b60018c51612817919061417b565b881461288b5760405162461bcd60e51b815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c65616629000000000000000060648201526084016106d0565b5050505050505050505050506107ae565b60ff851615806128af575060ff85166001145b156128ee576128db87602001516001815181106128ce576128ce613f21565b60200260200101516136b9565b99506128e7818a613f49565b9850612951565b60405162461bcd60e51b815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f64652077697468604482015271040c2dc40eadcd6dcdeeedc40e0e4caccd2f60731b60648201526084016106d0565b5050505050506129b5565b60405162461bcd60e51b815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e706172736561604482015267626c65206e6f646560c01b60648201526084016106d0565b50600101612232565b5060405162461bcd60e51b815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c656044820152646d656e747360d81b60648201526084016106d0565b604080518082019091525f80825260208201525f825111612a485760405162461bcd60e51b81526004016106d09061429e565b50604080518082019091528151815260209182019181019190915290565b60605f805f612a7485612c83565b919450925090506001816001811115612a8f57612a8f61418e565b14612b025760405162461bcd60e51b815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d000000000000000060648201526084016106d0565b8451612b0e8385613f49565b14612b765760405162461bcd60e51b815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e76616044820152713634b2103230ba30903932b6b0b4b73232b960711b60648201526084016106d0565b604080516020808252610420820190925290816020015b604080518082019091525f8082526020820152815260200190600190039081612b8d5790505093505f835b8651811015612c77575f80612bfc6040518060400160405280858c5f0151612be0919061417b565b8152602001858c60200151612bf59190613f49565b9052612c83565b509150915060405180604001604052808383612c189190613f49565b8152602001848b60200151612c2d9190613f49565b815250888581518110612c4257612c42613f21565b6020908102919091010152612c58600185613f49565b9350612c648183613f49565b612c6e9084613f49565b92505050612bb8565b50845250919392505050565b5f805f80845f015111612ca85760405162461bcd60e51b81526004016106d09061429e565b602084015180515f1a607f8111612cca575f60015f9450945094505050613323565b60b78111612e23575f612cde60808361417b565b905080875f015111612d5c5760405162461bcd60e51b815260206004820152604e60248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201526d2873686f727420737472696e672960901b608482015260a4016106d0565b6001838101516001600160f81b0319169082141580612d895750600160ff1b6001600160f81b0319821610155b612e115760405162461bcd60e51b815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201526c73686f727420737472696e672960981b608482015260a4016106d0565b506001955093505f9250613323915050565b60bf811161305c575f612e3760b78361417b565b905080875f015111612eb85760405162461bcd60e51b815260206004820152605160248201525f805160206144c883398151915260448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527067746820286c6f6e6720737472696e672960781b608482015260a4016106d0565b60018301516001600160f81b0319165f819003612f3d5760405162461bcd60e51b815260206004820152604a60248201525f805160206144c883398151915260448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f6064820152696e6720737472696e672960b01b608482015260a4016106d0565b600184015160088302610100031c60378111612fbf5760405162461bcd60e51b815260206004820152604860248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201526720737472696e672960c01b608482015260a4016106d0565b612fc98184613f49565b8951116130405760405162461bcd60e51b815260206004820152604c60248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201526b6c6f6e6720737472696e672960a01b608482015260a4016106d0565b61304b836001613f49565b975095505f94506133239350505050565b60f781116130fb575f61307060c08361417b565b905080875f0151116130ea5760405162461bcd60e51b815260206004820152604a60248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e206c697374206c656e677468202873606482015269686f7274206c6973742960b01b608482015260a4016106d0565b600195509350849250613323915050565b5f61310760f78361417b565b905080875f0151116131845760405162461bcd60e51b815260206004820152604d60248201525f805160206144c883398151915260448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201526c6820286c6f6e67206c6973742960981b608482015260a4016106d0565b60018301516001600160f81b0319165f8190036132075760405162461bcd60e51b815260206004820152604860248201525f805160206144c883398151915260448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f6064820152676e67206c6973742960c01b608482015260a4016106d0565b600184015160088302610100031c603781116132875760405162461bcd60e51b815260206004820152604660248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e20353520627974657320286c6f6e67606482015265206c6973742960d01b608482015260a4016106d0565b6132918184613f49565b8951116133065760405162461bcd60e51b815260206004820152604a60248201525f805160206144c883398151915260448201527f742062652067726561746572207468616e20746f74616c206c656e67746820286064820152696c6f6e67206c6973742960b01b608482015260a4016106d0565b613311836001613f49565b97509550600194506133239350505050565b9193909250565b6060816001600160401b0381111561334457613344613bf7565b6040519080825280601f01601f19166020018201604052801561336e576020820181803683370190505b50905081156107ae575f6133828486613f49565b9050602082015f5b848110156133a257828101518282015260200161338a565b848111156133b0575f858301525b5050509392505050565b60605f826040516020016133d091815260200190565b60405160208183030381529060405290505f5b602081101561341b578181815181106133fe576133fe613f21565b01602001516001600160f81b0319165f0361341b576001016133e3565b61342681602061417b565b6001600160401b0381111561343d5761343d613bf7565b6040519080825280601f01601f191660200182016040528015613467576020820181803683370190505b5092505f5b8351811015611a715782826134808161430e565b93508151811061349257613492613f21565b602001015160f81c60f81b8482815181106134af576134af613f21565b60200101906001600160f81b03191690815f1a90535060010161346c565b6060815160011480156134f957506080825f815181106134ef576134ef613f21565b016020015160f81c105b15613502575090565b61350e825160806137b8565b82604051602001612192929190614326565b919050565b5f6108bd846135358786866121a8565b8051602091820120825192909101919091201490565b81511561355b5781518083602001fd5b8060405162461bcd60e51b81526004016106d09190614354565b8051606090806001600160401b0381111561359257613592613bf7565b6040519080825280602002602001820160405280156135d757816020015b60408051808201909152606080825260208201528152602001906001900390816135b05790505b5091505f5b81811015611a7357604051806040016040528085838151811061360157613601613f21565b6020026020010151815260200161363086848151811061362357613623613f21565b6020026020010151611f9f565b81525083828151811061364557613645613f21565b60209081029190910101526001016135dc565b606080604051905082518060011b603f8101601f191683016040528083525060208401602083015f5b838110156136ae578060011b8201818401515f1a8060041c8253600f811660018301535050600101613681565b509295945050505050565b60606020825f0151106136d4576136cf82611fb2565b610682565b6106828261395d565b60606106826136fb83602001515f81518110611e6857611e68613f21565b613658565b60608251821061371e575060408051602081019091525f8152610682565b6107ae8383848651613730919061417b565b613971565b5f80825184511061374757825161374a565b83515b90505b80821080156137a1575082828151811061376957613769613f21565b602001015160f81c60f81b6001600160f81b03191684838151811061379057613790613f21565b01602001516001600160f81b031916145b156137b15781600101915061374d565b5092915050565b6060603883101561381c57604080516001808252818301909252906020820181803683370190505090506137ec8284614386565b60f81b815f8151811061380157613801613f21565b60200101906001600160f81b03191690815f1a905350610682565b5f60015b61382a818661439f565b1561385057816138398161430e565b92506138499050610100826143b2565b9050613820565b61385b826001613f49565b6001600160401b0381111561387257613872613bf7565b6040519080825280601f01601f19166020018201604052801561389c576020820181803683370190505b5092506138a98483614386565b6138b4906037614386565b60f81b835f815181106138c9576138c9613f21565b60200101906001600160f81b03191690815f1a905350600190505b818111613955576101006138f8828461417b565b613904906101006144a9565b61390e908761439f565b61391891906144b4565b60f81b83828151811061392d5761392d613f21565b60200101906001600160f81b03191690815f1a9053508061394d8161430e565b9150506138e4565b505092915050565b606061068282602001515f845f015161332a565b60608182601f0110156139b75760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106d0565b8282840110156139fa5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106d0565b81830184511015613a415760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106d0565b606082158015613a5f5760405191505f825260208201604052613aa9565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015613a98578051835260209283019201613a80565b5050858452601f01601f1916604052505b50949350505050565b6001600160a01b0381168114610755575f80fd5b80358015158114613520575f80fd5b5f8060408385031215613ae6575f80fd5b8235613af181613ab2565b9150613aff60208401613ac6565b90509250929050565b5f8060408385031215613b19575f80fd5b8235613b2481613ab2565b946020939093013593505050565b80356001600160401b0381168114613520575f80fd5b5f8060408385031215613b59575f80fd5b613b2483613b32565b5f60208284031215613b72575f80fd5b81356107ae81613ab2565b5f805f8060808587031215613b90575f80fd5b613b9985613b32565b935060208501359250613bae60408601613b32565b9396929550929360600135925050565b5f805f60608486031215613bd0575f80fd5b613bd984613b32565b925060208401359150613bee60408501613ac6565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b0381118282101715613c2d57613c2d613bf7565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613c5b57613c5b613bf7565b604052919050565b5f82601f830112613c72575f80fd5b81356001600160401b03811115613c8b57613c8b613bf7565b613c9e601f8201601f1916602001613c33565b818152846020838601011115613cb2575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613cdf575f80fd5b8235613cea81613ab2565b915060208301356001600160401b03811115613d04575f80fd5b613d1085828601613c63565b9150509250929050565b5f60208284031215613d2a575f80fd5b5035919050565b5f805f805f60808688031215613d45575f80fd5b613d4e86613b32565b94506020860135613d5e81613ab2565b93506040860135925060608601356001600160401b0380821115613d80575f80fd5b818801915088601f830112613d93575f80fd5b813581811115613da1575f80fd5b896020828501011115613db2575f80fd5b9699959850939650602001949392505050565b5f805f60608486031215613dd7575f80fd5b613de084613b32565b92506020840135613df081613ab2565b929592945050506040919091013590565b5f805f60608486031215613e13575f80fd5b613e1c84613b32565b925060208401359150613bee60408501613b32565b5f8060408385031215613e42575f80fd5b82359150613aff60208401613ac6565b5f8060408385031215613e63575f80fd5b8235613e6e81613ab2565b91506020830135613e7e81613ab2565b809150509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561068257610682613f35565b5f60208284031215613f6c575f80fd5b5051919050565b5f60208284031215613f83575f80fd5b81516107ae81613ab2565b5f6001600160401b03821115613fa657613fa6613bf7565b5060051b60200190565b803560048110613520575f80fd5b5f82601f830112613fcd575f80fd5b81356020613fe2613fdd83613f8e565b613c33565b82815260059290921b84018101918181019086841115614000575f80fd5b8286015b84811015611ee15780356001600160401b03811115614021575f80fd5b61402f8986838b0101613c63565b845250918301918301614004565b5f602080838503121561404e575f80fd5b82356001600160401b0380821115614064575f80fd5b818501915085601f830112614077575f80fd5b8135614085613fdd82613f8e565b81815260059190911b830184019084810190888311156140a3575f80fd5b8585015b8381101561416e578035858111156140bd575f80fd5b860160c0818c03601f190112156140d2575f80fd5b6140da613c0b565b6140e5898301613b32565b815260406140f4818401613b32565b8a8301526060808401358284015260809150614111828501613fb0565b9083015260a08381013589811115614127575f80fd5b6141358f8d83880101613fbe565b838501525060c084013591508882111561414d575f80fd5b61415b8e8c84870101613fbe565b90830152508452509186019186016140a7565b5098975050505050505050565b8181038181111561068257610682613f35565b634e487b7160e01b5f52602160045260245ffd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8051602080830151919081101561420d575f198160200360031b1b821691505b50919050565b5f5b8381101561422d578181015183820152602001614215565b50505f910152565b5f8251614246818460208701614213565b9190910192915050565b634e487b7160e01b5f52601260045260245ffd5b5f60ff83168061427657614276614250565b8060ff84160691505092915050565b60ff828116828216039081111561068257610682613f35565b6020808252604a908201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60408201527f206d7573742062652067726561746572207468616e207a65726f20746f206265606082015269206465636f6461626c6560b01b608082015260a00190565b5f6001820161431f5761431f613f35565b5060010190565b5f8351614337818460208801614213565b83519083019061434b818360208801614213565b01949350505050565b602081525f8251806020840152614372816040850160208701614213565b601f01601f19169190910160400192915050565b60ff818116838216019081111561068257610682613f35565b5f826143ad576143ad614250565b500490565b808202811582820484141761068257610682613f35565b600181815b8085111561440357815f19048211156143e9576143e9613f35565b808516156143f657918102915b93841c93908002906143ce565b509250929050565b5f8261441957506001610682565b8161442557505f610682565b816001811461443b576002811461444557614461565b6001915050610682565b60ff84111561445657614456613f35565b50506001821b610682565b5060208310610133831016604e8410600b8410161715614484575081810a610682565b61448e83836143c9565b805f19048211156144a1576144a1613f35565b029392505050565b5f6107ae838361440b565b5f826144c2576144c2614250565b50069056fe524c505265616465723a206c656e677468206f6620636f6e74656e74206d7573360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205659405515807d049e6589a2728fe0863d5c3072540f53ef4e8701e75661788864736f6c63430008180033", + "balance": "0x0" + }, + "0x1670000000000000000000000000000000000005": { + "contractName": "SignalService", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670000000000000000000000000000000000006", + "0xdf3a3dd9c4001d1115304f0841a31ee7b79b184f45ef381343fdf0ae529fbcb4": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167000000000000000000000000000000000005" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167000000000000000000000000000000010001": { + "contractName": "TaikoL2Impl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be" + }, + "code": "0x6080604052600436106101c5575f3560e01c80638456cb59116100f2578063c3f909d411610092578063e30c397811610062578063e30c397814610524578063f2fde38b14610541578063f535bd5614610560578063f940e3851461057f575f80fd5b8063c3f909d414610493578063da69d3db146104cb578063dac5df78146104ea578063e07baba6146104ff575f80fd5b80638da5cb5b116100cd5780638da5cb5b146103f65780639ee512f214610413578063a7e022d114610438578063a86f9d9e14610474575f80fd5b80638456cb59146103a35780638551f41e146103b75780638abf6077146103e2575f80fd5b80633eb6b8cf116101685780635950f9f1116101385780635950f9f11461033c5780635c975abb1461035b578063715018a61461037b57806379ba50971461038f575f80fd5b80633eb6b8cf146102e25780633f4ba83a146103015780634f1ef2861461031557806352d1902d14610328575f80fd5b80633075db56116101a35780633075db561461025057806333d5ac9b146102645780633659cfe61461028a5780633ab76e9f146102ab575f80fd5b806312622e5b146101c957806323ac7136146102055780632f98047314610232575b5f80fd5b3480156101d4575f80fd5b5060fe546101e8906001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b348015610210575f80fd5b5061022461021f366004611f62565b61059e565b6040519081526020016101fc565b34801561023d575f80fd5b505f5b60405190151581526020016101fc565b34801561025b575f80fd5b506102406105fa565b34801561026f575f80fd5b5060fd546101e890600160401b90046001600160401b031681565b348015610295575f80fd5b506102a96102a4366004611f8f565b61060e565b005b3480156102b6575f80fd5b506097546102ca906001600160a01b031681565b6040516001600160a01b0390911681526020016101fc565b3480156102ed575f80fd5b506102ca6102fc366004611fbe565b6106de565b34801561030c575f80fd5b506102a96106f2565b6102a961032336600461200f565b610706565b348015610333575f80fd5b506102246107bf565b348015610347575f80fd5b506102a96103563660046120cc565b610870565b348015610366575f80fd5b5061024060c954610100900460ff1660021490565b348015610386575f80fd5b506102a9610a79565b34801561039a575f80fd5b506102a9610a8a565b3480156103ae575f80fd5b506102a9610b01565b3480156103c2575f80fd5b506102246103d1366004612121565b60fb6020525f908152604090205481565b3480156103ed575f80fd5b506102ca610b14565b348015610401575f80fd5b506033546001600160a01b03166102ca565b34801561041e575f80fd5b506102ca71777735367b36bc9b61c50022d9d0700db4ec81565b348015610443575f80fd5b5061045761045236600461214b565b610b22565b604080519283526001600160401b039091166020830152016101fc565b34801561047f575f80fd5b506102ca61048e36600461217c565b610b92565b34801561049e575f80fd5b506104a7610ba7565b60408051825163ffffffff16815260209283015160ff1692810192909252016101fc565b3480156104d6575f80fd5b506102a96104e53660046121aa565b610bd8565b3480156104f5575f80fd5b5061022460fc5481565b34801561050a575f80fd5b5060c9546101e8906201000090046001600160401b031681565b34801561052f575f80fd5b506065546001600160a01b03166102ca565b34801561054c575f80fd5b506102a961055b366004611f8f565b610ea2565b34801561056b575f80fd5b5060fd546101e8906001600160401b031681565b34801561058a575f80fd5b506102a96105993660046121e2565b610f13565b5f43826001600160401b0316106105b657505f919050565b436105c383610100612222565b6001600160401b0316106105df57506001600160401b03164090565b506001600160401b03165f90815260fb602052604090205490565b5f60026106056110ce565b60ff1614905090565b6001600160a01b037f000000000000000000000000016700000000000000000000000000000001000116300361065f5760405162461bcd60e51b815260040161065690612249565b60405180910390fd5b7f00000000000000000000000001670000000000000000000000000000000100016001600160a01b031661069161110d565b6001600160a01b0316146106b75760405162461bcd60e51b815260040161065690612295565b6106c081611128565b604080515f808252602082019092526106db91839190611130565b50565b5f6106ea84848461129a565b949350505050565b6106fa61138b565b610704335f61141b565b565b6001600160a01b037f000000000000000000000000016700000000000000000000000000000001000116300361074e5760405162461bcd60e51b815260040161065690612249565b7f00000000000000000000000001670000000000000000000000000000000100016001600160a01b031661078061110d565b6001600160a01b0316146107a65760405162461bcd60e51b815260040161065690612295565b6107af82611128565b6107bb82826001611130565b5050565b5f306001600160a01b037f0000000000000000000000000167000000000000000000000000000000010001161461085e5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610656565b505f805160206124bf83398151915290565b5f54610100900460ff161580801561088e57505f54600160ff909116105b806108a75750303b1580156108a757505f5460ff166001145b61090a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610656565b5f805460ff19166001179055801561092b575f805461ff0019166101001790555b6109358585611423565b6001600160401b0383161580610953575046836001600160401b0316145b15610971576040516308279a2560e31b815260040160405180910390fd5b60014611158061098757506001600160401b0346115b156109a557604051638f972ecb60e01b815260040160405180910390fd5b43156109ef57436001036109d6575f6109bf6001436122e1565b5f81815260fb6020526040902090409055506109ef565b604051635a0f9e4160e11b815260040160405180910390fd5b60fe80546001600160401b0380861667ffffffffffffffff199283161790925560fd805492851692909116919091179055610a294361145d565b5060fc558015610a72575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610a816114ed565b6107045f611547565b60655433906001600160a01b03168114610af85760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610656565b6106db81611547565b610b09611560565b61070433600161141b565b5f610b1d61110d565b905090565b5f805f610b2d610ba7565b805160fd549192505f9163ffffffff90911690610b5a90600160401b90046001600160401b0316886122f4565b610b649190612314565b8251602084015160fd54929350610b85926001600160401b031684896115d1565b9097909650945050505050565b5f610b9e46848461129a565b90505b92915050565b604080518082019091525f8082526020820152610b1d60408051808201909152630393870081526008602082015290565b6002610be26110ce565b60ff1603610c035760405163dfc60d8560e01b815260040160405180910390fd5b610c0d600261166c565b831580610c18575082155b80610c2a57506001600160401b038216155b80610c45575043600114158015610c45575063ffffffff8116155b15610c635760405163053fd54760e01b815260040160405180910390fd5b3371777735367b36bc9b61c50022d9d0700db4ec14610c9557604051636494e9f760e01b815260040160405180910390fd5b5f1943015f80610ca48361145d565b915091508160fc5414610cca5760405163d719258d60e01b815260040160405180910390fd5b5f80610cd68787610b22565b91509150610ce15f90565b158015610cee5750814814155b15610d0c576040516336d54d4f60e11b815260040160405180910390fd5b60fd546001600160401b03600160401b90910481169088161115610e1c57610d456d7369676e616c5f7365727669636560901b5f610b92565b60fe546040516313e4299d60e21b81526001600160401b0391821660048201527f73e6d340850343cc6f001515dc593377337c95a6ffe034fe1e844d4dab5da16960248201529089166044820152606481018a90526001600160a01b039190911690634f90a674906084016020604051808303815f875af1158015610dcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df0919061233f565b5060fd80546fffffffffffffffff00000000000000001916600160401b6001600160401b038a16021790555b5f85815260fb602090815260409182902087409081905560fc86905560fd805467ffffffffffffffff19166001600160401b038616908117909155835182815292830152917f41c3f410f5c8ac36bb46b1dccef0de0f964087c9e688795fa02ecfa2c20b3fe4910160405180910390a1505050505050610e9c600161166c565b50505050565b610eaa6114ed565b606580546001600160a01b0383166001600160a01b03199091168117909155610edb6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610f2760c954610100900460ff1660021490565b15610f455760405163bae6e2a960e01b815260040160405180910390fd5b693bb4ba34323930bbb2b960b11b610f656033546001600160a01b031690565b6001600160a01b0316336001600160a01b031614158015610fa25750610f8c816001610b92565b6001600160a01b0316336001600160a01b031614155b15610fc057604051630d85cccf60e11b815260040160405180910390fd5b6002610fca6110ce565b60ff1603610feb5760405163dfc60d8560e01b815260040160405180910390fd5b610ff5600261166c565b6001600160a01b03821661101c5760405163053fd54760e01b815260040160405180910390fd5b6001600160a01b0383166110425761103d6001600160a01b038316476116b4565b6110bf565b6040516370a0823160e01b81523060048201526110bf9083906001600160a01b038616906370a0823190602401602060405180830381865afa15801561108a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ae919061233f565b6001600160a01b03861691906116bf565b6110c9600161166c565b505050565b5f6110d846611711565b1561110357507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f805160206124bf833981519152546001600160a01b031690565b6106db6114ed565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611163576110c98361173e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156111bd575060408051601f3d908101601f191682019092526111ba9181019061233f565b60015b6112205760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610656565b5f805160206124bf833981519152811461128e5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610656565b506110c98383836117d9565b6097545f906001600160a01b0316806112c657604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b81526001600160401b0386166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa158015611318573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133c9190612356565b91508215801561135357506001600160a01b038216155b1561138357604051632b0d65db60e01b81526001600160401b038616600482015260248101859052604401610656565b509392505050565b61139f60c954610100900460ff1660021490565b6113bc5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff001990911662010000426001600160401b031602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b6107bb6114ed565b806001600160a01b03811661144b5760405163538ba4f960e01b815260040160405180910390fd5b611454836117fd565b6110c98261185b565b5f80611467611f27565b5f5b60ff8110801561147c5750806001018510155b156114ad575f198186030180408360ff8306610100811061149f5761149f612385565b602002015250600101611469565b5046611fe0820152612000812092508340816114ca60ff87612399565b61010081106114db576114db612385565b60200201526120009020919391925050565b6033546001600160a01b031633146107045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610656565b606580546001600160a01b03191690556106db816118cb565b61157460c954610100900460ff1660021490565b156115925760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001611411565b5f80806115ed63ffffffff85166001600160401b0388166123ac565b9050846001600160401b03168111611606576001611619565b6116196001600160401b038616826122e1565b905061162c816001600160401b0361191c565b91506116536001600160401b03831661164e63ffffffff8b1660ff8b166123bf565b611930565b9250825f0361166157600192505b509550959350505050565b61167546611711565b156116a057807fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5d50565b60c9805460ff831660ff1990911617905550565b6107bb82825a61196e565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526110c99084906119b1565b5f6001821480611722575061426882145b8061172f575062aa36a782145b80610ba15750610ba182611a84565b6001600160a01b0381163b6117ab5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610656565b5f805160206124bf83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6117e283611a9b565b5f825111806117ee5750805b156110c957610e9c8383611ada565b5f54610100900460ff166118235760405162461bcd60e51b8152600401610656906123d6565b61182b611aff565b6118496001600160a01b038216156118435781611547565b33611547565b5060c9805461ff001916610100179055565b5f54610100900460ff166118815760405162461bcd60e51b8152600401610656906123d6565b6001600160401b034611156118a95760405163a12e8fa960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b0392909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f81831161192a5782610b9e565b50919050565b5f815f0361195157604051636296f1b960e11b815260040160405180910390fd5b670de0b6b3a76400006119648484611b25565b610b9e9190612421565b815f0361197a57505050565b61199483838360405180602001604052805f815250611b6c565b6110c957604051634c67134d60e11b815260040160405180910390fd5b5f611a05826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611ba99092919063ffffffff16565b905080515f1480611a25575080806020019051810190611a259190612434565b6110c95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610656565b5f617e2c8210158015610ba1575050617e90101590565b611aa48161173e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060610b9e83836040518060600160405280602781526020016124df60279139611bb7565b5f54610100900460ff166107045760405162461bcd60e51b8152600401610656906123d6565b5f8082611b3a670de0b6b3a7640000866123bf565b611b449190612421565b9050680755bf798b4a1bf1e4811115611b635750680755bf798b4a1bf1e45b6106ea81611c2b565b5f6001600160a01b038516611b9457604051634c67134d60e11b815260040160405180910390fd5b5f80835160208501878988f195945050505050565b60606106ea84845f85611db3565b60605f80856001600160a01b031685604051611bd39190612471565b5f60405180830381855af49150503d805f8114611c0b576040519150601f19603f3d011682016040523d82523d5f602084013e611c10565b606091505b5091509150611c2186838387611e8a565b9695505050505050565b5f680248ce36a70cb26b3e198213611c4457505f919050565b680755bf798b4a1bf1e58212611c6d57604051631a93c68960e11b815260040160405180910390fd5b6503782dace9d9604e83901b0591505f60606bb17217f7d1cf79abc9e3b39884821b056001605f1b01901d6bb17217f7d1cf79abc9e3b39881029093036c240c330e9fb2d9cbaf0fd5aafb1981018102606090811d6d0277594991cfc85f6e2461837cd9018202811d6d1a521255e34f6a5061b25ef1c9c319018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d6e02c72388d9f74f51a9331fed693f1419018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084016d01d3967ed30fc4f89c02bab5708119010290911d6e0587f503bb6ea29d25fcb740196450019091026d360d7aeea093263ecc6e0ecb291760621b010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b606082471015611e145760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610656565b5f80866001600160a01b03168587604051611e2f9190612471565b5f6040518083038185875af1925050503d805f8114611e69576040519150601f19603f3d011682016040523d82523d5f602084013e611e6e565b606091505b5091509150611e7f87838387611e8a565b979650505050505050565b60608315611ef85782515f03611ef1576001600160a01b0385163b611ef15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610656565b50816106ea565b6106ea8383815115611f0d5781518083602001fd5b8060405162461bcd60e51b8152600401610656919061248c565b604051806120000160405280610100906020820280368337509192915050565b80356001600160401b0381168114611f5d575f80fd5b919050565b5f60208284031215611f72575f80fd5b610b9e82611f47565b6001600160a01b03811681146106db575f80fd5b5f60208284031215611f9f575f80fd5b8135611faa81611f7b565b9392505050565b80151581146106db575f80fd5b5f805f60608486031215611fd0575f80fd5b611fd984611f47565b9250602084013591506040840135611ff081611fb1565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215612020575f80fd5b823561202b81611f7b565b915060208301356001600160401b0380821115612046575f80fd5b818501915085601f830112612059575f80fd5b81358181111561206b5761206b611ffb565b604051601f8201601f19908116603f0116810190838211818310171561209357612093611ffb565b816040528281528860208487010111156120ab575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f805f80608085870312156120df575f80fd5b84356120ea81611f7b565b935060208501356120fa81611f7b565b925061210860408601611f47565b915061211660608601611f47565b905092959194509250565b5f60208284031215612131575f80fd5b5035919050565b803563ffffffff81168114611f5d575f80fd5b5f806040838503121561215c575f80fd5b61216583611f47565b915061217360208401612138565b90509250929050565b5f806040838503121561218d575f80fd5b82359150602083013561219f81611fb1565b809150509250929050565b5f805f80608085870312156121bd575f80fd5b84359350602085013592506121d460408601611f47565b915061211660608601612138565b5f80604083850312156121f3575f80fd5b82356121fe81611f7b565b9150602083013561219f81611f7b565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156122425761224261220e565b5092915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b81810381811115610ba157610ba161220e565b6001600160401b038281168282160390808211156122425761224261220e565b6001600160401b038181168382160280821691908281146123375761233761220e565b505092915050565b5f6020828403121561234f575f80fd5b5051919050565b5f60208284031215612366575f80fd5b8151611faa81611f7b565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f826123a7576123a7612371565b500690565b80820180821115610ba157610ba161220e565b8082028115828204841417610ba157610ba161220e565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f8261242f5761242f612371565b500490565b5f60208284031215612444575f80fd5b8151611faa81611fb1565b5f5b83811015612469578181015183820152602001612451565b50505f910152565b5f825161248281846020870161244f565b9190910192915050565b602081525f82518060208401526124aa81604085016020870161244f565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220dd805646fbd402e3dd00f2e2ed2bf34ee8b6c44c1aee4f0ee9aaf88caab4582f64736f6c63430008180033", + "balance": "0x0" + }, + "0x1670000000000000000000000000000000010001": { + "contractName": "TaikoL2", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000001670000000000000000000000000000000010002", + "0x00000000000000000000000000000000000000000000000000000000000000fe": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x00000000000000000000000000000000000000000000000000000000000000fd": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x00000000000000000000000000000000000000000000000000000000000000fc": "0xdb2606d8ecfcc6c05f4d0c0c5f74b41db74f437df333203711f8ff6e11190e8a", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167000000000000000000000000000000010001" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x0167000000000000000000000000000000010002": { + "contractName": "RollupAddressManagerImpl", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be" + }, + "code": "0x608060405260043610610126575f3560e01c80635c975abb116100a85780638da5cb5b1161006d5780638da5cb5b146102d5578063a86f9d9e146102f2578063d8f4648f14610311578063e07baba614610330578063e30c39781461036f578063f2fde38b1461038c575f80fd5b80635c975abb14610265578063715018a61461028557806379ba5097146102995780638456cb59146102ad5780638abf6077146102c1575f80fd5b80633ab76e9f116100ee5780633ab76e9f146101de5780633eb6b8cf146101fd5780633f4ba83a1461021c5780634f1ef2861461023057806352d1902d14610243575f80fd5b8063069489a21461012a57806319ab453c1461014057806328f713cc1461015f5780633075db561461019b5780633659cfe6146101bf575b5f80fd5b348015610135575f80fd5b5061013e6103ab565b005b34801561014b575f80fd5b5061013e61015a36600461118f565b61045b565b34801561016a575f80fd5b5061017e6101793660046111c6565b610533565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101a6575f80fd5b506101af610567565b6040519015158152602001610192565b3480156101ca575f80fd5b5061013e6101d936600461118f565b61057b565b3480156101e9575f80fd5b5060975461017e906001600160a01b031681565b348015610208575f80fd5b5061017e6102173660046111fd565b610642565b348015610227575f80fd5b5061013e610656565b61013e61023e36600461124a565b61066a565b34801561024e575f80fd5b5061025761071f565b604051908152602001610192565b348015610270575f80fd5b506101af60c954610100900460ff1660021490565b348015610290575f80fd5b5061013e6107d0565b3480156102a4575f80fd5b5061013e6107e1565b3480156102b8575f80fd5b5061013e610858565b3480156102cc575f80fd5b5061017e61086b565b3480156102e0575f80fd5b506033546001600160a01b031661017e565b3480156102fd575f80fd5b5061017e61030c366004611308565b610879565b34801561031c575f80fd5b5061013e61032b366004611332565b61088c565b34801561033b575f80fd5b5060c9546103569062010000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610192565b34801561037a575f80fd5b506065546001600160a01b031661017e565b348015610397575f80fd5b5061013e6103a636600461118f565b61096a565b6103b36109db565b5f54600290610100900460ff161580156103d357505f5460ff8083169116105b6103f85760405162461bcd60e51b81526004016103ef9061136f565b60405180910390fd5b5f8054609780546001600160a01b0319163017905561ffff191660ff83169081176101001761ff0019169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b5f54610100900460ff161580801561047957505f54600160ff909116105b806104925750303b15801561049257505f5460ff166001145b6104ae5760405162461bcd60e51b81526004016103ef9061136f565b5f805460ff1916600117905580156104cf575f805461ff0019166101001790555b6104d882610a35565b609780546001600160a01b03191630179055801561052f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b67ffffffffffffffff82165f90815260fb602090815260408083208484529091529020546001600160a01b03165b92915050565b5f6002610572610a93565b60ff1614905090565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000100021630036105c35760405162461bcd60e51b81526004016103ef906113bd565b7f00000000000000000000000001670000000000000000000000000000000100026001600160a01b03166105f5610ad2565b6001600160a01b03161461061b5760405162461bcd60e51b81526004016103ef90611409565b61062481610aed565b604080515f8082526020820190925261063f91839190610af5565b50565b5f61064e848484610c64565b949350505050565b61065e610d57565b610668335f610de8565b565b6001600160a01b037f00000000000000000000000001670000000000000000000000000000000100021630036106b25760405162461bcd60e51b81526004016103ef906113bd565b7f00000000000000000000000001670000000000000000000000000000000100026001600160a01b03166106e4610ad2565b6001600160a01b03161461070a5760405162461bcd60e51b81526004016103ef90611409565b61071382610aed565b61052f82826001610af5565b5f306001600160a01b037f000000000000000000000000016700000000000000000000000000000001000216146107be5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103ef565b505f8051602061154283398151915290565b6107d86109db565b6106685f610e01565b60655433906001600160a01b0316811461084f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016103ef565b61063f81610e01565b610860610e1a565b610668336001610de8565b5f610874610ad2565b905090565b5f610885468484610c64565b9392505050565b6108946109db565b67ffffffffffffffff83165f90815260fb602090815260408083208584529091529020546001600160a01b039081169082168190036108e65760405163a883089360e01b815260040160405180910390fd5b67ffffffffffffffff84165f81815260fb6020908152604080832087845282529182902080546001600160a01b0319166001600160a01b038781169182179092558351908152908516918101919091528592917f500dcd607a98daece9bccc2511bf6032471252929de73caf507aae0e082f8453910160405180910390a350505050565b6109726109db565b606580546001600160a01b0383166001600160a01b031990911681179091556109a36033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146106685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ef565b5f54610100900460ff16610a5b5760405162461bcd60e51b81526004016103ef90611455565b610a63610e8b565b610a816001600160a01b03821615610a7b5781610e01565b33610e01565b5060c9805461ff001916610100179055565b5f610a9d46610eb1565b15610ac857507fa5054f728453d3dbe953bdc43e4d0cb97e662ea32d7958190f3dc2da31d9721b5c90565b5060c95460ff1690565b5f80516020611542833981519152546001600160a01b031690565b61063f6109db565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610b2d57610b2883610ede565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610b87575060408051601f3d908101601f19168201909252610b84918101906114a0565b60015b610bea5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016103ef565b5f805160206115428339815191528114610c585760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016103ef565b50610b28838383610f79565b6097545f906001600160a01b031680610c9057604051638ed88b2560e01b815260040160405180910390fd5b604051630a3dc4f360e21b815267ffffffffffffffff86166004820152602481018590526001600160a01b038216906328f713cc90604401602060405180830381865afa158015610ce3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0791906114b7565b915082158015610d1e57506001600160a01b038216155b15610d4f57604051632b0d65db60e01b815267ffffffffffffffff86166004820152602481018590526044016103ef565b509392505050565b610d6b60c954610100900460ff1660021490565b610d885760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461010069ffffffffffffffffff0019909116620100004267ffffffffffffffff1602171790556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b604051630c2b8f8f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561063f81610fa3565b610e2e60c954610100900460ff1660021490565b15610e4c5760405163bae6e2a960e01b815260040160405180910390fd5b60c9805461ff0019166102001790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610dde565b5f54610100900460ff166106685760405162461bcd60e51b81526004016103ef90611455565b5f6001821480610ec2575061426882145b80610ecf575062aa36a782145b80610561575061056182610ff4565b6001600160a01b0381163b610f4b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016103ef565b5f8051602061154283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610f828361100b565b5f82511180610f8e5750805b15610b2857610f9d838361104a565b50505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f617e2c8210158015610561575050617e90101590565b61101481610ede565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061088583836040518060600160405280602781526020016115626027913960605f80856001600160a01b03168560405161108691906114f4565b5f60405180830381855af49150503d805f81146110be576040519150601f19603f3d011682016040523d82523d5f602084013e6110c3565b606091505b50915091506110d4868383876110de565b9695505050505050565b6060831561114c5782515f03611145576001600160a01b0385163b6111455760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ef565b508161064e565b61064e83838151156111615781518083602001fd5b8060405162461bcd60e51b81526004016103ef919061150f565b6001600160a01b038116811461063f575f80fd5b5f6020828403121561119f575f80fd5b81356108858161117b565b803567ffffffffffffffff811681146111c1575f80fd5b919050565b5f80604083850312156111d7575f80fd5b6111e0836111aa565b946020939093013593505050565b803580151581146111c1575f80fd5b5f805f6060848603121561120f575f80fd5b611218846111aa565b92506020840135915061122d604085016111ee565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561125b575f80fd5b82356112668161117b565b9150602083013567ffffffffffffffff80821115611282575f80fd5b818501915085601f830112611295575f80fd5b8135818111156112a7576112a7611236565b604051601f8201601f19908116603f011681019083821181831017156112cf576112cf611236565b816040528281528860208487010111156112e7575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f8060408385031215611319575f80fd5b82359150611329602084016111ee565b90509250929050565b5f805f60608486031215611344575f80fd5b61134d846111aa565b92506020840135915060408401356113648161117b565b809150509250925092565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b5f602082840312156114b0575f80fd5b5051919050565b5f602082840312156114c7575f80fd5b81516108858161117b565b5f5b838110156114ec5781810151838201526020016114d4565b50505f910152565b5f82516115058184602087016114d2565b9190910192915050565b602081525f825180602084015261152d8160408501602087016114d2565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220546acba5cf9d5840aa28144a5c5b7154e1fbe167d06f40edc368d12eba1367a264736f6c63430008180033", + "balance": "0x0" + }, + "0x1670000000000000000000000000000000010002": { + "contractName": "RollupAddressManager", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000000c9": "0x0000000000000000000000000000000000000000000000000000000000000101", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f8ff2af0dc1d5ba4811f22acb02936a1529fd2be", + "0x3b299c7a6fafde8e6481885056b7ffa9d2e18f11aab95f34a53fbfc46c5beff4": "0x0000000000000000000000001670000000000000000000000000000000010001", + "0x64b0a7232218be95294a8bfd8a8f958623901c31d4ce8f421b3dd01d27f0bc86": "0x0000000000000000000000001670000000000000000000000000000000000001", + "0x8d8c812a6339da49d9820b2b8be4ab1418e11a25c28673c250614e6a14477ec3": "0x0000000000000000000000001670000000000000000000000000000000000005", + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x0167000000000000000000000000000000010002" + }, + "code": "0x608060405236601057600e6013565b005b600e5b601f601b6021565b6057565b565b5f60527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156070573d5ff35b3d5ffdfea26469706673582212202ab33c19ef73bba88d6c10c6990731f592afdeba0c87384fbaf36911918f5f4964736f6c63430008180033", + "balance": "0x0" + }, + "0x4b7Eb9638Fc8ADF32cc1bcb50d8247Db51b6AEb0": { + "contractName": "LibNetwork", + "storage": {}, + "code": "0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220ad97905b6ee404cdf1656836b4d2e0331e305effa06af1cec4854f3c71d96ae764736f6c63430008180033", + "balance": "0x0" + } +} \ No newline at end of file diff --git a/crates/chainspec/res/genesis/taiko/snaefellsjokull.json b/crates/chainspec/res/genesis/taiko/snaefellsjokull.json new file mode 100644 index 000000000000..01ce4e45c7d7 --- /dev/null +++ b/crates/chainspec/res/genesis/taiko/snaefellsjokull.json @@ -0,0 +1,98 @@ +{ + "0x26250179C8e8E12104e556C4Cd03bCF4dabd51b9": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x9D716db5fF59f8dd903D44a56C41BcbE99bA666c": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x11f080128e565c07caD6fF7ADbb50Be1f62B84DB": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x617138FAdFEeE2E57f87cCba7dd6D6902aB0427d": { + "balance": "0xfffffffffffffacbbb7ca13a7fffffff" + }, + "0x5fa99CB8C2201B2a8CFfe2edfbF11ed6B78cb069": { + "balance": "0x8ac7230489e80000" + }, + "0xC5d653E17c24928B788a17838F11d2AcF0c922A3": { + "contractName": "LibTrieProof", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063960304391461003a575b600080fd5b61004d6100483660046119a5565b61004f565b005b60008061005e83850185611b39565b6040517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060608b901b166020820152919350915060009081906100b490603401604051602081830303815290604052858c6101d3565b915091508161010a5760405162461bcd60e51b815260206004820152601960248201527f4c54503a696e76616c6964206163636f756e742070726f6f660000000000000060448201526064015b60405180910390fd5b6000610115826101fc565b9050600061013c8260028151811061012f5761012f611b9d565b6020026020010151610235565b905060006101758b60405160200161015691815260200190565b60405160208183030381529060405261016e8c610338565b888561034b565b9050806101c45760405162461bcd60e51b815260206004820152601960248201527f4c54503a696e76616c69642073746f726167652070726f6f66000000000000006044820152606401610101565b50505050505050505050505050565b6000606060006101e286610365565b90506101ef818686610397565b9250925050935093915050565b60408051808201825260008082526020918201528151808301909252825182528083019082015260609061022f90610472565b92915050565b600060218260000151111561028c5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610101565b600080600061029a85610671565b9194509250905060008160018111156102b5576102b5611bcc565b146103025760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610101565b60008386602001516103149190611c2a565b8051909150602084101561032e5760208490036101000a90045b9695505050505050565b606061022f610346836109c2565b610b2d565b60008061035786610365565b905061032e81868686610b9c565b6060818051906020012060405160200161038191815260200190565b6040516020818303038152906040529050919050565b6000606060006103a685610bd9565b905060008060006103b8848a89610cd4565b815192955090935091501580806103cc5750815b6104185760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e0000000000006044820152606401610101565b6000816104345760405180602001604052806000815250610460565b61046086610443600188611c42565b8151811061045357610453611b9d565b602002602001015161116f565b919b919a509098505050505050505050565b606060008061048084610671565b9193509091506001905081600181111561049c5761049c611bcc565b146104e95760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e0000000000000000006044820152606401610101565b6040805160208082526104208201909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816105025790505090506000835b865181101561066657602082106105ae5760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201527f7374206c656e6774682e000000000000000000000000000000000000000000006064820152608401610101565b6000806105eb6040518060400160405280858c600001516105cf9190611c42565b8152602001858c602001516105e49190611c2a565b9052610671565b5091509150604051806040016040528083836106079190611c2a565b8152602001848b6020015161061c9190611c2a565b81525085858151811061063157610631611b9d565b6020908102919091010152610647600185611c2a565b93506106538183611c2a565b61065d9084611c2a565b9250505061052f565b508152949350505050565b6000806000808460000151116106c95760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e00000000000000006044820152606401610101565b6020840151805160001a607f81116106ee5760006001600094509450945050506109bb565b60b7811161076a576000610703608083611c42565b9050808760000151116107585760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e000000000000006044820152606401610101565b600195509350600092506109bb915050565b60bf811161085957600061077f60b783611c42565b9050808760000151116107d45760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e006044820152606401610101565b600183015160208290036101000a90046107ee8183611c2a565b88511161083d5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e00000000000000006044820152606401610101565b610848826001611c2a565b96509450600093506109bb92505050565b60f781116108d457600061086e60c083611c42565b9050808760000151116108c35760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e0000000000000000006044820152606401610101565b6001955093508492506109bb915050565b60006108e160f783611c42565b9050808760000151116109365760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e0000006044820152606401610101565b600183015160208290036101000a90046109508183611c2a565b88511161099f5760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420524c50206c6f6e67206c6973742e000000000000000000006044820152606401610101565b6109aa826001611c2a565b96509450600193506109bb92505050565b9193909250565b60606000826040516020016109d991815260200190565b604051602081830303815290604052905060005b6020811015610a4b57818181518110610a0857610a08611b9d565b01602001517fff000000000000000000000000000000000000000000000000000000000000001615610a3957610a4b565b80610a4381611c59565b9150506109ed565b6000610a58826020611c42565b67ffffffffffffffff811115610a7057610a70611a5f565b6040519080825280601f01601f191660200182016040528015610a9a576020820181803683370190505b50905060005b8151811015610b24578383610ab481611c59565b945081518110610ac657610ac6611b9d565b602001015160f81c60f81b828281518110610ae357610ae3611b9d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080610b1c81611c59565b915050610aa0565b50949350505050565b60608082516001148015610b5b5750608083600081518110610b5157610b51611b9d565b016020015160f81c105b15610b6757508161022f565b610b7383516080611199565b83604051602001610b85929190611ccd565b604051602081830303815290604052905092915050565b6000806000610bac878686610397565b91509150818015610bce57508051602080830191909120875191880191909120145b979650505050505050565b60606000610be6836101fc565b90506000815167ffffffffffffffff811115610c0457610c04611a5f565b604051908082528060200260200182016040528015610c4957816020015b6040805180820190915260608082526020820152815260200190600190039081610c225790505b50905060005b8251811015610ccc576000610c7c848381518110610c6f57610c6f611b9d565b6020026020010151611390565b90506040518060400160405280828152602001610c98836101fc565b815250838381518110610cad57610cad611b9d565b6020026020010181905250508080610cc490611c59565b915050610c4f565b509392505050565b60006060818080610ce487611420565b90506000869050600080610d0b604051806040016040528060608152602001606081525090565b60005b8c5181101561112b578c8181518110610d2957610d29611b9d565b602002602001015191508284610d3f9190611c2a565b9350610d4c600188611c2a565b965083610db057815180516020909101208514610dab5760405162461bcd60e51b815260206004820152601160248201527f496e76616c696420726f6f7420686173680000000000000000000000000000006044820152606401610101565b610e6d565b815151602011610e1257815180516020909101208514610dab5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c206861736800000000006044820152606401610101565b84610e2083600001516115a3565b14610e6d5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f646520686173680000000000006044820152606401610101565b610e7960106001611c2a565b8260200151511415610ef2578551841415610e935761112b565b6000868581518110610ea757610ea7611b9d565b602001015160f81c60f81b60f81c9050600083602001518260ff1681518110610ed257610ed2611b9d565b60200260200101519050610ee5816115cb565b9650600194505050611119565b600282602001515114156110d1576000610f0b83611601565b9050600081600081518110610f2257610f22611b9d565b016020015160f81c90506000610f39600283611d19565b610f44906002611d3b565b90506000610f55848360ff16611625565b90506000610f638b8a611625565b90506000610f71838361165b565b905060ff851660021480610f88575060ff85166003145b15610fde57808351148015610f9d5750808251145b15610faf57610fac818b611c2a565b99505b507f8000000000000000000000000000000000000000000000000000000000000000995061112b945050505050565b60ff85161580610ff1575060ff85166001145b15611063578251811461102d57507f8000000000000000000000000000000000000000000000000000000000000000995061112b945050505050565b611054886020015160018151811061104757611047611b9d565b60200260200101516115cb565b9a509750611119945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e2060448201527f70726566697800000000000000000000000000000000000000000000000000006064820152608401610101565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e0000006044820152606401610101565b8061112381611c59565b915050610d0e565b507f800000000000000000000000000000000000000000000000000000000000000084148661115a8786611625565b909e909d50909b509950505050505050505050565b6020810151805160609161022f9161118990600190611c42565b81518110610c6f57610c6f611b9d565b606080603884101561121857604080516001808252818301909252906020820181803683370190505090506111ce8385611d5e565b60f81b816000815181106111e4576111e4611b9d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611389565b600060015b6112278187611d83565b1561124d578161123681611c59565b9250611246905061010082611d97565b905061121d565b611258826001611c2a565b67ffffffffffffffff81111561127057611270611a5f565b6040519080825280601f01601f19166020018201604052801561129a576020820181803683370190505b5092506112a78583611d5e565b6112b2906037611d5e565b60f81b836000815181106112c8576112c8611b9d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190505b818111611386576101006113108284611c42565b61131c90610100611ef4565b6113269088611d83565b6113309190611f00565b60f81b83828151811061134557611345611b9d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508061137e81611c59565b9150506112fc565b50505b9392505050565b606060008060006113a085610671565b9194509250905060008160018111156113bb576113bb611bcc565b146114085760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e00000000000000006044820152606401610101565b61141785602001518484611707565b95945050505050565b60606000825160026114329190611d97565b67ffffffffffffffff81111561144a5761144a611a5f565b6040519080825280601f01601f191660200182016040528015611474576020820181803683370190505b50905060005b835181101561159c57600484828151811061149757611497611b9d565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c826114cc836002611d97565b815181106114dc576114dc611b9d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350601084828151811061151f5761151f611b9d565b0160200151611531919060f81c611d19565b60f81b82611540836002611d97565b61154b906001611c2a565b8151811061155b5761155b611b9d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508061159481611c59565b91505061147a565b5092915050565b60006020825110156115b757506020015190565b8180602001905181019061022f9190611f14565b600060606020836000015110156115ec576115e5836117e6565b90506115f8565b6115f583611390565b90505b611389816115a3565b606061022f6116208360200151600081518110610c6f57610c6f611b9d565b611420565b606082518210611644575060408051602081019091526000815261022f565b61138983838486516116569190611c42565b6117f1565b6000805b80845111801561166f5750808351115b80156116f0575082818151811061168857611688611b9d565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168482815181106116c7576116c7611b9d565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b1561138957806116ff81611c59565b91505061165f565b606060008267ffffffffffffffff81111561172457611724611a5f565b6040519080825280601f01601f19166020018201604052801561174e576020820181803683370190505b509050805160001415611762579050611389565b600061176e8587611c2a565b90506020820160005b611782602087611d83565b8110156117b95782518252611798602084611c2a565b92506117a5602083611c2a565b9150806117b181611c59565b915050611777565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b606061022f8261198f565b6060816117ff81601f611c2a565b101561184d5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610101565b826118588382611c2a565b10156118a65760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610101565b6118b08284611c2a565b845110156119005760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610101565b60608215801561191f5760405191506000825260208201604052610b24565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611958578051835260209283019201611940565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166040525050949350505050565b606061022f826020015160008460000151611707565b60008060008060008060a087890312156119be57600080fd5b86359550602087013573ffffffffffffffffffffffffffffffffffffffff811681146119e957600080fd5b94506040870135935060608701359250608087013567ffffffffffffffff80821115611a1457600080fd5b818901915089601f830112611a2857600080fd5b813581811115611a3757600080fd5b8a6020828501011115611a4957600080fd5b6020830194508093505050509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112611a9f57600080fd5b813567ffffffffffffffff80821115611aba57611aba611a5f565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611b0057611b00611a5f565b81604052838152866020858801011115611b1957600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215611b4c57600080fd5b823567ffffffffffffffff80821115611b6457600080fd5b611b7086838701611a8e565b93506020850135915080821115611b8657600080fd5b50611b9385828601611a8e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115611c3d57611c3d611bfb565b500190565b600082821015611c5457611c54611bfb565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611c8b57611c8b611bfb565b5060010190565b6000815160005b81811015611cb35760208185018101518683015201611c99565b81811115611cc2576000828601525b509290920192915050565b6000611ce2611cdc8386611c92565b84611c92565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060ff831680611d2c57611d2c611cea565b8060ff84160691505092915050565b600060ff821660ff841680821015611d5557611d55611bfb565b90039392505050565b600060ff821660ff84168060ff03821115611d7b57611d7b611bfb565b019392505050565b600082611d9257611d92611cea565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611dcf57611dcf611bfb565b500290565b600181815b80851115611e2d57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611e1357611e13611bfb565b80851615611e2057918102915b93841c9390800290611dd9565b509250929050565b600082611e445750600161022f565b81611e515750600061022f565b8160018114611e675760028114611e7157611e8d565b600191505061022f565b60ff841115611e8257611e82611bfb565b50506001821b61022f565b5060208310610133831016604e8410600b8410161715611eb0575081810a61022f565b611eba8383611dd4565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611eec57611eec611bfb565b029392505050565b60006113898383611e35565b600082611f0f57611f0f611cea565b500690565b600060208284031215611f2657600080fd5b505191905056fea2646970667358221220f7f04c88df651530a5c547edaa8d0ac57b5adf851950adbf06f8245338f8d71564736f6c63430008090033", + "balance": "0x0" + }, + "0x8A9E82Ebf0E219BBdB4fBBd50FEd45d098a8Ba1e": { + "contractName": "LibBridgeRetry", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806346eb9db51461003a575b600080fd5b81801561004657600080fd5b5061005a6100553660046107f9565b61005c565b005b610140820135158061006b5750805b156101195761008060a0830160808401610880565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f423a64656e69656400000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600061012c610127846109a8565b610432565b90506001600082815260018701602052604090205460ff16600381111561015557610155610aaa565b146101bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f423a6e6f74466f756e64000000000000000000000000000000000000000000006044820152606401610110565b6040517f461a447800000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f65746865725f7661756c74000000000000000000000000000000000000000000604482015260009073ffffffffffffffffffffffffffffffffffffffff86169063461a44789060640160206040518083038186803b15801561025257600080fd5b505afa158015610266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028a9190610ad9565b905073ffffffffffffffffffffffffffffffffffffffff81161561032d576040517f1efa4ec0000000000000000000000000000000000000000000000000000000008152610100850135600482015273ffffffffffffffffffffffffffffffffffffffff821690631efa4ec090602401600060405180830381600087803b15801561031457600080fd5b505af1158015610328573d6000803e3d6000fd5b505050505b6103418661033a866109a8565b845a610462565b156103575761035286836002610634565b61042a565b82156103e95761036986836003610634565b60008061037c60e0870160c08801610880565b73ffffffffffffffffffffffffffffffffffffffff16146103ac576103a760e0860160c08701610880565b6103bc565b6103bc60a0860160808701610880565b90506103e373ffffffffffffffffffffffffffffffffffffffff8216610100870135610700565b5061042a565b73ffffffffffffffffffffffffffffffffffffffff81161561042a5761042a73ffffffffffffffffffffffffffffffffffffffff8216610100860135610700565b505050505050565b6000816040516020016104459190610b70565b604051602081830303815290604052805190602001209050919050565b60008082116104cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f423a6761734c696d6974000000000000000000000000000000000000000000006044820152606401610110565b6040805160608101825284815260208681015173ffffffffffffffffffffffffffffffffffffffff90811691830182905287840151928401839052600389018790556004890180547fffffffffffffffffffffffff000000000000000000000000000000000000000016909217909155600588019190915560a08601516101008701516101608801519351919092169285929161056a9190610d04565b600060405180830381858888f193505050503d80600081146105a8576040519150601f19603f3d011682016040523d82523d6000602084013e6105ad565b606091505b5050604080516060810182526001808252602082018190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91909201819052600388018290556004880180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690921790915560059096019590955550929392505050565b80600381111561064657610646610aaa565b600083815260018501602052604090205460ff16600381111561066b5761066b610aaa565b146106fb57600082815260018085016020526040909120805483927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909116908360038111156106bd576106bd610aaa565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b2575634826040516106f29190610d20565b60405180910390a25b505050565b80156107d05760008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610760576040519150601f19603f3d011682016040523d82523d6000602084013e610765565b606091505b50509050806106fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f455448207472616e73666572206661696c6564000000000000000000000000006044820152606401610110565b5050565b73ffffffffffffffffffffffffffffffffffffffff811681146107f657600080fd5b50565b6000806000806080858703121561080f57600080fd5b843593506020850135610821816107d4565b9250604085013567ffffffffffffffff81111561083d57600080fd5b85016101a0818803121561085057600080fd5b91506060850135801515811461086557600080fd5b939692955090935050565b803561087b816107d4565b919050565b60006020828403121561089257600080fd5b813561089d816107d4565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156108f7576108f76108a4565b60405290565b600082601f83011261090e57600080fd5b813567ffffffffffffffff80821115610929576109296108a4565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561096f5761096f6108a4565b8160405283815286602085880101111561098857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006101a082360312156109bb57600080fd5b6109c36108d3565b823581526109d360208401610870565b602082015260408301356040820152606083013560608201526109f860808401610870565b6080820152610a0960a08401610870565b60a0820152610a1a60c08401610870565b60c082015260e083810135908201526101008084013590820152610120808401359082015261014080840135908201526101608084013567ffffffffffffffff80821115610a6757600080fd5b610a73368388016108fd565b83850152610180925082860135915080821115610a8f57600080fd5b50610a9c368287016108fd565b918301919091525092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215610aeb57600080fd5b815161089d816107d4565b60005b83811015610b11578181015183820152602001610af9565b83811115610b20576000848401525b50505050565b60008151808452610b3e816020860160208601610af6565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60408152601460408201527f5441494b4f5f4252494447455f4d4553534147450000000000000000000000006060820152608060208201528151608082015260006020830151610bd860a084018273ffffffffffffffffffffffffffffffffffffffff169052565b50604083015160c0830152606083015160e08301526080830151610100610c168185018373ffffffffffffffffffffffffffffffffffffffff169052565b60a08501519150610120610c418186018473ffffffffffffffffffffffffffffffffffffffff169052565b60c08601519250610140610c6c8187018573ffffffffffffffffffffffffffffffffffffffff169052565b60e0870151610160878101919091529287015161018080880191909152918701516101a080880191909152908701516101c0870152918601516101e0860192909252909150610cbf610220850183610b26565b908501518482037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001610200860152909150610cfb8282610b26565b95945050505050565b60008251610d16818460208701610af6565b9190910192915050565b6020810160048310610d5b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9190529056fea2646970667358221220ef77fa8abe15893a91d42d96908d637a4ee0724e51d926aff79565effe20a22c64736f6c63430008090033", + "balance": "0x0" + }, + "0xf7c52068c40213E7C49313B0d6FCc11Cb2C45dbF": { + "contractName": "LibBridgeProcess", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063c0249e2d1461003a575b600080fd5b81801561004657600080fd5b5061005a6100553660046119c3565b61005c565b005b61014083013561010f5761007660a0840160808501611a8d565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461010f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f423a666f7262696464656e00000000000000000000000000000000000000000060448201526064015b60405180910390fd5b4683606001351461017c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f423a64657374436861696e4964000000000000000000000000000000000000006044820152606401610106565b600061018f61018a85611bf5565b61073d565b905060008082815260018801602052604090205460ff1660038111156101b7576101b7611cf7565b1461021e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f423a7374617475730000000000000000000000000000000000000000000000006044820152606401610106565b604080517ff16c79340000000000000000000000000000000000000000000000000000000081528186013560048201526024810191909152600660448201527f6272696467650000000000000000000000000000000000000000000000000000606482015260009073ffffffffffffffffffffffffffffffffffffffff87169063f16c79349060840160206040518083038186803b1580156102bf57600080fd5b505afa1580156102d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f79190611d26565b905061030786828385888861076d565b61036d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f423a6e6f745265636569766564000000000000000000000000000000000000006044820152606401610106565b6040517f461a447800000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f65746865725f7661756c74000000000000000000000000000000000000000000604482015260009073ffffffffffffffffffffffffffffffffffffffff88169063461a44789060640160206040518083038186803b15801561040357600080fd5b505afa158015610417573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043b9190611d26565b905073ffffffffffffffffffffffffffffffffffffffff8116156104e95773ffffffffffffffffffffffffffffffffffffffff8116631efa4ec061012088013561048e6101008a013560e08b0135611d72565b6104989190611d72565b6040518263ffffffff1660e01b81526004016104b691815260200190565b600060405180830381600087803b1580156104d057600080fd5b505af11580156104e4573d6000803e3d6000fd5b505050505b61051d60e087013561050160a0890160808a01611a8d565b73ffffffffffffffffffffffffffffffffffffffff1690610b33565b6000803061053160c08a0160a08b01611a8d565b73ffffffffffffffffffffffffffffffffffffffff1614806105785750600061056060c08a0160a08b01611a8d565b73ffffffffffffffffffffffffffffffffffffffff16145b1561058d57506002905061010087013561064f565b600061059f60a08a0160808b01611a8d565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105dc578861014001356105de565b5a5b905060006105f68c6105ef8c611bf5565b8985610c09565b90508015610607576002935061064c565b6001935073ffffffffffffffffffffffffffffffffffffffff85161561064c5761064c73ffffffffffffffffffffffffffffffffffffffff86166101008c0135610b33565b50505b61065a8a8684610dbd565b60008061066d60e08b0160c08c01611a8d565b73ffffffffffffffffffffffffffffffffffffffff161461069d5761069860e08a0160c08b01611a8d565b6106ad565b6106ad60a08a0160808b01611a8d565b90503373ffffffffffffffffffffffffffffffffffffffff82161415610701576106fc6106df6101208b013584611d72565b73ffffffffffffffffffffffffffffffffffffffff831690610b33565b610730565b610710336101208b0135610b33565b61073073ffffffffffffffffffffffffffffffffffffffff821683610b33565b5050505050505050505050565b6000816040516020016107509190611e04565b604051602081830303815290604052805190602001209050919050565b6000848473ffffffffffffffffffffffffffffffffffffffff82166107ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f423a73656e6465720000000000000000000000000000000000000000000000006044820152606401610106565b80610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f423a7369676e616c0000000000000000000000000000000000000000000000006044820152606401610106565b73ffffffffffffffffffffffffffffffffffffffff88166108d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f423a7372634272696467650000000000000000000000000000000000000000006044820152606401610106565b60006108e08587018761203e565b905073C5d653E17c24928B788a17838F11d2AcF0c922A363960304398260000151606001518b6109108c8c610e88565b60208601516040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152610953949392916001916004016121d7565b60006040518083038186803b15801561096b57600080fd5b505af415801561097f573d6000803e3d6000fd5b50506040517f461a447800000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f7461696b6f00000000000000000000000000000000000000000000000000000060448201526000925073ffffffffffffffffffffffffffffffffffffffff8d16915063461a44789060640160206040518083038186803b158015610a1957600080fd5b505afa158015610a2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a519190611d26565b825161010001516040517f25bf86f20000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015273ffffffffffffffffffffffffffffffffffffffff91909116906325bf86f29060240160206040518083038186803b158015610ad257600080fd5b505afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190612223565b90508015801590610b2457508151610b2190610ee3565b81145b9b9a5050505050505050505050565b8015610c055760008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610b93576040519150601f19603f3d011682016040523d82523d6000602084013e610b98565b606091505b5050905080610c03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f455448207472616e73666572206661696c6564000000000000000000000000006044820152606401610106565b505b5050565b6000808211610c74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f423a6761734c696d6974000000000000000000000000000000000000000000006044820152606401610106565b6040805160608101825284815260208681015173ffffffffffffffffffffffffffffffffffffffff90811691830182905287840151928401839052600389018790556004890180547fffffffffffffffffffffffff000000000000000000000000000000000000000016909217909155600588019190915560a086015161010087015161016088015193519190921692859291610d11919061223c565b600060405180830381858888f193505050503d8060008114610d4f576040519150601f19603f3d011682016040523d82523d6000602084013e610d54565b606091505b50506040805160608101825260018082526020820181905260001991909201819052600388018290556004880180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690921790915560059096019590955550929392505050565b806003811115610dcf57610dcf611cf7565b600083815260018501602052604090205460ff166003811115610df457610df4611cf7565b14610c0357600082815260018085016020526040909120805483927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090911690836003811115610e4657610e46611cf7565b0217905550817f6c51882bc2ed67617f77a1e9b9a25d2caad8448647ecb093b357a603b257563482604051610e7b9190612258565b60405180910390a2505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b166020820152603481018290526000906054016040516020818303038152906040528051906020012090505b92915050565b60006060826101e0015160001415610f285760408051600f808252610200820190925290816020015b6060815260200190600190039081610f0c579050509050610f57565b604080516010808252610220820190925290816020015b6060815260200190600190039081610f3f5790505090505b8251610f629061129d565b81600081518110610f7557610f75612299565b6020026020010181905250610f8d836020015161129d565b81600181518110610fa057610fa0612299565b6020026020010181905250610fb883604001516112b0565b81600281518110610fcb57610fcb612299565b6020026020010181905250610fe3836060015161129d565b81600381518110610ff657610ff6612299565b602002602001018190525061100e836080015161129d565b8160048151811061102157611021612299565b60200260200101819052506110398360a0015161129d565b8160058151811061104c5761104c612299565b60200260200101819052506110838360c0015160405160200161106f91906122c8565b6040516020818303038152906040526112ec565b8160068151811061109657611096612299565b60200260200101819052506110ae8360e0015161135b565b816007815181106110c1576110c1612299565b60200260200101819052506110ec8361010001516fffffffffffffffffffffffffffffffff1661135b565b816008815181106110ff576110ff612299565b6020026020010181905250611118836101200151611369565b8160098151811061112b5761112b612299565b6020026020010181905250611144836101400151611369565b81600a8151811061115757611157612299565b6020026020010181905250611170836101600151611369565b81600b8151811061118357611183612299565b602002602001018190525061119c8361018001516112ec565b81600c815181106111af576111af612299565b60200260200101819052506111c8836101a0015161129d565b81600d815181106111db576111db612299565b602002602001018190525061122a836101c0015160405160200161106f919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b81600e8151811061123d5761123d612299565b6020026020010181905250826101e0015160001461128257611263836101e0015161135b565b81600f8151811061127657611276612299565b60200260200101819052505b600061128d82611381565b8051602090910120949350505050565b6060610edd6112ab836113c5565b6112ec565b604051606082811b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602083015290610edd9060340161106f565b6060808251600114801561131a575060808360008151811061131057611310612299565b016020015160f81c105b15611326575081610edd565b611332835160806114b8565b836040516020016113449291906122fd565b604051602081830303815290604052905092915050565b6060610edd6112ab836116af565b6060610edd6112ab8367ffffffffffffffff166116af565b6060600061138e83611811565b905061139c815160c06114b8565b816040516020016113ae9291906122fd565b604051602081830303815290604052915050919050565b60606000826040516020016113dc91815260200190565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815260208084528383019092529250600091829160208201818036833701905050905060005b81518110156114af57838361143f8161232c565b94508151811061145157611451612299565b602001015160f81c60f81b82828151811061146e5761146e612299565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350806114a78161232c565b91505061142b565b50949350505050565b606080603884101561153757604080516001808252818301909252906020820181803683370190505090506114ed8385612347565b60f81b8160008151811061150357611503612299565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506116a8565b600060015b611546818761239b565b1561156c57816115558161232c565b92506115659050610100826123af565b905061153c565b611577826001611d72565b67ffffffffffffffff81111561158f5761158f611aaa565b6040519080825280601f01601f1916602001820160405280156115b9576020820181803683370190505b5092506115c68583612347565b6115d1906037612347565b60f81b836000815181106115e7576115e7612299565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190505b8181116116a55761010061162f82846123ce565b61163b906101006124c9565b611645908861239b565b61164f91906124d5565b60f81b83828151811061166457611664612299565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508061169d8161232c565b91505061161b565b50505b9392505050565b60606000826040516020016116c691815260200190565b604051602081830303815290604052905060005b6020811015611738578181815181106116f5576116f5612299565b01602001517fff00000000000000000000000000000000000000000000000000000000000000161561172657611738565b806117308161232c565b9150506116da565b60006117458260206123ce565b67ffffffffffffffff81111561175d5761175d611aaa565b6040519080825280601f01601f191660200182016040528015611787576020820181803683370190505b50905060005b81518110156114af5783836117a18161232c565b9450815181106117b3576117b3612299565b602001015160f81c60f81b8282815181106117d0576117d0612299565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350806118098161232c565b91505061178d565b606081516000141561183157505060408051600081526020810190915290565b6000805b83518110156118785783818151811061185057611850612299565b602002602001015151826118649190611d72565b9150806118708161232c565b915050611835565b60008267ffffffffffffffff81111561189357611893611aaa565b6040519080825280601f01601f1916602001820160405280156118bd576020820181803683370190505b50600092509050602081015b85518310156114af5760008684815181106118e6576118e6612299565b60200260200101519050600060208201905061190483828451611941565b87858151811061191657611916612299565b6020026020010151518361192a9190611d72565b9250505082806119399061232c565b9350506118c9565b8282825b6020811061197d578151835261195c602084611d72565b9250611969602083611d72565b91506119766020826123ce565b9050611945565b905182516020929092036101000a6000190180199091169116179052505050565b73ffffffffffffffffffffffffffffffffffffffff811681146119c057600080fd5b50565b6000806000806000608086880312156119db57600080fd5b8535945060208601356119ed8161199e565b9350604086013567ffffffffffffffff80821115611a0a57600080fd5b908701906101a0828a031215611a1f57600080fd5b90935060608701359080821115611a3557600080fd5b818801915088601f830112611a4957600080fd5b813581811115611a5857600080fd5b896020828501011115611a6a57600080fd5b9699959850939650602001949392505050565b8035611a888161199e565b919050565b600060208284031215611a9f57600080fd5b81356116a88161199e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516101a0810167ffffffffffffffff81118282101715611afd57611afd611aaa565b60405290565b6040805190810167ffffffffffffffff81118282101715611afd57611afd611aaa565b604051610200810167ffffffffffffffff81118282101715611afd57611afd611aaa565b600082601f830112611b5b57600080fd5b813567ffffffffffffffff80821115611b7657611b76611aaa565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611bbc57611bbc611aaa565b81604052838152866020858801011115611bd557600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006101a08236031215611c0857600080fd5b611c10611ad9565b82358152611c2060208401611a7d565b60208201526040830135604082015260608301356060820152611c4560808401611a7d565b6080820152611c5660a08401611a7d565b60a0820152611c6760c08401611a7d565b60c082015260e083810135908201526101008084013590820152610120808401359082015261014080840135908201526101608084013567ffffffffffffffff80821115611cb457600080fd5b611cc036838801611b4a565b83850152610180925082860135915080821115611cdc57600080fd5b50611ce936828701611b4a565b918301919091525092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215611d3857600080fd5b81516116a88161199e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115611d8557611d85611d43565b500190565b60005b83811015611da5578181015183820152602001611d8d565b83811115611db4576000848401525b50505050565b60008151808452611dd2816020860160208601611d8a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60408152601460408201527f5441494b4f5f4252494447455f4d4553534147450000000000000000000000006060820152608060208201528151608082015260006020830151611e6c60a084018273ffffffffffffffffffffffffffffffffffffffff169052565b50604083015160c0830152606083015160e08301526080830151610100611eaa8185018373ffffffffffffffffffffffffffffffffffffffff169052565b60a08501519150610120611ed58186018473ffffffffffffffffffffffffffffffffffffffff169052565b60c08601519250610140611f008187018573ffffffffffffffffffffffffffffffffffffffff169052565b60e0870151610160878101919091529287015161018080880191909152918701516101a080880191909152908701516101c0870152918601516101e0860192909252909150611f53610220850183611dba565b908501518482037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001610200860152909150611f8f8282611dba565b95945050505050565b600082601f830112611fa957600080fd5b60405161010080820182811067ffffffffffffffff82111715611fce57611fce611aaa565b60405283018185821115611fe157600080fd5b845b82811015611ffb578035825260209182019101611fe3565b509195945050505050565b80356fffffffffffffffffffffffffffffffff81168114611a8857600080fd5b803567ffffffffffffffff81168114611a8857600080fd5b60006020828403121561205057600080fd5b813567ffffffffffffffff8082111561206857600080fd5b908301906040828603121561207c57600080fd5b612084611b03565b82358281111561209357600080fd5b83016102e081880312156120a657600080fd5b6120ae611b26565b81358152602082013560208201526120c860408301611a7d565b6040820152606082013560608201526080820135608082015260a082013560a08201526120f88860c08401611f98565b60c08201526101c08083013560e08301526101e0612117818501612006565b61010084015261212a6102008501612026565b61012084015261213d6102208501612026565b6101408401526121506102408501612026565b6101608401526102608401358681111561216957600080fd5b6121758b828701611b4a565b610180850152506102808401356101a08401526121956102a08501612026565b828401526102c084013581840152505080835250506020830135828111156121bc57600080fd5b6121c887828601611b4a565b60208301525095945050505050565b85815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015282606082015260a06080820152600061221860a0830184611dba565b979650505050505050565b60006020828403121561223557600080fd5b5051919050565b6000825161224e818460208701611d8a565b9190910192915050565b6020810160048310612293577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008183825b60088110156122ed5781518352602092830192909101906001016122ce565b5050506101008201905092915050565b6000835161230f818460208801611d8a565b835190830190612323818360208801611d8a565b01949350505050565b600060001982141561234057612340611d43565b5060010190565b600060ff821660ff84168060ff0382111561236457612364611d43565b019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826123aa576123aa61236c565b500490565b60008160001904831182151516156123c9576123c9611d43565b500290565b6000828210156123e0576123e0611d43565b500390565b600181815b8085111561242057816000190482111561240657612406611d43565b8085161561241357918102915b93841c93908002906123ea565b509250929050565b60008261243757506001610edd565b8161244457506000610edd565b816001811461245a576002811461246457612480565b6001915050610edd565b60ff84111561247557612475611d43565b50506001821b610edd565b5060208310610133831016604e8410600b84101617156124a3575081810a610edd565b6124ad83836123e5565b80600019048211156124c1576124c1611d43565b029392505050565b60006116a88383612428565b6000826124e4576124e461236c565b50069056fea264697066735822122014b842a0757d4ec0c7768c8c29fec84d20bd7c03ad1a5e3376215194d1c9806464736f6c63430008090033", + "balance": "0x0" + }, + "0x1FEEE7d2A4da93fE4899fFf3ff844A224b1A143d": { + "contractName": "LibTxDecoder", + "storage": {}, + "code": "0x73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c80632cb6101a14610045578063dae029d31461006e575b600080fd5b6100586100533660046117b8565b61008e565b6040516100659190611925565b60405180910390f35b61008161007c3660046119de565b610218565b6040516100659190611aad565b604080516020810190915260608152816100a757610212565b60006100e884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104e092505050565b90506000815167ffffffffffffffff811115610106576101066119af565b60405190808252806020026020018201604052801561019b57816020015b610188604051806101000160405280600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008152602001600060ff1681526020016000815260200160008152602001606081525090565b8152602001906001900390816101245790505b50905060005b82518110156101ff576101cf61007c8483815181106101c2576101c2611ac0565b6020026020010151610513565b8282815181106101e1576101e1611ac0565b602002602001018190525080806101f790611b1e565b9150506101a1565b5060408051602081019091529081529150505b92915050565b61027c604051806101000160405280600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008152602001600060ff1681526020016000815260200160008152602001606081525090565b602082015160e0820183905260001a60c081108015906102a0575060fe8160ff1611155b156103265760008083526102b3846104e0565b905060006102c0826105a3565b60408082015160608088019190915282015173ffffffffffffffffffffffffffffffffffffffff16602087015260c08083015160ff16608088015260e083015160a080890191909152610100840151918801919091529091015190850152506104da9050565b607f8160ff16116104925760ff81168252600061034c6103478560016107bd565b6104e0565b90508160ff16600114156103c4576000610365826107fa565b6060808201519086015260808082015173ffffffffffffffffffffffffffffffffffffffff16602087015261010082015160ff169086015261012081015160a086015261014081015160c080870191909152015160408501525061048c565b826000015160ff166002141561043f5760006103df82610a3b565b608080820151606087015260a08083015173ffffffffffffffffffffffffffffffffffffffff16602088015261012083015160ff16918701919091526101408201519086015261016081015160c086015260e0015160408501525061048c565b60405162461bcd60e51b815260206004820152600e60248201527f696e76616c69642074785479706500000000000000000000000000000000000060448201526064015b60405180910390fd5b506104da565b60405162461bcd60e51b815260206004820152600e60248201527f696e76616c6964207072656669780000000000000000000000000000000000006044820152606401610483565b50919050565b60408051808201825260008082526020918201528151808301909252825182528083019082015260609061021290610c90565b6060600080600061052385610e8f565b91945092509050600081600181111561053e5761053e611b57565b1461058b5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e00000000000000006044820152606401610483565b61059a856020015184846111e0565b95945050505050565b61060b604051806101200160405280600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160608152602001600060ff16815260200160008152602001600081525090565b815160091461065c5760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206974656d73206c656e6774680000000000000000000000006044820152606401610483565b61067f8260008151811061067257610672611ac0565b60200260200101516112d9565b8152815161069a908390600190811061067257610672611ac0565b602082015281516106b8908390600290811061067257610672611ac0565b604082015281516106e390839060039081106106d6576106d6611ac0565b60200260200101516112e4565b73ffffffffffffffffffffffffffffffffffffffff1660608201528151610717908390600490811061067257610672611ac0565b6080820152815161073590839060059081106101c2576101c2611ac0565b60a082015261074862028c5b6002611b86565b61075e8360068151811061067257610672611ac0565b6107689190611bc3565b610773906023611bda565b60ff1660c08201528151610794908390600790811061067257610672611ac0565b60e082015281516107b2908390600890811061067257610672611ac0565b610100820152919050565b6060825182106107dc5750604080516020810190915260008152610212565b6107f383838486516107ee9190611bc3565b611353565b9392505050565b61087060405180610160016040528060008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016060815260200160608152602001600060ff16815260200160008152602001600081525090565b8151600b146108c15760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206974656d73206c656e6774680000000000000000000000006044820152606401610483565b6108d78260008151811061067257610672611ac0565b815281516108f2908390600190811061067257610672611ac0565b60208201528151610910908390600290811061067257610672611ac0565b6040820152815161092e908390600390811061067257610672611ac0565b6060820152815161094c90839060049081106106d6576106d6611ac0565b73ffffffffffffffffffffffffffffffffffffffff1660808201528151610980908390600590811061067257610672611ac0565b60a0820152815161099e90839060069081106101c2576101c2611ac0565b8160c001819052506109d16109cc836007815181106109bf576109bf611ac0565b6020026020010151610c90565b6114f2565b8160e001819052506109ef8260088151811061067257610672611ac0565b60ff166101008201528151610a11908390600990811061067257610672611ac0565b6101208201528151610a30908390600a90811061067257610672611ac0565b610140820152919050565b610ab86040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016060815260200160608152602001600060ff16815260200160008152602001600081525090565b8151600c14610b095760405162461bcd60e51b815260206004820152601460248201527f696e76616c6964206974656d73206c656e6774680000000000000000000000006044820152606401610483565b610b1f8260008151811061067257610672611ac0565b81528151610b3a908390600190811061067257610672611ac0565b60208201528151610b58908390600290811061067257610672611ac0565b60408201528151610b76908390600390811061067257610672611ac0565b60608201528151610b94908390600490811061067257610672611ac0565b60808201528151610bb290839060059081106106d6576106d6611ac0565b73ffffffffffffffffffffffffffffffffffffffff1660a08201528151610be6908390600690811061067257610672611ac0565b60c08201528151610c0490839060079081106101c2576101c2611ac0565b8160e00181905250610c256109cc836008815181106109bf576109bf611ac0565b816101000181905250610c448260098151811061067257610672611ac0565b60ff166101208201528151610c66908390600a90811061067257610672611ac0565b6101408201528151610c85908390600b90811061067257610672611ac0565b610160820152919050565b6060600080610c9e84610e8f565b91935090915060019050816001811115610cba57610cba611b57565b14610d075760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e0000000000000000006044820152606401610483565b6040805160208082526104208201909252600091816020015b6040805180820190915260008082526020820152815260200190600190039081610d205790505090506000835b8651811015610e845760208210610dcc5760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201527f7374206c656e6774682e000000000000000000000000000000000000000000006064820152608401610483565b600080610e096040518060400160405280858c60000151610ded9190611bc3565b8152602001858c60200151610e029190611bda565b9052610e8f565b509150915060405180604001604052808383610e259190611bda565b8152602001848b60200151610e3a9190611bda565b815250858581518110610e4f57610e4f611ac0565b6020908102919091010152610e65600185611bda565b9350610e718183611bda565b610e7b9084611bda565b92505050610d4d565b508152949350505050565b600080600080846000015111610ee75760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e00000000000000006044820152606401610483565b6020840151805160001a607f8111610f0c5760006001600094509450945050506111d9565b60b78111610f88576000610f21608083611bc3565b905080876000015111610f765760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e000000000000006044820152606401610483565b600195509350600092506111d9915050565b60bf8111611077576000610f9d60b783611bc3565b905080876000015111610ff25760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e006044820152606401610483565b600183015160208290036101000a900461100c8183611bda565b88511161105b5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e00000000000000006044820152606401610483565b611066826001611bda565b96509450600093506111d992505050565b60f781116110f257600061108c60c083611bc3565b9050808760000151116110e15760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e0000000000000000006044820152606401610483565b6001955093508492506111d9915050565b60006110ff60f783611bc3565b9050808760000151116111545760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e0000006044820152606401610483565b600183015160208290036101000a900461116e8183611bda565b8851116111bd5760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420524c50206c6f6e67206c6973742e000000000000000000006044820152606401610483565b6111c8826001611bda565b96509450600193506111d992505050565b9193909250565b606060008267ffffffffffffffff8111156111fd576111fd6119af565b6040519080825280601f01601f191660200182016040528015611227576020820181803683370190505b50905080516000141561123b5790506107f3565b60006112478587611bda565b90506020820160005b61125b602087611bf2565b8110156112925782518252611271602084611bda565b925061127e602083611bda565b91508061128a81611b1e565b915050611250565b5080519151601f959095166020036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019182169119909416179092525092915050565b6000610212826116b5565b8051600090600114156112f957506000919050565b815160151461134a5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020616464726573732076616c75652e0000000000006044820152606401610483565b610212826112d9565b60608161136181601f611bda565b10156113af5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610483565b826113ba8382611bda565b10156114085760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610483565b6114128284611bda565b845110156114625760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610483565b60608215801561148157604051915060008252602082016040526114e9565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156114ba5780518352602092830192016114a2565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6060815167ffffffffffffffff81111561150e5761150e6119af565b60405190808252806020026020018201604052801561155457816020015b60408051808201909152600081526060602082015281526020019060019003908161152c5790505b50905060005b82518110156104da57600061157a8483815181106109bf576109bf611ac0565b90506000611594826000815181106106d6576106d6611ac0565b905060006115ae836001815181106109bf576109bf611ac0565b90506000815167ffffffffffffffff8111156115cc576115cc6119af565b6040519080825280602002602001820160405280156115f5578160200160208202803683370190505b50905060005b82518110156116555761162683828151811061161957611619611ac0565b60200260200101516116b5565b82828151811061163857611638611ac0565b60209081029190910101528061164d81611b1e565b9150506115fb565b5060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018281525086868151811061169357611693611ac0565b60200260200101819052505050505080806116ad90611b1e565b91505061155a565b600060218260000151111561170c5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610483565b600080600061171a85610e8f565b91945092509050600081600181111561173557611735611b57565b146117825760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610483565b60008386602001516117949190611bda565b805190915060208410156117ae5760208490036101000a90045b9695505050505050565b600080602083850312156117cb57600080fd5b823567ffffffffffffffff808211156117e357600080fd5b818501915085601f8301126117f757600080fd5b81358181111561180657600080fd5b86602082850101111561181857600080fd5b60209290920196919550909350505050565b6000815180845260005b8181101561185057602081850181015186830182015201611834565b81811115611862576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600061010060ff835116845273ffffffffffffffffffffffffffffffffffffffff602084015116602085015260408301518160408601526118d88286018261182a565b9150506060830151606085015260808301516118f9608086018260ff169052565b5060a083015160a085015260c083015160c085015260e083015184820360e086015261059a828261182a565b60006020808352604083018451828386015281815180845260608701915060608160051b8801019350848301925060005b818110156119a2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888603018352611990858551611895565b94509285019291850191600101611956565b5092979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156119f057600080fd5b813567ffffffffffffffff80821115611a0857600080fd5b818401915084601f830112611a1c57600080fd5b813581811115611a2e57611a2e6119af565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611a7457611a746119af565b81604052828152876020848701011115611a8d57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6020815260006107f36020830184611895565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611b5057611b50611aef565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611bbe57611bbe611aef565b500290565b600082821015611bd557611bd5611aef565b500390565b60008219821115611bed57611bed611aef565b500190565b600082611c28577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea2646970667358221220ce05fa3cbf6e91edf039ea061baf84063d7d321bf9eb0101e512c682c93dd08f64736f6c63430008090033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000006": { + "contractName": "AddressManager", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x00000000000000000000000026250179c8e8e12104e556c4cd03bcf4dabd51b9", + "0x9e150550d912c06ad86bcac5075c8239136cbee2772f59805934f638390787fd": "0x0000000000000000000000000000777700000000000000000000000000000001", + "0xdf0a4e0e7239b530f3a9e9f04f6a2a1d6919446d7589e04de0d7da7f18f5d05a": "0x0000000000000000000000000000777700000000000000000000000000000004", + "0x20beed59eb6fea4f4c6192069320a80e7e285095b80b0603151a98cc480424ce": "0x0000000000000000000000000000777700000000000000000000000000000002", + "0x3d81277ccd96113ddd1d87267c98b973367fd126e1b94b601a82a8474494f54f": "0x0000000000000000000000000000777700000000000000000000000000000003" + }, + "code": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063bf40fac111610050578063bf40fac1146100d7578063e1c7392a146100ea578063f2fde38b146100f257600080fd5b8063715018a6146100775780638da5cb5b146100815780639b2ea4bd146100c4575b600080fd5b61007f610105565b005b60335473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6100d23660046107d8565b610119565b61009b6100e5366004610826565b6101ec565b61007f610228565b61007f610100366004610863565b6103bf565b61010d610473565b61011760006104f4565b565b610121610473565b600061012c8361056b565b60008181526065602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff00000000000000000000000000000000000000008316179092559151929350169061018f908590610885565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000606560006101fb8461056b565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b600054610100900460ff16158080156102485750600054600160ff909116105b806102625750303b158015610262575060005460ff166001145b6102f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561035157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61035961059b565b80156103bc57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6103c7610473565b73ffffffffffffffffffffffffffffffffffffffff811661046a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102ea565b6103bc816104f4565b60335473ffffffffffffffffffffffffffffffffffffffff163314610117576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102ea565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008160405160200161057e9190610885565b604051602081830303815290604052805190602001209050919050565b600054610100900460ff16610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ea565b610117600054610100900460ff166106cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016102ea565b610117336104f4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261071557600080fd5b813567ffffffffffffffff80821115610730576107306106d5565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610776576107766106d5565b8160405283815286602085880101111561078f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107d357600080fd5b919050565b600080604083850312156107eb57600080fd5b823567ffffffffffffffff81111561080257600080fd5b61080e85828601610704565b92505061081d602084016107af565b90509250929050565b60006020828403121561083857600080fd5b813567ffffffffffffffff81111561084f57600080fd5b61085b84828501610704565b949350505050565b60006020828403121561087557600080fd5b61087e826107af565b9392505050565b6000825160005b818110156108a6576020818601810151858301520161088c565b818111156108b5576000828501525b50919091019291505056fea264697066735822122073e1836383d35ef46f9abd6688521406480eb2e7754e7387e4dd208fb4d7c6e464736f6c63430008090033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000001": { + "contractName": "TaikoL2", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000032": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000777700000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000035": "0x7eb68e48c9bb3d707a9aba14662dab6ddd0a07c15abb07e83f02d11a86c15560" + }, + "code": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80639a295e7311610081578063dac5df781161005b578063dac5df78146101f2578063ee82ac5e146101fb578063f16c79341461020e57600080fd5b80639a295e7314610170578063a0ca2d08146101d6578063c8d772ab146101e957600080fd5b8063461a4478116100b2578063461a4478146101405780635155ce9f14610153578063975e09a01461015b57600080fd5b806325bf86f2146100ce5780633ab76e9f14610101575b600080fd5b6100ee6100dc366004611e7a565b60009081526034602052604090205490565b6040519081526020015b60405180910390f35b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f8565b61011b61014e366004611fbe565b610221565b6036546100ee565b61016e610169366004611ff3565b610233565b005b604080516001815262028c5b6020820152610801918101919091526014606082015260006080820152600560a0820152624c4b4060c0820152606460e0820152620927c06101008201526152086101208201526203d090610140820152610160016100f8565b61016e6101e4366004612080565b6102ec565b6100ee60365481565b6100ee60355481565b6100ee610209366004611e7a565b61034c565b61011b61021c3660046120a2565b610399565b600061022d4683610456565b92915050565b600061024185858585610531565b90506000816006811115610257576102576120e9565b14156102aa5760405162461bcd60e51b815260206004820152600960248201527f4c323a726561736f6e000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6102b261082f565b6102bc8585610952565b6040517f64b299ff9f8ba674288abb53380419048a4271dda03b837ecba6b40e6ddea4a290600090a25050505050565b6102f461082f565b60008281526034602052604090819020829055603682905551829043907f930c750845026c7bb04c0e3d9111d512b4c86981713c4944a35a10a4a7a854f3906103409085815260200190565b60405180910390a35050565b600043821061035d57506000919050565b4382108015610377575061037361010043612147565b8210155b1561038157504090565b5060009081526033602052604090205490565b919050565b60006103a58383610456565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811661040f5760405162461bcd60e51b815260206004820152600e60248201527f41523a7a65726f4164647265737300000000000000000000000000000000000060448201526064016102a1565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061046284610974565b8360405160200161047492919061218e565b60408051601f19818403018152908290526000547fbf40fac100000000000000000000000000000000000000000000000000000000835290925073ffffffffffffffffffffffffffffffffffffffff169063bf40fac1906104d99084906004016121e6565b60206040518083038186803b1580156104f157600080fd5b505afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610529919061223d565b949350505050565b6000620927c084111561054657506001610529565b6040517f2cb6101a000000000000000000000000000000000000000000000000000000008152731FEEE7d2A4da93fE4899fFf3ff844A224b1A143d90632cb6101a906105989088908890600401612258565b60006040518083038186803b1580156105b057600080fd5b505af49250505080156105e557506040513d6000823e601f3d908101601f191682016040526105e291908101906122dd565b60015b610623573d808015610613576040519150601f19603f3d011682016040523d82523d6000602084013e610618565b606091505b506002915050610529565b80515160641015610638576003915050610529565b624c4b4061064582610aa6565b1115610655576004915050610529565b80515183106106a65760405162461bcd60e51b815260206004820152600d60248201527f696e76616c69642074784964780000000000000000000000000000000000000060448201526064016102a1565b6000816000015184815181106106be576106be61247d565b60200260200101519050600560068111156106db576106db6120e9565b8560068111156106ed576106ed6120e9565b141561076c5760006106fe82610afa565b73ffffffffffffffffffffffffffffffffffffffff16146107615760405162461bcd60e51b815260206004820152601760248201527f6261642068696e742054585f494e56414c49445f53494700000000000000000060448201526064016102a1565b600592505050610529565b6006856006811115610780576107806120e9565b14156107e757615208816060015110156107dc5760405162461bcd60e51b815260206004820152600860248201527f6261642068696e7400000000000000000000000000000000000000000000000060448201526064016102a1565b600692505050610529565b60405162461bcd60e51b815260206004820152601e60248201527f6661696c656420746f2070726f76652074786c69737420696e76616c6964000060448201526064016102a1565b610837611e5b565b434660025b610100811115801561084e5750808310155b1561089c5761085d8184612147565b408460ff61086b8487612147565b61087591906124db565b60ff81106108855761088561247d565b602002015280610894816124ef565b91505061083c565b5060006108aa600184612147565b905080406108bb8383600088610b89565b6035541461090b5760405162461bcd60e51b815260206004820152601260248201527f4c323a7075626c6963496e70757448617368000000000000000000000000000060448201526064016102a1565b808561091860ff856124db565b60ff81106109285761092861247d565b602002015261093a8385600088610b89565b60355560009182526033602052604090912055505050565b60008282604051610964929190612528565b6040518091039020905092915050565b6060816109b457505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156109de57806109c8816124ef565b91506109d79050600a83612538565b91506109b8565b60008167ffffffffffffffff8111156109f9576109f9611e93565b6040519080825280601f01601f191660200182016040528015610a23576020820181803683370190505b5090505b841561052957610a38600183612147565b9150610a45600a866124db565b610a5090603061254c565b60f81b818381518110610a6557610a6561247d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610a9f600a86612538565b9450610a27565b8051600090815b8151811015610af357818181518110610ac857610ac861247d565b60200260200101516060015183610adf919061254c565b925080610aeb816124ef565b915050610aad565b5050919050565b60006001610b0783610bc2565b6080840151610b1790601b612564565b60a085015160c0860151604080516000815260200190819052610b56949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015610b78573d6000803e3d6000fd5b5050604051601f1901519392505050565b600084848484604051602001610ba29493929190612589565b604051602081830303815290604052805190602001209050949350505050565b805160009060609060ff16610be557610bde8360e00151610fb5565b9050610bff565b610bfc610bf78460e001516001610fe8565b610fb5565b90505b825160ff16610c5e578051600914610c595760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420726c70206974656d7300000000000000000000000000000060448201526064016102a1565b610d68565b826000015160ff1660011415610cbf578051600b14610c595760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420726c70206974656d7300000000000000000000000000000060448201526064016102a1565b826000015160ff1660021415610d20578051600c14610c595760405162461bcd60e51b815260206004820152601160248201527f696e76616c696420726c70206974656d7300000000000000000000000000000060448201526064016102a1565b60405162461bcd60e51b815260206004820152600e60248201527f696e76616c69642074785479706500000000000000000000000000000000000060448201526064016102a1565b825160009060ff1615610d885760038251610d839190612147565b610d8b565b81515b67ffffffffffffffff811115610da357610da3611e93565b604051908082528060200260200182016040528015610dd657816020015b6060815260200190600190039081610dc15790505b50905060005b8151811015610f6357845160ff1615801590610e04575060018251610e019190612147565b81145b15610e4d57610e2b838281518110610e1e57610e1e61247d565b602002602001015161101e565b828281518110610e3d57610e3d61247d565b6020026020010181905250610f51565b610e77610e72848381518110610e6557610e6561247d565b6020026020010151611029565b6110b9565b828281518110610e8957610e8961247d565b6020908102919091010152845160ff16158015610eb2575060048251610eaf9190612147565b81145b15610f5157610ec362028c5b611128565b82610ecf83600161254c565b81518110610edf57610edf61247d565b6020026020010181905250610ef46000611136565b82610f0083600261254c565b81518110610f1057610f1061247d565b6020026020010181905250610f256000611136565b82610f3183600361254c565b81518110610f4157610f4161247d565b6020026020010181905250610f63565b80610f5b816124ef565b915050610ddc565b506000610f6f8261114e565b855190915060ff1615610fa5578451604051610f939160f81b9083906020016125d4565b60405160208183030381529060405290505b8051602090910120949350505050565b60408051808201825260008082526020918201528151808301909252825182528083019082015260609061022d90611192565b606082518210611007575060408051602081019091526000815261022d565b6103a583838486516110199190612147565b611391565b606061022d82611512565b6060600080600061103985611528565b919450925090506000816001811115611054576110546120e9565b146110a15760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e000000000000000060448201526064016102a1565b6110b085602001518484611879565b95945050505050565b606080825160011480156110e757506080836000815181106110dd576110dd61247d565b016020015160f81c105b156110f357508161022d565b6110ff83516080611958565b8360405160200161111192919061261c565b604051602081830303815290604052905092915050565b606061022d610e7283611b4e565b606061022d610e728367ffffffffffffffff16611b4e565b6060600061115b83611cb0565b9050611169815160c0611958565b8160405160200161117b92919061261c565b604051602081830303815290604052915050919050565b60606000806111a084611528565b919350909150600190508160018111156111bc576111bc6120e9565b146112095760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e00000000000000000060448201526064016102a1565b6040805160208082526104208201909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816112225790505090506000835b865181101561138657602082106112ce5760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201527f7374206c656e6774682e0000000000000000000000000000000000000000000060648201526084016102a1565b60008061130b6040518060400160405280858c600001516112ef9190612147565b8152602001858c60200151611304919061254c565b9052611528565b509150915060405180604001604052808383611327919061254c565b8152602001848b6020015161133c919061254c565b8152508585815181106113515761135161247d565b602090810291909101015261136760018561254c565b9350611373818361254c565b61137d908461254c565b9250505061124f565b508152949350505050565b60608161139f81601f61254c565b10156113ed5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016102a1565b826113f8838261254c565b10156114465760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016102a1565b611450828461254c565b845110156114a05760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016102a1565b6060821580156114bf5760405191506000825260208201604052611509565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156114f85780518352602092830192016114e0565b5050858452601f01601f1916604052505b50949350505050565b606061022d826020015160008460000151611879565b6000806000808460000151116115805760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e000000000000000060448201526064016102a1565b6020840151805160001a607f81116115a5576000600160009450945094505050611872565b60b781116116215760006115ba608083612147565b90508087600001511161160f5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e0000000000000060448201526064016102a1565b60019550935060009250611872915050565b60bf811161171057600061163660b783612147565b90508087600001511161168b5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e0060448201526064016102a1565b600183015160208290036101000a90046116a5818361254c565b8851116116f45760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e000000000000000060448201526064016102a1565b6116ff82600161254c565b965094506000935061187292505050565b60f7811161178b57600061172560c083612147565b90508087600001511161177a5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e00000000000000000060448201526064016102a1565b600195509350849250611872915050565b600061179860f783612147565b9050808760000151116117ed5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e00000060448201526064016102a1565b600183015160208290036101000a9004611807818361254c565b8851116118565760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420524c50206c6f6e67206c6973742e0000000000000000000060448201526064016102a1565b61186182600161254c565b965094506001935061187292505050565b9193909250565b606060008267ffffffffffffffff81111561189657611896611e93565b6040519080825280601f01601f1916602001820160405280156118c0576020820181803683370190505b5090508051600014156118d45790506103a5565b60006118e0858761254c565b90506020820160005b6118f4602087612538565b81101561192b578251825261190a60208461254c565b925061191760208361254c565b915080611923816124ef565b9150506118e9565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60608060388410156119d7576040805160018082528183019092529060208201818036833701905050905061198d8385612564565b60f81b816000815181106119a3576119a361247d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506103a5565b600060015b6119e68187612538565b15611a0c57816119f5816124ef565b9250611a0590506101008261264b565b90506119dc565b611a1782600161254c565b67ffffffffffffffff811115611a2f57611a2f611e93565b6040519080825280601f01601f191660200182016040528015611a59576020820181803683370190505b509250611a668583612564565b611a71906037612564565b60f81b83600081518110611a8757611a8761247d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190505b818111611b4557610100611acf8284612147565b611adb906101006127a8565b611ae59088612538565b611aef91906124db565b60f81b838281518110611b0457611b0461247d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080611b3d816124ef565b915050611abb565b50509392505050565b6060600082604051602001611b6591815260200190565b604051602081830303815290604052905060005b6020811015611bd757818181518110611b9457611b9461247d565b01602001517fff000000000000000000000000000000000000000000000000000000000000001615611bc557611bd7565b80611bcf816124ef565b915050611b79565b6000611be4826020612147565b67ffffffffffffffff811115611bfc57611bfc611e93565b6040519080825280601f01601f191660200182016040528015611c26576020820181803683370190505b50905060005b8151811015611509578383611c40816124ef565b945081518110611c5257611c5261247d565b602001015160f81c60f81b828281518110611c6f57611c6f61247d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080611ca8816124ef565b915050611c2c565b6060815160001415611cd057505060408051600081526020810190915290565b6000805b8351811015611d1757838181518110611cef57611cef61247d565b60200260200101515182611d03919061254c565b915080611d0f816124ef565b915050611cd4565b60008267ffffffffffffffff811115611d3257611d32611e93565b6040519080825280601f01601f191660200182016040528015611d5c576020820181803683370190505b50600092509050602081015b8551831015611509576000868481518110611d8557611d8561247d565b602002602001015190506000602082019050611da383828451611de0565b878581518110611db557611db561247d565b60200260200101515183611dc9919061254c565b925050508280611dd8906124ef565b935050611d68565b8282825b60208110611e1c5781518352611dfb60208461254c565b9250611e0860208361254c565b9150611e15602082612147565b9050611de4565b905182516020929092036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169116179052505050565b60405180611fe0016040528060ff906020820280368337509192915050565b600060208284031215611e8c57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516020810167ffffffffffffffff81118282101715611ee557611ee5611e93565b60405290565b604051610100810167ffffffffffffffff81118282101715611ee557611ee5611e93565b604051601f8201601f1916810167ffffffffffffffff81118282101715611f3857611f38611e93565b604052919050565b600067ffffffffffffffff821115611f5a57611f5a611e93565b50601f01601f191660200190565b600082601f830112611f7957600080fd5b8135611f8c611f8782611f40565b611f0f565b818152846020838601011115611fa157600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215611fd057600080fd5b813567ffffffffffffffff811115611fe757600080fd5b61052984828501611f68565b6000806000806060858703121561200957600080fd5b843567ffffffffffffffff8082111561202157600080fd5b818701915087601f83011261203557600080fd5b81358181111561204457600080fd5b88602082850101111561205657600080fd5b602092830196509450508501356007811061207057600080fd5b9396929550929360400135925050565b6000806040838503121561209357600080fd5b50508035926020909101359150565b600080604083850312156120b557600080fd5b82359150602083013567ffffffffffffffff8111156120d357600080fd5b6120df85828601611f68565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561215957612159612118565b500390565b60005b83811015612179578181015183820152602001612161565b83811115612188576000848401525b50505050565b600083516121a081846020880161215e565b7f2e0000000000000000000000000000000000000000000000000000000000000090830190815283516121da81600184016020880161215e565b01600101949350505050565b602081526000825180602084015261220581604085016020870161215e565b601f01601f19169190910160400192915050565b805173ffffffffffffffffffffffffffffffffffffffff8116811461039457600080fd5b60006020828403121561224f57600080fd5b6103a582612219565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b805160ff8116811461039457600080fd5b600082601f8301126122a957600080fd5b81516122b7611f8782611f40565b8181528460208386010111156122cc57600080fd5b61052982602083016020870161215e565b600060208083850312156122f057600080fd5b825167ffffffffffffffff8082111561230857600080fd5b818501915082828703121561231c57600080fd5b612324611ec2565b82518281111561233357600080fd5b80840193505086601f84011261234857600080fd5b82518281111561235a5761235a611e93565b8060051b612369868201611f0f565b918252848101860191868101908a84111561238357600080fd5b87870192505b8383101561246d578251868111156123a057600080fd5b8701610100818d03601f19018113156123b857600080fd5b6123c0611eeb565b6123cb8b8401612287565b81526123d960408401612219565b8b8201526060830151898111156123ef57600080fd5b6123fd8f8d83870101612298565b6040830152506080830151606082015260a061241a818501612287565b608083015260c0808501518284015260e091508185015181840152508284015192508983111561244a5760008081fd5b6124588f8d85870101612298565b90820152845250509187019190870190612389565b8452509198975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826124ea576124ea6124ac565b500690565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561252157612521612118565b5060010190565b8183823760009101908152919050565b600082612547576125476124ac565b500490565b6000821982111561255f5761255f612118565b500190565b600060ff821660ff84168060ff0382111561258157612581612118565b019392505050565b848152600060208581840152846040840152606083018460005b60ff8110156125c0578151835291830191908301906001016125a3565b505050506120408201905095945050505050565b7fff00000000000000000000000000000000000000000000000000000000000000831681526000825161260e81600185016020870161215e565b919091016001019392505050565b6000835161262e81846020880161215e565b83519083019061264281836020880161215e565b01949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561268357612683612118565b500290565b600181815b808511156126e157817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156126c7576126c7612118565b808516156126d457918102915b93841c939080029061268d565b509250929050565b6000826126f85750600161022d565b816127055750600061022d565b816001811461271b576002811461272557612741565b600191505061022d565b60ff84111561273657612736612118565b50506001821b61022d565b5060208310610133831016604e8410600b8410161715612764575081810a61022d565b61276e8383612688565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156127a0576127a0612118565b029392505050565b60006103a583836126e956fea264697066735822122033da65b31403f3528dc6eca551c4217b5ea7512d6e8827e9af8f7449068335bf64736f6c63430008090033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000004": { + "contractName": "Bridge", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000026250179c8e8e12104e556c4cd03bcf4dabd51b9", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000000000777700000000000000000000000000000006" + }, + "code": "0x6080604052600436106101485760003560e01c80636950f0de116100c0578063d0496d6a11610074578063f2fde38b11610059578063f2fde38b14610421578063f980391914610441578063fee99b221461046157600080fd5b8063d0496d6a14610385578063f16c79341461040157600080fd5b80638da5cb5b116100a55780638da5cb5b1461031957806396e1785214610344578063a4444efd1461036557600080fd5b80636950f0de146102e4578063715018a61461030457600080fd5b8063461a447811610117578063540be6a3116100fc578063540be6a3146102745780635d0bd9861461029457806366ca2bc0146102c457600080fd5b8063461a4478146102175780635075a9d41461023757600080fd5b806319ab453c1461015457806332676bc6146101765780633ab76e9f146101ab5780633aec8585146101f757600080fd5b3661014f57005b600080fd5b34801561016057600080fd5b5061017461016f36600461260a565b610481565b005b34801561018257600080fd5b50610196610191366004612627565b610600565b60405190151581526020015b60405180910390f35b3480156101b757600080fd5b5060975473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a2565b34801561020357600080fd5b5061019661021236600461269c565b610615565b34801561022357600080fd5b506101d2610232366004612851565b610672565b34801561024357600080fd5b50610267610252366004612886565b600090815260ca602052604090205460ff1690565b6040516101a2919061289f565b34801561028057600080fd5b5061019661028f366004612886565b61067e565b3480156102a057600080fd5b506101966102af366004612886565b600090815260c9602052604090205460ff1690565b3480156102d057600080fd5b506101746102df366004612886565b61068a565b3480156102f057600080fd5b506101746102ff3660046128f0565b6106d0565b34801561031057600080fd5b5061017461073c565b34801561032557600080fd5b5060655473ffffffffffffffffffffffffffffffffffffffff166101d2565b610357610352366004612935565b610750565b6040519081526020016101a2565b34801561037157600080fd5b5061019661038036600461296a565b6107c8565b34801561039157600080fd5b50604080516060808201835260008083526020808401829052928401528251808201845260cc5480825260cd5473ffffffffffffffffffffffffffffffffffffffff90811683860190815260ce5493870193845286519283525116938101939093525192820192909252016101a2565b34801561040d57600080fd5b506101d261041c3660046129bd565b610824565b34801561042d57600080fd5b5061017461043c36600461260a565b610830565b34801561044d57600080fd5b5061017461045c366004612a04565b6108cd565b34801561046d57600080fd5b5061017461047c366004612a49565b6109b4565b600054610100900460ff16158080156104a15750600054600160ff909116105b806104bb5750303b1580156104bb575060005460ff166001145b6105325760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561059057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61059982610a9e565b80156105fc57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061060c8383610ab7565b90505b92915050565b600080610657866040518060400160405280600681526020017f6272696467650000000000000000000000000000000000000000000000000000815250610824565b90506106673082878a8888610bc9565b979650505050505050565b600061060f4683610f96565b600061060f3083610ab7565b610694338261108f565b60408051338152602081018390527ff0958489d2a32db2b0faf27a72a31fdf28f2636ca5532f1b077ddc2f51b20d1d910160405180910390a150565b600260015414156107235760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610529565b600260015561073460c9838361119d565b505060018055565b61074461126d565b61074e60006112d4565b565b6000600260015414156107a55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610529565b60026001556107be60c9306107b985612ab2565b61134b565b6001805592915050565b60008061080a856040518060400160405280600681526020017f6272696467650000000000000000000000000000000000000000000000000000815250610824565b905061081a308283898888610bc9565b9695505050505050565b600061060c8383610f96565b61083861126d565b73ffffffffffffffffffffffffffffffffffffffff81166108c15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610529565b6108ca816112d4565b50565b600260015414156109205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610529565b60026001556040517f46eb9db5000000000000000000000000000000000000000000000000000000008152738A9E82Ebf0E219BBdB4fBBd50FEd45d098a8Ba1e906346eb9db59061097c9060c990309087908790600401612d8e565b60006040518083038186803b15801561099457600080fd5b505af41580156109a8573d6000803e3d6000fd5b50505050505060018055565b60026001541415610a075760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610529565b60026001556040517fc0249e2d00000000000000000000000000000000000000000000000000000000815273f7c52068c40213E7C49313B0d6FCc11Cb2C45dbF9063c0249e2d90610a659060c9903090889088908890600401612dd6565b60006040518083038186803b158015610a7d57600080fd5b505af4158015610a91573d6000803e3d6000fd5b5050505050506001805550565b610aa6611626565b610aae6116ab565b6108ca81611730565b6000828273ffffffffffffffffffffffffffffffffffffffff8216610b1e5760405162461bcd60e51b815260206004820152600860248201527f423a73656e6465720000000000000000000000000000000000000000000000006044820152606401610529565b80610b6b5760405162461bcd60e51b815260206004820152600860248201527f423a7369676e616c0000000000000000000000000000000000000000000000006044820152606401610529565b50506040805160609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208086019190915260348086019490945281518086039094018452605490940190525080519101205460011490565b6000848473ffffffffffffffffffffffffffffffffffffffff8216610c305760405162461bcd60e51b815260206004820152600860248201527f423a73656e6465720000000000000000000000000000000000000000000000006044820152606401610529565b80610c7d5760405162461bcd60e51b815260206004820152600860248201527f423a7369676e616c0000000000000000000000000000000000000000000000006044820152606401610529565b73ffffffffffffffffffffffffffffffffffffffff8816610ce05760405162461bcd60e51b815260206004820152600b60248201527f423a7372634272696467650000000000000000000000000000000000000000006044820152606401610529565b6000610cee85870187612ed0565b905073C5d653E17c24928B788a17838F11d2AcF0c922A363960304398260000151606001518b610d738c8c6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660208201526034810182905260009060540160405160208183030381529060405280519060200120905092915050565b60208601516040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152610db6949392916001916004016130e3565b60006040518083038186803b158015610dce57600080fd5b505af4158015610de2573d6000803e3d6000fd5b50506040517f461a447800000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f7461696b6f00000000000000000000000000000000000000000000000000000060448201526000925073ffffffffffffffffffffffffffffffffffffffff8d16915063461a44789060640160206040518083038186803b158015610e7c57600080fd5b505afa158015610e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb49190613124565b825161010001516040517f25bf86f20000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015273ffffffffffffffffffffffffffffffffffffffff91909116906325bf86f29060240160206040518083038186803b158015610f3557600080fd5b505afa158015610f49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6d9190613141565b90508015801590610f8757508151610f84906117da565b81145b9b9a5050505050505050505050565b600080610fa284611b94565b83604051602001610fb492919061315a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526097547fbf40fac100000000000000000000000000000000000000000000000000000000835290925073ffffffffffffffffffffffffffffffffffffffff169063bf40fac1906110379084906004016131b2565b60206040518083038186803b15801561104f57600080fd5b505afa158015611063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110879190613124565b949350505050565b818173ffffffffffffffffffffffffffffffffffffffff82166110f45760405162461bcd60e51b815260206004820152600860248201527f423a73656e6465720000000000000000000000000000000000000000000000006044820152606401610529565b806111415760405162461bcd60e51b815260206004820152600860248201527f423a7369676e616c0000000000000000000000000000000000000000000000006044820152606401610529565b50506040805160609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166020808501919091526034808501939093528151808503909301835260549093019052805191012060019055565b6000821180156111ad5750468214155b6111f95760405162461bcd60e51b815260206004820152600960248201527f423a636861696e496400000000000000000000000000000000000000000000006044820152606401610529565b6000828152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016841515908117909155915191825283917f9f391218c06d4fc365ceb15f340bb3d77306b28ac0b8d4e519aec2654794536d910160405180910390a2505050565b60655473ffffffffffffffffffffffffffffffffffffffff16331461074e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610529565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b608081015160009073ffffffffffffffffffffffffffffffffffffffff166113b55760405162461bcd60e51b815260206004820152600760248201527f423a6f776e6572000000000000000000000000000000000000000000000000006044820152606401610529565b468260600151141580156113dc5750606082015160009081526020859052604090205460ff165b6114285760405162461bcd60e51b815260206004820152600d60248201527f423a64657374436861696e4964000000000000000000000000000000000000006044820152606401610529565b60008261012001518361010001518460e0015161144591906131f4565b61144f91906131f4565b90503481146114a05760405162461bcd60e51b815260206004820152600760248201527f423a76616c7565000000000000000000000000000000000000000000000000006044820152606401610529565b6040517f461a447800000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f65746865725f7661756c74000000000000000000000000000000000000000000604482015260009073ffffffffffffffffffffffffffffffffffffffff86169063461a44789060640160206040518083038186803b15801561153657600080fd5b505afa15801561154a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156e9190613124565b905073ffffffffffffffffffffffffffffffffffffffff8116156115ac576115ac73ffffffffffffffffffffffffffffffffffffffff821683611cc6565b6002860180549060006115be8361320c565b9091555084523360208501524660408501526115d984611d81565b92506115e5308461108f565b827f47866f7dacd4a276245be6ed543cae03c9c17eb17e6980cee28e3dd168b7f9f3856040516116159190613362565b60405180910390a250509392505050565b600054610100900460ff166116a35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610529565b61074e611db1565b600054610100900460ff166117285760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610529565b61074e611e34565b73ffffffffffffffffffffffffffffffffffffffff81166117935760405162461bcd60e51b815260206004820152600e60248201527f41523a7a65726f416464726573730000000000000000000000000000000000006044820152606401610529565b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006060826101e001516000141561181f5760408051600f808252610200820190925290816020015b606081526020019060019003908161180357905050905061184e565b604080516010808252610220820190925290816020015b60608152602001906001900390816118365790505090505b825161185990611eba565b8160008151811061186c5761186c613375565b60200260200101819052506118848360200151611eba565b8160018151811061189757611897613375565b60200260200101819052506118af8360400151611ecd565b816002815181106118c2576118c2613375565b60200260200101819052506118da8360600151611eba565b816003815181106118ed576118ed613375565b60200260200101819052506119058360800151611eba565b8160048151811061191857611918613375565b60200260200101819052506119308360a00151611eba565b8160058151811061194357611943613375565b602002602001018190525061197a8360c0015160405160200161196691906133a4565b604051602081830303815290604052611f09565b8160068151811061198d5761198d613375565b60200260200101819052506119a58360e00151611f78565b816007815181106119b8576119b8613375565b60200260200101819052506119e38361010001516fffffffffffffffffffffffffffffffff16611f78565b816008815181106119f6576119f6613375565b6020026020010181905250611a0f836101200151611f86565b81600981518110611a2257611a22613375565b6020026020010181905250611a3b836101400151611f86565b81600a81518110611a4e57611a4e613375565b6020026020010181905250611a67836101600151611f86565b81600b81518110611a7a57611a7a613375565b6020026020010181905250611a93836101800151611f09565b81600c81518110611aa657611aa6613375565b6020026020010181905250611abf836101a00151611eba565b81600d81518110611ad257611ad2613375565b6020026020010181905250611b21836101c00151604051602001611966919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b81600e81518110611b3457611b34613375565b6020026020010181905250826101e00151600014611b7957611b5a836101e00151611f78565b81600f81518110611b6d57611b6d613375565b60200260200101819052505b6000611b8482611f9e565b8051602090910120949350505050565b606081611bd457505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611bfe5780611be88161320c565b9150611bf79050600a83613408565b9150611bd8565b60008167ffffffffffffffff811115611c1957611c19612706565b6040519080825280601f01601f191660200182016040528015611c43576020820181803683370190505b5090505b841561108757611c5860018361341c565b9150611c65600a86613433565b611c709060306131f4565b60f81b818381518110611c8557611c85613375565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611cbf600a86613408565b9450611c47565b80156105fc5760008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114611d26576040519150601f19603f3d011682016040523d82523d6000602084013e611d2b565b606091505b5050905080611d7c5760405162461bcd60e51b815260206004820152601360248201527f455448207472616e73666572206661696c6564000000000000000000000000006044820152606401610529565b505050565b600081604051602001611d949190613447565b604051602081830303815290604052805190602001209050919050565b600054610100900460ff16611e2e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610529565b60018055565b600054610100900460ff16611eb15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610529565b61074e336112d4565b606061060f611ec883611fe2565b611f09565b604051606082811b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660208301529061060f90603401611966565b60608082516001148015611f375750608083600081518110611f2d57611f2d613375565b016020015160f81c105b15611f4357508161060f565b611f4f835160806120d5565b83604051602001611f6192919061348e565b604051602081830303815290604052905092915050565b606061060f611ec8836122cb565b606061060f611ec88367ffffffffffffffff166122cb565b60606000611fab8361242d565b9050611fb9815160c06120d5565b81604051602001611fcb92919061348e565b604051602081830303815290604052915050919050565b6060600082604051602001611ff991815260200190565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815260208084528383019092529250600091829160208201818036833701905050905060005b81518110156120cc57838361205c8161320c565b94508151811061206e5761206e613375565b602001015160f81c60f81b82828151811061208b5761208b613375565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350806120c48161320c565b915050612048565b50949350505050565b6060806038841015612154576040805160018082528183019092529060208201818036833701905050905061210a83856134bd565b60f81b8160008151811061212057612120613375565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061060c565b600060015b6121638187613408565b1561218957816121728161320c565b92506121829050610100826134e2565b9050612159565b6121948260016131f4565b67ffffffffffffffff8111156121ac576121ac612706565b6040519080825280601f01601f1916602001820160405280156121d6576020820181803683370190505b5092506121e385836134bd565b6121ee9060376134bd565b60f81b8360008151811061220457612204613375565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190505b8181116122c25761010061224c828461341c565b6122589061010061363f565b6122629088613408565b61226c9190613433565b60f81b83828151811061228157612281613375565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350806122ba8161320c565b915050612238565b50509392505050565b60606000826040516020016122e291815260200190565b604051602081830303815290604052905060005b60208110156123545781818151811061231157612311613375565b01602001517fff00000000000000000000000000000000000000000000000000000000000000161561234257612354565b8061234c8161320c565b9150506122f6565b600061236182602061341c565b67ffffffffffffffff81111561237957612379612706565b6040519080825280601f01601f1916602001820160405280156123a3576020820181803683370190505b50905060005b81518110156120cc5783836123bd8161320c565b9450815181106123cf576123cf613375565b602001015160f81c60f81b8282815181106123ec576123ec613375565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350806124258161320c565b9150506123a9565b606081516000141561244d57505060408051600081526020810190915290565b6000805b83518110156124945783818151811061246c5761246c613375565b6020026020010151518261248091906131f4565b91508061248c8161320c565b915050612451565b60008267ffffffffffffffff8111156124af576124af612706565b6040519080825280601f01601f1916602001820160405280156124d9576020820181803683370190505b50600092509050602081015b85518310156120cc57600086848151811061250257612502613375565b6020026020010151905060006020820190506125208382845161255d565b87858151811061253257612532613375565b6020026020010151518361254691906131f4565b9250505082806125559061320c565b9350506124e5565b8282825b6020811061259957815183526125786020846131f4565b92506125856020836131f4565b915061259260208261341c565b9050612561565b905182516020929092036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169116179052505050565b73ffffffffffffffffffffffffffffffffffffffff811681146108ca57600080fd5b8035612605816125d8565b919050565b60006020828403121561261c57600080fd5b813561060c816125d8565b6000806040838503121561263a57600080fd5b8235612645816125d8565b946020939093013593505050565b60008083601f84011261266557600080fd5b50813567ffffffffffffffff81111561267d57600080fd5b60208301915083602082850101111561269557600080fd5b9250929050565b6000806000806000608086880312156126b457600080fd5b853594506020860135935060408601356126cd816125d8565b9250606086013567ffffffffffffffff8111156126e957600080fd5b6126f588828901612653565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516101a0810167ffffffffffffffff8111828210171561275957612759612706565b60405290565b6040805190810167ffffffffffffffff8111828210171561275957612759612706565b604051610200810167ffffffffffffffff8111828210171561275957612759612706565b600082601f8301126127b757600080fd5b813567ffffffffffffffff808211156127d2576127d2612706565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561281857612818612706565b8160405283815286602085880101111561283157600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561286357600080fd5b813567ffffffffffffffff81111561287a57600080fd5b611087848285016127a6565b60006020828403121561289857600080fd5b5035919050565b60208101600483106128da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b8035801515811461260557600080fd5b6000806040838503121561290357600080fd5b82359150612913602084016128e0565b90509250929050565b60006101a0828403121561292f57600080fd5b50919050565b60006020828403121561294757600080fd5b813567ffffffffffffffff81111561295e57600080fd5b6110878482850161291c565b6000806000806060858703121561298057600080fd5b8435935060208501359250604085013567ffffffffffffffff8111156129a557600080fd5b6129b187828801612653565b95989497509550505050565b600080604083850312156129d057600080fd5b82359150602083013567ffffffffffffffff8111156129ee57600080fd5b6129fa858286016127a6565b9150509250929050565b60008060408385031215612a1757600080fd5b823567ffffffffffffffff811115612a2e57600080fd5b612a3a8582860161291c565b925050612913602084016128e0565b600080600060408486031215612a5e57600080fd5b833567ffffffffffffffff80821115612a7657600080fd5b612a828783880161291c565b94506020860135915080821115612a9857600080fd5b50612aa586828701612653565b9497909650939450505050565b60006101a08236031215612ac557600080fd5b612acd612735565b82358152612add602084016125fa565b60208201526040830135604082015260608301356060820152612b02608084016125fa565b6080820152612b1360a084016125fa565b60a0820152612b2460c084016125fa565b60c082015260e083810135908201526101008084013590820152610120808401359082015261014080840135908201526101608084013567ffffffffffffffff80821115612b7157600080fd5b612b7d368388016127a6565b83850152610180925082860135915080821115612b9957600080fd5b50612ba6368287016127a6565b918301919091525092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612be957600080fd5b830160208101925035905067ffffffffffffffff811115612c0957600080fd5b80360383131561269557600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60006101a082358452612c76602084016125fa565b73ffffffffffffffffffffffffffffffffffffffff81166020860152506040830135604085015260608301356060850152612cb3608084016125fa565b73ffffffffffffffffffffffffffffffffffffffff166080850152612cda60a084016125fa565b73ffffffffffffffffffffffffffffffffffffffff1660a0850152612d0160c084016125fa565b73ffffffffffffffffffffffffffffffffffffffff1660c085015260e08381013590850152610100808401359085015261012080840135908501526101408084013590850152610160612d5681850185612bb4565b8383880152612d688488018284612c18565b9350505050610180612d7c81850185612bb4565b86840383880152610667848284612c18565b84815273ffffffffffffffffffffffffffffffffffffffff84166020820152608060408201526000612dc36080830185612c61565b9050821515606083015295945050505050565b85815273ffffffffffffffffffffffffffffffffffffffff85166020820152608060408201526000612e0b6080830186612c61565b8281036060840152612e1e818587612c18565b98975050505050505050565b600082601f830112612e3b57600080fd5b60405161010080820182811067ffffffffffffffff82111715612e6057612e60612706565b60405283018185821115612e7357600080fd5b845b82811015612e8d578035825260209182019101612e75565b509195945050505050565b80356fffffffffffffffffffffffffffffffff8116811461260557600080fd5b803567ffffffffffffffff8116811461260557600080fd5b600060208284031215612ee257600080fd5b813567ffffffffffffffff80821115612efa57600080fd5b9083019060408286031215612f0e57600080fd5b612f1661275f565b823582811115612f2557600080fd5b83016102e08188031215612f3857600080fd5b612f40612782565b8135815260208201356020820152612f5a604083016125fa565b6040820152606082013560608201526080820135608082015260a082013560a0820152612f8a8860c08401612e2a565b60c08201526101c08083013560e08301526101e0612fa9818501612e98565b610100840152612fbc6102008501612eb8565b610120840152612fcf6102208501612eb8565b610140840152612fe26102408501612eb8565b61016084015261026084013586811115612ffb57600080fd5b6130078b8287016127a6565b610180850152506102808401356101a08401526130276102a08501612eb8565b828401526102c0840135818401525050808352505060208301358281111561304e57600080fd5b61305a878286016127a6565b60208301525095945050505050565b60005b8381101561308457818101518382015260200161306c565b83811115613093576000848401525b50505050565b600081518084526130b1816020860160208601613069565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b85815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015282606082015260a06080820152600061066760a0830184613099565b60006020828403121561313657600080fd5b815161060c816125d8565b60006020828403121561315357600080fd5b5051919050565b6000835161316c818460208801613069565b7f2e0000000000000000000000000000000000000000000000000000000000000090830190815283516131a6816001840160208801613069565b01600101949350505050565b60208152600061060c6020830184613099565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115613207576132076131c5565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561323e5761323e6131c5565b5060010190565b60006101a0825184526020830151613275602086018273ffffffffffffffffffffffffffffffffffffffff169052565b50604083015160408501526060830151606085015260808301516132b1608086018273ffffffffffffffffffffffffffffffffffffffff169052565b5060a08301516132d960a086018273ffffffffffffffffffffffffffffffffffffffff169052565b5060c083015161330160c086018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e083810151908501526101008084015190850152610120808401519085015261014080840151908501526101608084015181860183905261334683870182613099565b92505050610180808401518583038287015261081a8382613099565b60208152600061060c6020830184613245565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008183825b60088110156133c95781518352602092830192909101906001016133aa565b5050506101008201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082613417576134176133d9565b500490565b60008282101561342e5761342e6131c5565b500390565b600082613442576134426133d9565b500690565b60408152601460408201527f5441494b4f5f4252494447455f4d455353414745000000000000000000000000606082015260806020820152600061060c6080830184613245565b600083516134a0818460208801613069565b8351908301906134b4818360208801613069565b01949350505050565b600060ff821660ff84168060ff038211156134da576134da6131c5565b019392505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561351a5761351a6131c5565b500290565b600181815b8085111561357857817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561355e5761355e6131c5565b8085161561356b57918102915b93841c9390800290613524565b509250929050565b60008261358f5750600161060f565b8161359c5750600061060f565b81600181146135b257600281146135bc576135d8565b600191505061060f565b60ff8411156135cd576135cd6131c5565b50506001821b61060f565b5060208310610133831016604e8410600b84101617156135fb575081810a61060f565b613605838361351f565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115613637576136376131c5565b029392505050565b600061060c838361358056fea2646970667358221220d5e1fe055176dc14480cf9170f5a503d79f8793c534119929c5bbb34db12f54764736f6c63430008090033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000002": { + "contractName": "TokenVault", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000026250179c8e8e12104e556c4cd03bcf4dabd51b9", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000000000777700000000000000000000000000000006" + }, + "code": "0x6080604052600436106100d25760003560e01c8063715018a61161007f578063c287e57811610059578063c287e57814610228578063ee1490b214610268578063f16c79341461027b578063f2fde38b1461029b57600080fd5b8063715018a6146101c45780638da5cb5b146101d95780639aa8605c146101f757600080fd5b80633ab76e9f116100b05780633ab76e9f1461012c578063461a44781461016357806367090ccf1461018357600080fd5b80630c6fab82146100d757806319ab453c146100f957806339da33ba14610119575b600080fd5b3480156100e357600080fd5b506100f76100f2366004612459565b6102bb565b005b34801561010557600080fd5b506100f76101143660046124c8565b6105f9565b6100f76101273660046125c3565b610773565b34801561013857600080fd5b506097546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561016f57600080fd5b5061014661017e366004612641565b610ad1565b34801561018f57600080fd5b5061014661019e366004612676565b60cb6020908152600092835260408084209091529082529020546001600160a01b031681565b3480156101d057600080fd5b506100f7610ae3565b3480156101e557600080fd5b506065546001600160a01b0316610146565b34801561020357600080fd5b506102176102123660046124c8565b610af7565b60405161015a9594939291906126fe565b34801561023457600080fd5b506102586102433660046124c8565b60c96020526000908152604090205460ff1681565b604051901515815260200161015a565b6100f761027636600461274d565b610c59565b34801561028757600080fd5b506101466102963660046127e9565b611682565b3480156102a757600080fd5b506100f76102b63660046124c8565b611695565b600260015414156103135760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260015560408051808201909152600681527f6272696467650000000000000000000000000000000000000000000000000000602082015261035581610ad1565b6001600160a01b0316336001600160a01b0316146103b55760405162461bcd60e51b815260206004820152600960248201527f41523a64656e6965640000000000000000000000000000000000000000000000604482015260640161030a565b6000336001600160a01b031663d0496d6a6040518163ffffffff1660e01b815260040160606040518083038186803b1580156103f057600080fd5b505afa158015610404573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104289190612830565b905061046d81604001516040518060400160405280600b81526020017f746f6b656e5f7661756c74000000000000000000000000000000000000000000815250611682565b6001600160a01b031681602001516001600160a01b0316146104d15760405162461bcd60e51b815260206004820152600860248201527f563a73656e646572000000000000000000000000000000000000000000000000604482015260640161030a565b60008635461415610507576104ec60408801602089016124c8565b90506105026001600160a01b0382168686611725565b610590565b610510876117d3565b6040517f42e91bb30000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015260248201879052919250908216906342e91bb390604401600060405180830381600087803b15801561057757600080fd5b505af115801561058b573d6000803e3d6000fd5b505050505b60408281015181516001600160a01b038981168252602082019290925283821681840152606081018790529151908716917f485a7041eaecffd5ef478f291c05a2a47a1e6af7e7780e46578f18bf03e1bf3f919081900360800190a25050600180555050505050565b600054610100900460ff16158080156106195750600054600160ff909116105b806106335750303b158015610633575060005460ff166001145b6106a55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161030a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561070357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61070c8261182c565b801561076f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600260015414156107c65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161030a565b60026001556001600160a01b03851615801590610833575061081d866040518060400160405280600b81526020017f746f6b656e5f7661756c74000000000000000000000000000000000000000000815250611682565b6001600160a01b0316856001600160a01b031614155b6108815760405162461bcd60e51b815260040161030a9060208082526004908201527f563a746f00000000000000000000000000000000000000000000000000000000604082015260600190565b8234116108d05760405162461bcd60e51b815260206004820152600a60248201527f563a6d736756616c756500000000000000000000000000000000000000000000604482015260640161030a565b61095f604051806101a001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b606081018790523360808201526001600160a01b03861660a08201526101408101859052610120810184905261099584346128c1565b60e08201526001600160a01b03831660c0820152610180810182905260408051808201909152600681527f627269646765000000000000000000000000000000000000000000000000000060208201526000906109f190610ad1565b6001600160a01b03166396e1785234846040518363ffffffff1660e01b8152600401610a1d91906128d8565b6020604051808303818588803b158015610a3657600080fd5b505af1158015610a4a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a6f91906129d2565b60e0830151604080518b8152602081019290925281018290529091506001600160a01b038816907fc4f150c33b1c9146a833662318b1e72e3d07a471886bb6f3a547a8e0bc3a7cfa9060600160405180910390a2505060018055505050505050565b6000610add4683611845565b92915050565b610aeb611913565b610af5600061196d565b565b60ca6020526000908152604090208054600182015460028301805492936001600160a01b038316937401000000000000000000000000000000000000000090930460ff1692909190610b48906129eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610b74906129eb565b8015610bc15780601f10610b9657610100808354040283529160200191610bc1565b820191906000526020600020905b815481529060010190602001808311610ba457829003601f168201915b505050505090806003018054610bd6906129eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c02906129eb565b8015610c4f5780601f10610c2457610100808354040283529160200191610c4f565b820191906000526020600020905b815481529060010190602001808311610c3257829003601f168201915b5050505050905085565b60026001541415610cac5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161030a565b60026001556001600160a01b03871615801590610d195750610d03886040518060400160405280600b81526020017f746f6b656e5f7661756c74000000000000000000000000000000000000000000815250611682565b6001600160a01b0316876001600160a01b031614155b610d675760405162461bcd60e51b815260040161030a9060208082526004908201527f563a746f00000000000000000000000000000000000000000000000000000000604082015260600190565b6001600160a01b038616610dbd5760405162461bcd60e51b815260206004820152600760248201527f563a746f6b656e00000000000000000000000000000000000000000000000000604482015260640161030a565b60008511610e0d5760405162461bcd60e51b815260206004820152600860248201527f563a616d6f756e74000000000000000000000000000000000000000000000000604482015260640161030a565b6040805160a08101825260008082526020820181905291810191909152606080820181905260808201526001600160a01b038716600090815260c9602052604081205460ff16156110bd576040517f77be18a8000000000000000000000000000000000000000000000000000000008152336004820152602481018890526001600160a01b038916906377be18a890604401600060405180830381600087803b158015610eb957600080fd5b505af1158015610ecd573d6000803e3d6000fd5b505050506001600160a01b03888116600090815260ca6020908152604091829020825160a081018452815481526001820154948516928101929092527401000000000000000000000000000000000000000090930460ff1691810191909152600282018054919291606084019190610f44906129eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610f70906129eb565b8015610fbd5780601f10610f9257610100808354040283529160200191610fbd565b820191906000526020600020905b815481529060010190602001808311610fa057829003601f168201915b50505050508152602001600382018054610fd6906129eb565b80601f0160208091040260200160405190810160405280929190818152602001828054611002906129eb565b801561104f5780601f106110245761010080835404028352916020019161104f565b820191906000526020600020905b81548152906001019060200180831161103257829003601f168201915b5050509190925250505060208101519092506001600160a01b03166110b65760405162461bcd60e51b815260206004820152601060248201527f563a63616e6f6e6963616c546f6b656e00000000000000000000000000000000604482015260640161030a565b508561139a565b60008890506040518060a001604052804681526020018a6001600160a01b03168152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561111b57600080fd5b505afa15801561112f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111539190612a4e565b60ff168152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561119457600080fd5b505afa1580156111a8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111d09190810190612a6b565b8152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b15801561120e57600080fd5b505afa158015611222573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261124a9190810190612a6b565b90526040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529093506000906001600160a01b038316906370a082319060240160206040518083038186803b1580156112aa57600080fd5b505afa1580156112be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e291906129d2565b90506112f96001600160a01b03831633308c6119d7565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015281906001600160a01b038416906370a082319060240160206040518083038186803b15801561135357600080fd5b505afa158015611367573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138b91906129d2565b61139591906128c1565b925050505b611429604051806101a001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160608152602001606081525090565b606081018b905233608082015260408051808201909152600b81527f746f6b656e5f7661756c740000000000000000000000000000000000000000006020820152611475908c90611682565b6001600160a01b031660a082015260808101516040517f0c6fab8200000000000000000000000000000000000000000000000000000000916114c0918691908e908790602401612ae2565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526101608201526101408101879052610120810186905261153f86346128c1565b60e08201526001600160a01b03851660c0820152610180810184905260408051808201909152600681527f6272696467650000000000000000000000000000000000000000000000000000602082015260009061159b90610ad1565b6001600160a01b03166396e1785234846040518363ffffffff1660e01b81526004016115c791906128d8565b6020604051808303818588803b1580156115e057600080fd5b505af11580156115f4573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061161991906129d2565b604080518e81526001600160a01b038d81166020830152918101869052606081018390529192508c16907ffd41c851d9a68cdf761055c8f7cb21010b653b27f89f6e3fa224a75eb82a40ac9060800160405180910390a250506001805550505050505050505050565b600061168e8383611845565b9392505050565b61169d611913565b6001600160a01b0381166117195760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161030a565b6117228161196d565b50565b6040516001600160a01b0383166024820152604481018290526117ce9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611a2e565b505050565b8035600090815260cb602090815260408083208392909183916117fa9187019087016124c8565b6001600160a01b03908116825260208201929092526040016000205416905080610add5761182783611b13565b61168e565b611834611dd0565b61183c611e55565b61172281611eda565b60008061185184611f6a565b83604051602001611863929190612b99565b60408051601f19818403018152908290526097547fbf40fac10000000000000000000000000000000000000000000000000000000083529092506001600160a01b03169063bf40fac1906118bb908490600401612bf1565b60206040518083038186803b1580156118d357600080fd5b505afa1580156118e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190b9190612c04565b949350505050565b6065546001600160a01b03163314610af55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161030a565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b0380851660248301528316604482015260648101829052611a289085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161176a565b50505050565b6000611a83826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661209c9092919063ffffffff16565b8051909150156117ce5780806020019051810190611aa19190612c21565b6117ce5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161030a565b6000808235611b2860408501602086016124c8565b604051602001611b6792919091825260601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602082015260340190565b604051602081830303815290604052805190602001209050611bad60008260405180602001611b9590612437565b601f1982820381018352601f909101166040526120ab565b6097549092506001600160a01b0380841691636c0db62b9116611bd660408701602088016124c8565b8635611be86060890160408a01612c43565b611bf560608a018a612c60565b611c0260808c018c612c60565b604051611c169291908e3590602001612ccc565b6040516020818303038152906040526040518863ffffffff1660e01b8152600401611c479796959493929190612d7a565b600060405180830381600087803b158015611c6157600080fd5b505af1158015611c75573d6000803e3d6000fd5b5050506001600160a01b038316600090815260c96020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560ca9091529020849150611cd08282612f21565b50508235600090815260cb60209081526040808320859390929091611cfa919088019088016124c8565b6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316836020016020810190611d5b91906124c8565b6001600160a01b031684357f9e465b29e576a3e01584e31d607353f21b80c055e813af907c0a495f6cf4f7bc611d946060880188612c60565b611da160808a018a612c60565b611db160608c0160408d01612c43565b604051611dc2959493929190612ff9565b60405180910390a450919050565b600054610100900460ff16611e4d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161030a565b610af56121ad565b600054610100900460ff16611ed25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161030a565b610af5612230565b6001600160a01b038116611f305760405162461bcd60e51b815260206004820152600e60248201527f41523a7a65726f41646472657373000000000000000000000000000000000000604482015260640161030a565b609780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b606081611faa57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611fd45780611fbe81613036565b9150611fcd9050600a8361309e565b9150611fae565b60008167ffffffffffffffff811115611fef57611fef6124e5565b6040519080825280601f01601f191660200182016040528015612019576020820181803683370190505b5090505b841561190b5761202e6001836128c1565b915061203b600a866130b2565b6120469060306130c6565b60f81b81838151811061205b5761205b6130de565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612095600a8661309e565b945061201d565b606061190b84846000856122b6565b600080844710156120fe5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161030a565b825161214c5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161030a565b8383516020850187f590506001600160a01b03811661190b5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161030a565b600054610100900460ff1661222a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161030a565b60018055565b600054610100900460ff166122ad5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161030a565b610af53361196d565b60608247101561232e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161030a565b6001600160a01b0385163b6123855760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161030a565b600080866001600160a01b031685876040516123a1919061310d565b60006040518083038185875af1925050503d80600081146123de576040519150601f19603f3d011682016040523d82523d6000602084013e6123e3565b606091505b50915091506123f38282866123fe565b979650505050505050565b6060831561240d57508161168e565b82511561241d5782518084602001fd5b8160405162461bcd60e51b815260040161030a9190612bf1565b6120a08061312a83390190565b6001600160a01b038116811461172257600080fd5b6000806000806080858703121561246f57600080fd5b843567ffffffffffffffff81111561248657600080fd5b850160a0818803121561249857600080fd5b935060208501356124a881612444565b925060408501356124b881612444565b9396929550929360600135925050565b6000602082840312156124da57600080fd5b813561168e81612444565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561253d5761253d6124e5565b604052919050565b600067ffffffffffffffff82111561255f5761255f6124e5565b50601f01601f191660200190565b600082601f83011261257e57600080fd5b813561259161258c82612545565b612514565b8181528460208386010111156125a657600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c087890312156125dc57600080fd5b8635955060208701356125ee81612444565b94506040870135935060608701359250608087013561260c81612444565b915060a087013567ffffffffffffffff81111561262857600080fd5b61263489828a0161256d565b9150509295509295509295565b60006020828403121561265357600080fd5b813567ffffffffffffffff81111561266a57600080fd5b61190b8482850161256d565b6000806040838503121561268957600080fd5b82359150602083013561269b81612444565b809150509250929050565b60005b838110156126c15781810151838201526020016126a9565b83811115611a285750506000910152565b600081518084526126ea8160208601602086016126a6565b601f01601f19169290920160200192915050565b8581526001600160a01b038516602082015260ff8416604082015260a06060820152600061272f60a08301856126d2565b828103608084015261274181856126d2565b98975050505050505050565b600080600080600080600080610100898b03121561276a57600080fd5b88359750602089013561277c81612444565b9650604089013561278c81612444565b9550606089013594506080890135935060a0890135925060c08901356127b181612444565b915060e089013567ffffffffffffffff8111156127cd57600080fd5b6127d98b828c0161256d565b9150509295985092959890939650565b600080604083850312156127fc57600080fd5b82359150602083013567ffffffffffffffff81111561281a57600080fd5b6128268582860161256d565b9150509250929050565b60006060828403121561284257600080fd5b6040516060810181811067ffffffffffffffff82111715612865576128656124e5565b60405282518152602083015161287a81612444565b60208201526040928301519281019290925250919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156128d3576128d3612892565b500390565b6020815281516020820152600060208301516128ff60408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015161292e60a08401826001600160a01b03169052565b5060a08301516001600160a01b03811660c08401525060c08301516001600160a01b03811660e08401525060e0830151610100838101919091528301516101208084019190915283015161014080840191909152830151610160808401919091528301516101a06101808085018290526129ac6101c08601846126d2565b90860151858203601f1901838701529092506129c883826126d2565b9695505050505050565b6000602082840312156129e457600080fd5b5051919050565b600181811c908216806129ff57607f821691505b60208210811415612a39577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60ff8116811461172257600080fd5b600060208284031215612a6057600080fd5b815161168e81612a3f565b600060208284031215612a7d57600080fd5b815167ffffffffffffffff811115612a9457600080fd5b8201601f81018413612aa557600080fd5b8051612ab361258c82612545565b818152856020838501011115612ac857600080fd5b612ad98260208301602086016126a6565b95945050505050565b6080815284516080820152600060208601516001600160a01b0380821660a085015260ff60408901511660c08501526060880151915060a060e0850152612b2d6101208501836126d2565b915060808801517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8085840301610100860152612b6983826126d2565b9188166020860152506001600160a01b03861660408501529150612b8a9050565b82606083015295945050505050565b60008351612bab8184602088016126a6565b7f2e000000000000000000000000000000000000000000000000000000000000009083019081528351612be58160018401602088016126a6565b01600101949350505050565b60208152600061168e60208301846126d2565b600060208284031215612c1657600080fd5b815161168e81612444565b600060208284031215612c3357600080fd5b8151801515811461168e57600080fd5b600060208284031215612c5557600080fd5b813561168e81612a3f565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612c9557600080fd5b83018035915067ffffffffffffffff821115612cb057600080fd5b602001915036819003821315612cc557600080fd5b9250929050565b828482377f286272696467656400000000000000000000000000000000000000000000000092019182527ff09f8c88000000000000000000000000000000000000000000000000000000006008830152600c8201527f2900000000000000000000000000000000000000000000000000000000000000602c820152602d01919050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60006001600160a01b03808a16835280891660208401525086604083015260ff8616606083015260c06080830152612db660c083018587612d4f565b82810360a0840152612dc881856126d2565b9a9950505050505050505050565b601f8211156117ce57600081815260208120601f850160051c81016020861015612dfd5750805b601f850160051c820191505b81811015612e1c57828155600101612e09565b505050505050565b67ffffffffffffffff831115612e3c57612e3c6124e5565b612e5083612e4a83546129eb565b83612dd6565b6000601f841160018114612ea25760008515612e6c5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355612f1a565b600083815260209020601f19861690835b82811015612ed35786850135825560209485019460019092019101612eb3565b5086821015612f0e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81358155600181016020830135612f3781612444565b6001600160a01b03811690508154817fffffffffffffffffffffffff000000000000000000000000000000000000000082161783556040850135612f7a81612a3f565b74ff00000000000000000000000000000000000000008160a01b16837fffffffffffffffffffffff00000000000000000000000000000000000000000084161717845550505050612fce6060830183612c60565b612fdc818360028601612e24565b5050612feb6080830183612c60565b611a28818360038601612e24565b60608152600061300d606083018789612d4f565b8281036020840152613020818688612d4f565b91505060ff831660408301529695505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561306857613068612892565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826130ad576130ad61306f565b500490565b6000826130c1576130c161306f565b500690565b600082198211156130d9576130d9612892565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000825161311f8184602087016126a6565b919091019291505056fe608060405234801561001057600080fd5b50612080806100206000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80636c0db62b116100e357806395d89b411161008c578063dd62ed3e11610066578063dd62ed3e146103b0578063f16c7934146103f6578063f2fde38b1461040957600080fd5b806395d89b4114610382578063a457c2d71461038a578063a9059cbb1461039d57600080fd5b806377be18a8116100bd57806377be18a8146103315780637cf8ed0d146103445780638da5cb5b1461036457600080fd5b80636c0db62b146102e057806370a08231146102f3578063715018a61461032957600080fd5b80633950935111610145578063461a44781161011f578063461a44781461027457806349d126051461028757806367e828bf1461029057600080fd5b8063395093511461020d5780633ab76e9f1461022057806342e91bb31461025f57600080fd5b806318160ddd1161017657806318160ddd146101d357806323b872dd146101e5578063313ce567146101f857600080fd5b806306fdde0314610192578063095ea7b3146101b0575b600080fd5b61019a61041c565b6040516101a79190611b2e565b60405180910390f35b6101c36101be366004611ba1565b6104ae565b60405190151581526020016101a7565b60cb545b6040519081526020016101a7565b6101c36101f3366004611bcd565b6104c6565b60ce5460405160ff90911681526020016101a7565b6101c361021b366004611ba1565b610546565b60975473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b61027261026d366004611ba1565b610592565b005b61023a610282366004611ce8565b6106aa565b6101d760fc5481565b6102b460fb5460fc5473ffffffffffffffffffffffffffffffffffffffff90911691565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b6102726102ee366004611d1d565b6106bc565b6101d7610301366004611dc7565b73ffffffffffffffffffffffffffffffffffffffff16600090815260c9602052604090205490565b610272610921565b61027261033f366004611ba1565b610935565b60fb5461023a9073ffffffffffffffffffffffffffffffffffffffff1681565b60655473ffffffffffffffffffffffffffffffffffffffff1661023a565b61019a610a40565b6101c3610398366004611ba1565b610a4f565b6101c36103ab366004611ba1565b610b11565b6101d76103be366004611de4565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260ca6020908152604080832093909416825291909152205490565b61023a610404366004611e1d565b610b8a565b610272610417366004611dc7565b610b96565b606060cc805461042b90611e64565b80601f016020809104026020016040519081016040528092919081815260200182805461045790611e64565b80156104a45780601f10610479576101008083540402835291602001916104a4565b820191906000526020600020905b81548152906001019060200180831161048757829003601f168201915b5050505050905090565b6000336104bc818585610c33565b5060019392505050565b600073ffffffffffffffffffffffffffffffffffffffff83163014156105335760405162461bcd60e51b815260206004820152600560248201527f42453a746f00000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61053e848484610db2565b949350505050565b33600081815260ca6020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906104bc908290869061058d908790611ee7565b610c33565b6040518060400160405280600b81526020017f746f6b656e5f7661756c740000000000000000000000000000000000000000008152506105d1816106aa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461064b5760405162461bcd60e51b815260206004820152600960248201527f41523a64656e6965640000000000000000000000000000000000000000000000604482015260640161052a565b6106558383610dcb565b8273ffffffffffffffffffffffffffffffffffffffff167f397b33b307fc137878ebfc75b295289ec0ee25a31bb5bf034f33256fe8ea2aa68360405161069d91815260200190565b60405180910390a2505050565b60006106b64683610e89565b92915050565b600054610100900460ff16158080156106dc5750600054600160ff909116105b806106f65750303b1580156106f6575060005460ff166001145b6107685760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161052a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156107c657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff8616158015906107ea57508415155b80156107f65750468514155b8015610803575060008351115b8015610810575060008251115b61085c5760405162461bcd60e51b815260206004820152600960248201527f42453a706172616d730000000000000000000000000000000000000000000000604482015260640161052a565b61086587610f7a565b610870828486610f93565b60fb80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff881617905560fc859055801561091857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610929611020565b6109336000611087565b565b6040518060400160405280600b81526020017f746f6b656e5f7661756c74000000000000000000000000000000000000000000815250610974816106aa565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109ee5760405162461bcd60e51b815260206004820152600960248201527f41523a64656e6965640000000000000000000000000000000000000000000000604482015260640161052a565b6109f883836110fe565b8273ffffffffffffffffffffffffffffffffffffffff167f9b5b9a05e4726d8bb959f1440e05c6b8109443f2083bc4e386237d76545265538360405161069d91815260200190565b606060cd805461042b90611e64565b33600081815260ca6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490919083811015610af95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161052a565b610b068286868403610c33565b506001949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8316301415610b795760405162461bcd60e51b815260206004820152600560248201527f42453a746f000000000000000000000000000000000000000000000000000000604482015260640161052a565b610b83838361126f565b9392505050565b6000610b838383610e89565b610b9e611020565b73ffffffffffffffffffffffffffffffffffffffff8116610c275760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161052a565b610c3081611087565b50565b73ffffffffffffffffffffffffffffffffffffffff8316610cbb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff8216610d445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600033610dc085828561127d565b610b0685858561133a565b73ffffffffffffffffffffffffffffffffffffffff8216610e2e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161052a565b8060cb6000828254610e409190611ee7565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260c9602052604081208054839290610e7a908490611ee7565b90915550610e859050565b5050565b600080610e958461159f565b83604051602001610ea7929190611eff565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526097547fbf40fac100000000000000000000000000000000000000000000000000000000835290925073ffffffffffffffffffffffffffffffffffffffff169063bf40fac190610f2a908490600401611b2e565b60206040518083038186803b158015610f4257600080fd5b505afa158015610f56573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053e9190611f57565b610f826116d1565b610f8a611756565b610c30816117db565b600054610100900460ff166110105760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161052a565b61101b838383611885565b505050565b60655473ffffffffffffffffffffffffffffffffffffffff1633146109335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161052a565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff82166111875760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260c96020526040902054818110156112235760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260c960205260408120838303905560cb805484929061125f908490611f74565b9091555061101b90508360008483565b6000336104bc81858561133a565b73ffffffffffffffffffffffffffffffffffffffff838116600090815260ca60209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461133457818110156113275760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161052a565b6113348484848403610c33565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166113c35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff821661144c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260c96020526040902054818110156114e85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161052a565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260c9602052604080822085850390559185168152908120805484929061152c908490611ee7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161159291815260200190565b60405180910390a3611334565b6060816115df57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561160957806115f381611f8b565b91506116029050600a83611ff3565b91506115e3565b60008167ffffffffffffffff81111561162457611624611c0e565b6040519080825280601f01601f19166020018201604052801561164e576020820181803683370190505b5090505b841561053e57611663600183611f74565b9150611670600a86612007565b61167b906030611ee7565b60f81b8183815181106116905761169061201b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506116ca600a86611ff3565b9450611652565b600054610100900460ff1661174e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161052a565b610933611960565b600054610100900460ff166117d35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161052a565b6109336119e3565b73ffffffffffffffffffffffffffffffffffffffff811661183e5760405162461bcd60e51b815260206004820152600e60248201527f41523a7a65726f41646472657373000000000000000000000000000000000000604482015260640161052a565b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600054610100900460ff166119025760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161052a565b82516119159060cc906020860190611a69565b5081516119299060cd906020850190611a69565b5060ce80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790555050565b600054610100900460ff166119dd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161052a565b60018055565b600054610100900460ff16611a605760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161052a565b61093333611087565b828054611a7590611e64565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611aed565b5090565b5b80821115611ae95760008155600101611aee565b60005b83811015611b1d578181015183820152602001611b05565b838111156113345750506000910152565b6020815260008251806020840152611b4d816040850160208701611b02565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c3057600080fd5b60008060408385031215611bb457600080fd5b8235611bbf81611b7f565b946020939093013593505050565b600080600060608486031215611be257600080fd5b8335611bed81611b7f565b92506020840135611bfd81611b7f565b929592945050506040919091013590565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112611c4e57600080fd5b813567ffffffffffffffff80821115611c6957611c69611c0e565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611caf57611caf611c0e565b81604052838152866020858801011115611cc857600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215611cfa57600080fd5b813567ffffffffffffffff811115611d1157600080fd5b61053e84828501611c3d565b60008060008060008060c08789031215611d3657600080fd5b8635611d4181611b7f565b95506020870135611d5181611b7f565b945060408701359350606087013560ff81168114611d6e57600080fd5b9250608087013567ffffffffffffffff80821115611d8b57600080fd5b611d978a838b01611c3d565b935060a0890135915080821115611dad57600080fd5b50611dba89828a01611c3d565b9150509295509295509295565b600060208284031215611dd957600080fd5b8135610b8381611b7f565b60008060408385031215611df757600080fd5b8235611e0281611b7f565b91506020830135611e1281611b7f565b809150509250929050565b60008060408385031215611e3057600080fd5b82359150602083013567ffffffffffffffff811115611e4e57600080fd5b611e5a85828601611c3d565b9150509250929050565b600181811c90821680611e7857607f821691505b60208210811415611eb2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115611efa57611efa611eb8565b500190565b60008351611f11818460208801611b02565b7f2e000000000000000000000000000000000000000000000000000000000000009083019081528351611f4b816001840160208801611b02565b01600101949350505050565b600060208284031215611f6957600080fd5b8151610b8381611b7f565b600082821015611f8657611f86611eb8565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611fbd57611fbd611eb8565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261200257612002611fc4565b500490565b60008261201657612016611fc4565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220f24dcb708d1867134df56fe5efc5ccc3a875e0deca527b2af220b5bde7e6b93664736f6c63430008090033a2646970667358221220abf8c5a35e42ce1f54480f59a3b073492445c3fe339322ddb4639465be6e49ee64736f6c63430008090033", + "balance": "0x0" + }, + "0x0000777700000000000000000000000000000003": { + "contractName": "EtherVault", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000065": "0x00000000000000000000000026250179c8e8e12104e556c4cd03bcf4dabd51b9", + "0x0000000000000000000000000000000000000000000000000000000000000097": "0x0000000000000000000000000000777700000000000000000000000000000006", + "0x029ae2e2f1d6964720a0fa7e6ffa902f995c156242f4f5a930aa9d9765d167d0": "0x0000000000000000000000000000000000000000000000000000000000000001" + }, + "code": "0x6080604052600436106100b55760003560e01c8063715018a611610069578063f16c79341161004e578063f16c79341461023f578063f2fde38b1461025f578063fe9fbb801461027f57600080fd5b8063715018a6146101ff5780638da5cb5b1461021457600080fd5b80632d1fb3891161009a5780632d1fb3891461016e5780633ab76e9f1461018e578063461a4478146101df57600080fd5b806319ab453c1461012e5780631efa4ec01461014e57600080fd5b36610129574715806100d6575033600090815260c9602052604090205460ff165b6101275760405162461bcd60e51b815260206004820152600960248201527f45563a64656e696564000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b34801561013a57600080fd5b50610127610149366004610dd8565b6102d5565b34801561015a57600080fd5b50610127610169366004610df5565b61044f565b34801561017a57600080fd5b50610127610189366004610e0e565b610517565b34801561019a57600080fd5b5060975473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101eb57600080fd5b506101b56101fa366004610f26565b610646565b34801561020b57600080fd5b50610127610658565b34801561022057600080fd5b5060655473ffffffffffffffffffffffffffffffffffffffff166101b5565b34801561024b57600080fd5b506101b561025a366004610f5b565b61066c565b34801561026b57600080fd5b5061012761027a366004610dd8565b61067f565b34801561028b57600080fd5b506102c561029a366004610dd8565b73ffffffffffffffffffffffffffffffffffffffff16600090815260c9602052604090205460ff1690565b60405190151581526020016101d6565b600054610100900460ff16158080156102f55750600054600160ff909116105b8061030f5750303b15801561030f575060005460ff166001145b6103815760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161011e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156103df57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103e88261071c565b801561044b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b33600090815260c9602052604090205460ff166104ae5760405162461bcd60e51b815260206004820152600960248201527f45563a64656e6965640000000000000000000000000000000000000000000000604482015260640161011e565b600260015414156105015760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161011e565b60026001556105103382610735565b5060018055565b61051f6107f0565b73ffffffffffffffffffffffffffffffffffffffff821615801590610570575073ffffffffffffffffffffffffffffffffffffffff8216600090815260c9602052604090205460ff16151581151514155b6105bc5760405162461bcd60e51b815260206004820152600860248201527f45563a706172616d000000000000000000000000000000000000000000000000604482015260640161011e565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260c9602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf910160405180910390a25050565b60006106524683610857565b92915050565b6106606107f0565b61066a6000610950565b565b60006106788383610857565b9392505050565b6106876107f0565b73ffffffffffffffffffffffffffffffffffffffff81166107105760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161011e565b61071981610950565b50565b6107246109c7565b61072c610a4c565b61071981610ad1565b801561044b5760008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610795576040519150601f19603f3d011682016040523d82523d6000602084013e61079a565b606091505b50509050806107eb5760405162461bcd60e51b815260206004820152601360248201527f455448207472616e73666572206661696c656400000000000000000000000000604482015260640161011e565b505050565b60655473ffffffffffffffffffffffffffffffffffffffff16331461066a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161011e565b60008061086384610b7b565b83604051602001610875929190610fd2565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526097547fbf40fac100000000000000000000000000000000000000000000000000000000835290925073ffffffffffffffffffffffffffffffffffffffff169063bf40fac1906108f890849060040161102a565b60206040518083038186803b15801561091057600080fd5b505afa158015610924573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610948919061107b565b949350505050565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610a445760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161011e565b61066a610cad565b600054610100900460ff16610ac95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161011e565b61066a610d30565b73ffffffffffffffffffffffffffffffffffffffff8116610b345760405162461bcd60e51b815260206004820152600e60248201527f41523a7a65726f41646472657373000000000000000000000000000000000000604482015260640161011e565b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b606081610bbb57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610be55780610bcf816110c7565b9150610bde9050600a8361112f565b9150610bbf565b60008167ffffffffffffffff811115610c0057610c00610e4c565b6040519080825280601f01601f191660200182016040528015610c2a576020820181803683370190505b5090505b841561094857610c3f600183611143565b9150610c4c600a8661115a565b610c5790603061116e565b60f81b818381518110610c6c57610c6c611186565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610ca6600a8661112f565b9450610c2e565b600054610100900460ff16610d2a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161011e565b60018055565b600054610100900460ff16610dad5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161011e565b61066a33610950565b73ffffffffffffffffffffffffffffffffffffffff8116811461071957600080fd5b600060208284031215610dea57600080fd5b813561067881610db6565b600060208284031215610e0757600080fd5b5035919050565b60008060408385031215610e2157600080fd5b8235610e2c81610db6565b915060208301358015158114610e4157600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610e8c57600080fd5b813567ffffffffffffffff80821115610ea757610ea7610e4c565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610eed57610eed610e4c565b81604052838152866020858801011115610f0657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215610f3857600080fd5b813567ffffffffffffffff811115610f4f57600080fd5b61094884828501610e7b565b60008060408385031215610f6e57600080fd5b82359150602083013567ffffffffffffffff811115610f8c57600080fd5b610f9885828601610e7b565b9150509250929050565b60005b83811015610fbd578181015183820152602001610fa5565b83811115610fcc576000848401525b50505050565b60008351610fe4818460208801610fa2565b7f2e00000000000000000000000000000000000000000000000000000000000000908301908152835161101e816001840160208801610fa2565b01600101949350505050565b6020815260008251806020840152611049816040850160208701610fa2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561108d57600080fd5b815161067881610db6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156110f9576110f9611098565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261113e5761113e611100565b500490565b60008282101561115557611155611098565b500390565b60008261116957611169611100565b500690565b6000821982111561118157611181611098565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220a9a80c6d09a8fe0110adcdabd6682b37ae15ded4282fed28d917343fa3f34e2564736f6c63430008090033", + "balance": "0xffffffffffffffc87d2531626fffffff" + } +} From 1592f30736a1cd30756945e0f7b4df23cf5217c3 Mon Sep 17 00:00:00 2001 From: maskpp Date: Wed, 30 Oct 2024 16:49:41 +0800 Subject: [PATCH 02/24] sync optimism/bin --- crates/optimism/bin/Cargo.toml | 50 ++++++++++++++++++++ crates/optimism/bin/src/lib.rs | 73 ++++++++++++++++++++++++++++ crates/optimism/bin/src/main.rs | 84 +++++++++++++++++++++++++++++++++ 3 files changed, 207 insertions(+) create mode 100644 crates/optimism/bin/Cargo.toml create mode 100644 crates/optimism/bin/src/lib.rs create mode 100644 crates/optimism/bin/src/main.rs diff --git a/crates/optimism/bin/Cargo.toml b/crates/optimism/bin/Cargo.toml new file mode 100644 index 000000000000..2de0bb6ee181 --- /dev/null +++ b/crates/optimism/bin/Cargo.toml @@ -0,0 +1,50 @@ +[package] +name = "op-reth" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true +exclude.workspace = true + +[dependencies] +reth-node-builder.workspace = true +reth-cli-util.workspace = true +reth-optimism-cli.workspace = true +reth-provider.workspace = true +reth-optimism-rpc.workspace = true +reth-optimism-node.workspace = true +reth-optimism-chainspec.workspace = true +reth-optimism-consensus.workspace = true +reth-optimism-evm.workspace = true +reth-optimism-payload-builder.workspace = true +reth-optimism-primitives.workspace = true +reth-optimism-forks.workspace = true + +clap = { workspace = true, features = ["derive", "env"] } +tracing.workspace = true + +[lints] +workspace = true + +[features] +default = ["jemalloc"] + +jemalloc = ["reth-cli-util/jemalloc", "reth-optimism-cli/jemalloc"] +jemalloc-prof = ["reth-cli-util/jemalloc-prof"] +tracy-allocator = ["reth-cli-util/tracy-allocator"] + +asm-keccak = ["reth-optimism-cli/asm-keccak", "reth-optimism-node/asm-keccak"] + +optimism = ["reth-optimism-cli/optimism", "reth-optimism-node/optimism"] + +min-error-logs = ["tracing/release_max_level_error"] +min-warn-logs = ["tracing/release_max_level_warn"] +min-info-logs = ["tracing/release_max_level_info"] +min-debug-logs = ["tracing/release_max_level_debug"] +min-trace-logs = ["tracing/release_max_level_trace"] + +[[bin]] +name = "op-reth" +path = "src/main.rs" diff --git a/crates/optimism/bin/src/lib.rs b/crates/optimism/bin/src/lib.rs new file mode 100644 index 000000000000..21c28f7c5470 --- /dev/null +++ b/crates/optimism/bin/src/lib.rs @@ -0,0 +1,73 @@ +//! Rust Optimism (op-reth) binary executable. +//! +//! ## Feature Flags +//! +//! - `jemalloc`: Uses [jemallocator](https://github.com/tikv/jemallocator) as the global allocator. +//! This is **not recommended on Windows**. See [here](https://rust-lang.github.io/rfcs/1974-global-allocators.html#jemalloc) +//! for more info. +//! - `jemalloc-prof`: Enables [jemallocator's](https://github.com/tikv/jemallocator) heap profiling +//! and leak detection functionality. See [jemalloc's opt.prof](https://jemalloc.net/jemalloc.3.html#opt.prof) +//! documentation for usage details. This is **not recommended on Windows**. See [here](https://rust-lang.github.io/rfcs/1974-global-allocators.html#jemalloc) +//! for more info. +//! - `asm-keccak`: replaces the default, pure-Rust implementation of Keccak256 with one implemented +//! in assembly; see [the `keccak-asm` crate](https://github.com/DaniPopes/keccak-asm) for more +//! details and supported targets +//! - `min-error-logs`: Disables all logs below `error` level. +//! - `min-warn-logs`: Disables all logs below `warn` level. +//! - `min-info-logs`: Disables all logs below `info` level. This can speed up the node, since fewer +//! calls to the logging component is made. +//! - `min-debug-logs`: Disables all logs below `debug` level. +//! - `min-trace-logs`: Disables all logs below `trace` level. +#![doc( + html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-docs.png", + html_favicon_url = "https://avatars0.githubusercontent.com/u/97369466?s=256", + issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/" +)] +#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] +// The `optimism` feature must be enabled to use this crate. +#![cfg(feature = "optimism")] + +/// Re-exported from `reth_optimism_cli`. +pub mod cli { + pub use reth_optimism_cli::*; +} + +/// Re-exported from `reth_optimism_chainspec`. +pub mod chainspec { + pub use reth_optimism_chainspec::*; +} + +/// Re-exported from `reth_optimism_consensus`. +pub mod consensus { + pub use reth_optimism_consensus::*; +} + +/// Re-exported from `reth_optimism_evm`. +pub mod evm { + pub use reth_optimism_evm::*; +} + +/// Re-exported from `reth_optimism_forks`. +pub mod forks { + pub use reth_optimism_forks::*; +} + +/// Re-exported from `reth_optimism_node`. +pub mod node { + pub use reth_optimism_node::*; +} + +/// Re-exported from `reth_optimism_payload_builder`. +pub mod payload { + pub use reth_optimism_payload_builder::*; +} + +/// Re-exported from `reth_optimism_primitives`. +pub mod primitives { + pub use reth_optimism_primitives::*; +} + +/// Re-exported from `reth_optimism_rpc`. +pub mod rpc { + pub use reth_optimism_rpc::*; +} diff --git a/crates/optimism/bin/src/main.rs b/crates/optimism/bin/src/main.rs new file mode 100644 index 000000000000..6822a6a50ec4 --- /dev/null +++ b/crates/optimism/bin/src/main.rs @@ -0,0 +1,84 @@ +#![allow(missing_docs, rustdoc::missing_crate_level_docs)] +// The `optimism` feature must be enabled to use this crate. +#![cfg(feature = "optimism")] + +use clap::Parser; +use reth_node_builder::{engine_tree_config::TreeConfig, EngineNodeLauncher}; +use reth_optimism_cli::{chainspec::OpChainSpecParser, Cli}; +use reth_optimism_node::{args::RollupArgs, node::OptimismAddOns, OptimismNode}; +use reth_optimism_rpc::SequencerClient; +use reth_provider::providers::BlockchainProvider2; + +use tracing as _; + +#[global_allocator] +static ALLOC: reth_cli_util::allocator::Allocator = reth_cli_util::allocator::new_allocator(); + +fn main() { + reth_cli_util::sigsegv_handler::install(); + + // Enable backtraces unless a RUST_BACKTRACE value has already been explicitly provided. + if std::env::var_os("RUST_BACKTRACE").is_none() { + std::env::set_var("RUST_BACKTRACE", "1"); + } + + if let Err(err) = + Cli::::parse().run(|builder, rollup_args| async move { + let enable_engine2 = rollup_args.experimental; + let sequencer_http_arg = rollup_args.sequencer_http.clone(); + match enable_engine2 { + true => { + let engine_tree_config = TreeConfig::default() + .with_persistence_threshold(rollup_args.persistence_threshold) + .with_memory_block_buffer_target(rollup_args.memory_block_buffer_target); + let handle = builder + .with_types_and_provider::>() + .with_components(OptimismNode::components(rollup_args)) + .with_add_ons(OptimismAddOns::new(sequencer_http_arg.clone())) + .extend_rpc_modules(move |ctx| { + // register sequencer tx forwarder + if let Some(sequencer_http) = sequencer_http_arg { + ctx.registry + .eth_api() + .set_sequencer_client(SequencerClient::new(sequencer_http))?; + } + + Ok(()) + }) + .launch_with_fn(|builder| { + let launcher = EngineNodeLauncher::new( + builder.task_executor().clone(), + builder.config().datadir(), + engine_tree_config, + ); + builder.launch_with(launcher) + }) + .await?; + + handle.node_exit_future.await + } + false => { + let handle = builder + .node(OptimismNode::new(rollup_args.clone())) + .extend_rpc_modules(move |ctx| { + // register sequencer tx forwarder + if let Some(sequencer_http) = sequencer_http_arg { + ctx.registry + .eth_api() + .set_sequencer_client(SequencerClient::new(sequencer_http))?; + } + + Ok(()) + }) + .launch() + .await?; + + handle.node_exit_future.await + } + } + }) + { + eprintln!("Error: {err:?}"); + std::process::exit(1); + } +} From b1feb6806f18bf89a51bfd130268b6e3ad61977e Mon Sep 17 00:00:00 2001 From: maskpp Date: Wed, 30 Oct 2024 17:02:11 +0800 Subject: [PATCH 03/24] sync book/sources/exex --- book/sources/exex/hello-world/src/bin/1.rs | 9 +++++ book/sources/exex/hello-world/src/bin/2.rs | 20 +++++++++++ book/sources/exex/hello-world/src/bin/3.rs | 39 ++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 book/sources/exex/hello-world/src/bin/1.rs create mode 100644 book/sources/exex/hello-world/src/bin/2.rs create mode 100644 book/sources/exex/hello-world/src/bin/3.rs diff --git a/book/sources/exex/hello-world/src/bin/1.rs b/book/sources/exex/hello-world/src/bin/1.rs new file mode 100644 index 000000000000..794609bfd7d1 --- /dev/null +++ b/book/sources/exex/hello-world/src/bin/1.rs @@ -0,0 +1,9 @@ +use reth_node_ethereum::EthereumNode; + +fn main() -> eyre::Result<()> { + reth::cli::Cli::parse_args().run(|builder, _| async move { + let handle = builder.node(EthereumNode::default()).launch().await?; + + handle.wait_for_node_exit().await + }) +} diff --git a/book/sources/exex/hello-world/src/bin/2.rs b/book/sources/exex/hello-world/src/bin/2.rs new file mode 100644 index 000000000000..6ab5fc49650e --- /dev/null +++ b/book/sources/exex/hello-world/src/bin/2.rs @@ -0,0 +1,20 @@ +use reth::api::FullNodeComponents; +use reth_exex::ExExContext; +use reth_node_ethereum::EthereumNode; + +async fn my_exex(mut _ctx: ExExContext) -> eyre::Result<()> { + #[allow(clippy::empty_loop)] + loop {} +} + +fn main() -> eyre::Result<()> { + reth::cli::Cli::parse_args().run(|builder, _| async move { + let handle = builder + .node(EthereumNode::default()) + .install_exex("my-exex", |ctx| async move { Ok(my_exex(ctx)) }) + .launch() + .await?; + + handle.wait_for_node_exit().await + }) +} diff --git a/book/sources/exex/hello-world/src/bin/3.rs b/book/sources/exex/hello-world/src/bin/3.rs new file mode 100644 index 000000000000..21bd25a56dbf --- /dev/null +++ b/book/sources/exex/hello-world/src/bin/3.rs @@ -0,0 +1,39 @@ +use futures_util::TryStreamExt; +use reth::api::FullNodeComponents; +use reth_exex::{ExExContext, ExExEvent, ExExNotification}; +use reth_node_ethereum::EthereumNode; +use reth_tracing::tracing::info; + +async fn my_exex(mut ctx: ExExContext) -> eyre::Result<()> { + while let Some(notification) = ctx.notifications.try_next().await? { + match ¬ification { + ExExNotification::ChainCommitted { new } => { + info!(committed_chain = ?new.range(), "Received commit"); + } + ExExNotification::ChainReorged { old, new } => { + info!(from_chain = ?old.range(), to_chain = ?new.range(), "Received reorg"); + } + ExExNotification::ChainReverted { old } => { + info!(reverted_chain = ?old.range(), "Received revert"); + } + }; + + if let Some(committed_chain) = notification.committed_chain() { + ctx.events.send(ExExEvent::FinishedHeight(committed_chain.tip().num_hash()))?; + } + } + + Ok(()) +} + +fn main() -> eyre::Result<()> { + reth::cli::Cli::parse_args().run(|builder, _| async move { + let handle = builder + .node(EthereumNode::default()) + .install_exex("my-exex", |ctx| async move { Ok(my_exex(ctx)) }) + .launch() + .await?; + + handle.wait_for_node_exit().await + }) +} From 7de2cdb6e16b98cd38a00ee865aab58669467e01 Mon Sep 17 00:00:00 2001 From: maskpp Date: Wed, 30 Oct 2024 20:25:46 +0800 Subject: [PATCH 04/24] disable optimism workflows --- .github/workflows/integration.yml | 7 +------ .github/workflows/lint.yml | 6 ------ .github/workflows/unit.yml | 10 +--------- .github/workflows/windows.yml | 2 -- 4 files changed, 2 insertions(+), 23 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 82bd5705a320..907b529322f0 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -25,7 +25,7 @@ jobs: RUST_BACKTRACE: 1 strategy: matrix: - network: ["ethereum", "optimism"] + network: ["ethereum"] timeout-minutes: 60 steps: - uses: actions/checkout@v4 @@ -43,11 +43,6 @@ jobs: --locked --features "asm-keccak ${{ matrix.network }}" \ --workspace --exclude ef-tests \ -E "kind(test)" - - if: matrix.network == 'optimism' - name: Run tests - run: | - cargo nextest run \ - --locked -p reth-optimism-node --features "optimism" integration-success: name: integration success diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fd71a8c636e4..f2999ccdac9f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -20,9 +20,6 @@ jobs: - type: ethereum args: --bin reth --workspace features: "ethereum asm-keccak jemalloc jemalloc-prof min-error-logs min-warn-logs min-info-logs min-debug-logs min-trace-logs" - - type: optimism - args: --bin op-reth --workspace - features: "optimism asm-keccak jemalloc jemalloc-prof min-error-logs min-warn-logs min-info-logs min-debug-logs min-trace-logs" - type: book args: --manifest-path book/sources/Cargo.toml --workspace --bins features: "" @@ -88,7 +85,6 @@ jobs: with: cache-on-failure: true - run: cargo hack check --workspace --exclude op-reth - - run: cargo check -p op-reth --features "optimism" msrv: name: MSRV / ${{ matrix.network }} @@ -99,8 +95,6 @@ jobs: include: - binary: reth network: ethereum - - binary: op-reth - network: optimism steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index defd9a6f535d..dddf5295ca61 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -34,14 +34,6 @@ jobs: args: --features "asm-keccak ethereum" --locked partition: 2 total_partitions: 2 - - type: optimism - args: --features "asm-keccak optimism" --locked - partition: 1 - total_partitions: 2 - - type: optimism - args: --features "asm-keccak optimism" --locked - partition: 2 - total_partitions: 2 - type: book args: --manifest-path book/sources/Cargo.toml partition: 1 @@ -99,7 +91,7 @@ jobs: timeout-minutes: 30 strategy: matrix: - network: ["ethereum", "optimism"] + network: ["ethereum"] steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 03c491b368a6..67d40893e670 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -43,5 +43,3 @@ jobs: cache-on-failure: true - name: mingw-w64 run: sudo apt-get install -y mingw-w64 - - name: Check OP-Reth - run: cargo check -p op-reth --features optimism --target x86_64-pc-windows-gnu From 569c97241b598e02f08684cc73546ecbf17f8278 Mon Sep 17 00:00:00 2001 From: maskpp Date: Thu, 31 Oct 2024 09:58:29 +0800 Subject: [PATCH 05/24] change ci workflows runs-on ubuntu-latest os system --- .github/workflows/bench.yml | 5 +- .github/workflows/book.yml | 135 --------------- .github/workflows/deny.yml | 4 +- .github/workflows/docker.yml | 4 - .github/workflows/eth-sync.yml | 2 +- .github/workflows/hive.yml | 267 ------------------------------ .github/workflows/integration.yml | 5 +- .github/workflows/kurtosis.yml | 95 ----------- .github/workflows/lint.yml | 19 +-- .github/workflows/op-sync.yml | 55 ------ .github/workflows/stage.yml | 5 +- .github/workflows/unit.yml | 11 +- .github/workflows/windows.yml | 45 ----- 13 files changed, 14 insertions(+), 638 deletions(-) delete mode 100644 .github/workflows/book.yml delete mode 100644 .github/workflows/hive.yml delete mode 100644 .github/workflows/kurtosis.yml delete mode 100644 .github/workflows/op-sync.yml delete mode 100644 .github/workflows/windows.yml diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml index 8ddc97441c2a..13d3818c6c40 100644 --- a/.github/workflows/bench.yml +++ b/.github/workflows/bench.yml @@ -4,7 +4,7 @@ on: pull_request: merge_group: push: - branches: [main] + branches: [v1.1.0] env: CARGO_TERM_COLOR: always @@ -18,8 +18,7 @@ concurrency: name: bench jobs: iai: - runs-on: - group: Reth + runs-on: ubuntu-latest # Only run benchmarks in merge groups and on main if: github.event_name != 'pull_request' steps: diff --git a/.github/workflows/book.yml b/.github/workflows/book.yml deleted file mode 100644 index 56d5c427466e..000000000000 --- a/.github/workflows/book.yml +++ /dev/null @@ -1,135 +0,0 @@ -# Documentation and mdbook related jobs. - -name: book - -on: - push: - branches: [main] - pull_request: - branches: [main] - merge_group: - -jobs: - test: - runs-on: ubuntu-latest - name: test - timeout-minutes: 60 - - steps: - - uses: actions/checkout@v4 - - - name: Install mdbook - run: | - mkdir mdbook - curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.14/mdbook-v0.4.14-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook - echo $(pwd)/mdbook >> $GITHUB_PATH - - - name: Install mdbook-template - run: | - mkdir mdbook-template - curl -sSL https://github.com/sgoudham/mdbook-template/releases/latest/download/mdbook-template-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook-template - echo $(pwd)/mdbook-template >> $GITHUB_PATH - - - name: Run tests - run: mdbook test - - lint: - runs-on: ubuntu-latest - name: lint - timeout-minutes: 60 - - steps: - - uses: actions/checkout@v4 - - - name: Install mdbook-linkcheck - run: | - mkdir mdbook-linkcheck - curl -sSL -o mdbook-linkcheck.zip https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases/latest/download/mdbook-linkcheck.x86_64-unknown-linux-gnu.zip - unzip mdbook-linkcheck.zip -d ./mdbook-linkcheck - chmod +x $(pwd)/mdbook-linkcheck/mdbook-linkcheck - echo $(pwd)/mdbook-linkcheck >> $GITHUB_PATH - - - name: Run linkcheck - run: mdbook-linkcheck --standalone - - build: - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - - name: Install mdbook - run: | - mkdir mdbook - curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.14/mdbook-v0.4.14-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook - echo $(pwd)/mdbook >> $GITHUB_PATH - - - name: Install mdbook-template - run: | - mkdir mdbook-template - curl -sSL https://github.com/sgoudham/mdbook-template/releases/latest/download/mdbook-template-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook-template - echo $(pwd)/mdbook-template >> $GITHUB_PATH - - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - - name: Build book - run: mdbook build - - - name: Build docs - run: cargo docs --exclude "example-*" - env: - # Keep in sync with ./ci.yml:jobs.docs - RUSTDOCFLAGS: - --cfg docsrs --show-type-layout --generate-link-to-definition --enable-index-page - -Zunstable-options - - - name: Move docs to book folder - run: | - mv target/doc target/book/docs - - - name: Archive artifact - shell: sh - run: | - chmod -c -R +rX "target/book" | - while read line; do - echo "::warning title=Invalid file permissions automatically fixed::$line" - done - tar \ - --dereference --hard-dereference \ - --directory "target/book" \ - -cvf "$RUNNER_TEMP/artifact.tar" \ - --exclude=.git \ - --exclude=.github \ - . - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: github-pages - path: ${{ runner.temp }}/artifact.tar - retention-days: 1 - if-no-files-found: error - - deploy: - # Only deploy if a push to main - if: github.ref_name == 'main' && github.event_name == 'push' - runs-on: ubuntu-latest - needs: [test, lint, build] - - # Grant GITHUB_TOKEN the permissions required to make a Pages deployment - permissions: - pages: write - id-token: write - - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - - timeout-minutes: 60 - - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/.github/workflows/deny.yml b/.github/workflows/deny.yml index f85484ca2ec2..737c8afda0bb 100644 --- a/.github/workflows/deny.yml +++ b/.github/workflows/deny.yml @@ -4,10 +4,10 @@ name: deny on: push: - branches: [main] + branches: [v1.1.0] paths: [Cargo.lock] pull_request: - branches: [main] + branches: [v1.1.0] paths: [Cargo.lock] merge_group: diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 2af324a39eb7..e7f5c112b80f 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -42,7 +42,3 @@ jobs: run: make PROFILE=maxperf docker-build-push-latest - name: Build and push reth image run: make PROFILE=maxperf docker-build-push - - name: Build and push op-reth image, tag as "latest" - run: make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push-latest - - name: Build and push op-reth image - run: make IMAGE_NAME=$OP_IMAGE_NAME DOCKER_IMAGE_NAME=$OP_DOCKER_IMAGE_NAME PROFILE=maxperf op-docker-build-push diff --git a/.github/workflows/eth-sync.yml b/.github/workflows/eth-sync.yml index f473e29a57c6..78356054d09e 100644 --- a/.github/workflows/eth-sync.yml +++ b/.github/workflows/eth-sync.yml @@ -6,7 +6,7 @@ on: pull_request: merge_group: push: - branches: [ main ] + branches: [v1.1.0] env: CARGO_TERM_COLOR: always diff --git a/.github/workflows/hive.yml b/.github/workflows/hive.yml deleted file mode 100644 index 12224a951a42..000000000000 --- a/.github/workflows/hive.yml +++ /dev/null @@ -1,267 +0,0 @@ -# Runs `ethereum/hive` tests. - -name: hive - -on: - workflow_dispatch: - schedule: - # every day - - cron: "0 0 * * *" - -env: - CARGO_TERM_COLOR: always - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -jobs: - prepare-reth: - if: github.repository == 'paradigmxyz/reth' - timeout-minutes: 45 - runs-on: - group: Reth - steps: - - uses: actions/checkout@v4 - - run: mkdir artifacts - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: Build reth - run: | - cargo build --features asm-keccak --profile hivetests --bin reth --locked - mkdir dist && cp ./target/hivetests/reth ./dist/reth - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Build and export reth image - uses: docker/build-push-action@v6 - with: - context: . - file: .github/assets/hive/Dockerfile - tags: ghcr.io/paradigmxyz/reth:latest - outputs: type=docker,dest=./artifacts/reth_image.tar - cache-from: type=gha - cache-to: type=gha,mode=max - - - name: Upload reth image - uses: actions/upload-artifact@v4 - with: - name: artifacts - path: ./artifacts - - prepare-hive: - if: github.repository == 'paradigmxyz/reth' - timeout-minutes: 45 - runs-on: - group: Reth - steps: - - uses: actions/checkout@v4 - - name: Checkout hive tests - uses: actions/checkout@v4 - with: - repository: ethereum/hive - ref: master - path: hivetests - - - uses: actions/setup-go@v5 - with: - go-version: "^1.13.1" - - run: go version - - - name: Build hive assets - run: .github/assets/hive/build_simulators.sh - - - name: Upload hive assets - uses: actions/upload-artifact@v4 - with: - name: hive_assets - path: ./hive_assets - test: - timeout-minutes: 60 - strategy: - fail-fast: false - matrix: - engine: [regular, experimental] - # ethereum/rpc to be deprecated: - # https://github.com/ethereum/hive/pull/1117 - scenario: - - sim: smoke/genesis - - sim: smoke/network - - sim: ethereum/sync - - sim: devp2p - limit: discv4 - - sim: devp2p - limit: eth - include: - # status - - TestStatus - # get block headers - - TestGetBlockHeaders - - TestSimultaneousRequests - - TestSameRequestID - - TestZeroRequestID - # get block bodies - - TestGetBlockBodies - # malicious handshakes + status - - TestMaliciousHandshake - - TestMaliciousStatus - # test transactions - - TestLargeTxRequest - - TestTransaction - - TestInvalidTxs - - TestNewPooledTxs - - TestBlobViolations - - sim: ethereum/engine - limit: engine-exchange-capabilities - - sim: ethereum/engine - limit: engine-withdrawals - - sim: ethereum/engine - limit: engine-auth - - sim: ethereum/engine - limit: engine-api - - sim: ethereum/engine - limit: cancun - # eth_ rpc methods - - sim: ethereum/rpc-compat - include: - - eth_blockNumber - - eth_call - - eth_chainId - - eth_createAccessList - - eth_estimateGas - - eth_feeHistory - - eth_getBalance - - eth_getBlockBy - - eth_getBlockTransactionCountBy - - eth_getCode - - eth_getProof - - eth_getStorage - - eth_getTransactionBy - - eth_getTransactionCount - - eth_getTransactionReceipt - - eth_sendRawTransaction - - eth_syncing - # debug_ rpc methods - - debug_ - # Pyspec cancun jobs - # TODO: uncomment when https://github.com/ethereum/hive/issues/1147 is fixed - #- sim: pyspec - # include: [cancun/eip4844] - #- sim: pyspec - # include: [cancun/eip4788] - #- sim: pyspec - # include: [cancun/eip6780] - #- sim: pyspec - # include: [cancun/eip5656] - #- sim: pyspec - # include: [cancun/eip1153] - #- sim: pyspec - # include: [cancun/eip7516] - # Pyspec shanghai jobs - #- sim: pyspec - # include: [shanghai/eip3651] - #- sim: pyspec - # include: [shanghai/eip3855] - #- sim: pyspec - # include: [shanghai/eip3860] - #- sim: pyspec - # include: [shanghai/eip4895] - # Pyspec merge and earlier jobs - #- sim: pyspec - # include: [merge/] - #- sim: pyspec - # include: [berlin/] - #- sim: pyspec - # include: [istanbul/] - #- sim: pyspec - # include: [homestead/] - #- sim: pyspec - # include: [frontier/] - needs: - - prepare-reth - - prepare-hive - name: run ${{ matrix.engine }} - ${{ matrix.scenario.sim }}${{ matrix.scenario.limit && format(' - {0}', matrix.scenario.limit) }} - runs-on: - group: Reth - permissions: - issues: write - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Download hive assets - uses: actions/download-artifact@v4 - with: - name: hive_assets - path: /tmp - - - name: Download reth image - uses: actions/download-artifact@v4 - with: - name: artifacts - path: /tmp - - - name: Load Docker images - run: .github/assets/hive/load_images.sh - - - name: Move hive binary - run: | - mv /tmp/hive /usr/local/bin - chmod +x /usr/local/bin/hive - - - name: Checkout hive tests - uses: actions/checkout@v4 - with: - repository: ethereum/hive - ref: master - path: hivetests - - - name: Modify client for experimental engine - if: matrix.engine == 'experimental' - run: | - sed -ie 's/RUST_LOG=info $reth node $FLAGS/RUST_LOG=info $reth node --engine.experimental $FLAGS/' hivetests/clients/reth/reth.sh - - - name: Run simulator - run: | - LIMIT="${{ matrix.scenario.limit }}" - TESTS="${{ join(matrix.scenario.include, '|') }}" - if [ -n "$LIMIT" ] && [ -n "$TESTS" ]; then - FILTER="$LIMIT/$TESTS" - elif [ -n "$LIMIT" ]; then - FILTER="$LIMIT" - elif [ -n "$TESTS" ]; then - FILTER="/$TESTS" - else - FILTER="/" - fi - echo "filter: $FILTER" - .github/assets/hive/run_simulator.sh "${{ matrix.scenario.sim }}" "$FILTER" - - - name: Parse hive output - run: | - FAILURE_FILE="${{ matrix.engine == 'experimental' && '.github/assets/hive/expected_failures_experimental.yaml' || '.github/assets/hive/expected_failures.yaml' }}" - find hivetests/workspace/logs -type f -name "*.json" ! -name "hive.json" | xargs -I {} python .github/assets/hive/parse.py {} --exclusion $FAILURE_FILE - - - name: Print simulator output - if: ${{ failure() }} - run: | - cat hivetests/workspace/logs/*simulator*.log - - - name: Print reth client logs - if: ${{ failure() }} - run: | - cat hivetests/workspace/logs/reth/client-*.log - notify-on-error: - needs: test - if: failure() - runs-on: - group: Reth - steps: - - name: Slack Webhook Action - uses: rtCamp/action-slack-notify@v2 - env: - SLACK_COLOR: ${{ job.status }} - SLACK_MESSAGE: "Failed run: https://github.com/paradigmxyz/reth/actions/runs/${{ github.run_id }}" - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 907b529322f0..e7f20f132d9c 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -6,7 +6,7 @@ on: pull_request: merge_group: push: - branches: [main] + branches: [v1.1.0] env: CARGO_TERM_COLOR: always @@ -19,8 +19,7 @@ concurrency: jobs: test: name: test / ${{ matrix.network }} - runs-on: - group: Reth + runs-on: ubuntu-latest env: RUST_BACKTRACE: 1 strategy: diff --git a/.github/workflows/kurtosis.yml b/.github/workflows/kurtosis.yml deleted file mode 100644 index 74d26dbd3eea..000000000000 --- a/.github/workflows/kurtosis.yml +++ /dev/null @@ -1,95 +0,0 @@ -# Runs `assertoor` tests on a `kurtosis` testnet. - -name: kurtosis - -on: - workflow_dispatch: - schedule: - # every day - - cron: "0 1 * * *" - -env: - CARGO_TERM_COLOR: always - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -jobs: - prepare-reth: - if: github.repository == 'paradigmxyz/reth' - timeout-minutes: 45 - runs-on: - group: Reth - steps: - - uses: actions/checkout@v4 - - run: mkdir artifacts - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: Build reth - run: | - cargo build --features asm-keccak --profile hivetests --bin reth --locked - mkdir dist && cp ./target/hivetests/reth ./dist/reth - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Build and export reth image - uses: docker/build-push-action@v6 - with: - context: . - file: .github/assets/hive/Dockerfile - tags: ghcr.io/paradigmxyz/reth:kurtosis-ci - outputs: type=docker,dest=./artifacts/reth_image.tar - cache-from: type=gha - cache-to: type=gha,mode=max - - - name: Upload reth image - uses: actions/upload-artifact@v4 - with: - name: artifacts - path: ./artifacts - - test: - timeout-minutes: 60 - strategy: - fail-fast: false - name: run kurtosis - runs-on: - group: Reth - needs: - - prepare-reth - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Download reth image - uses: actions/download-artifact@v4 - with: - name: artifacts - path: /tmp - - - name: Load Docker image - run: | - docker load -i /tmp/reth_image.tar & - wait - docker image ls -a - - - name: Run kurtosis - uses: ethpandaops/kurtosis-assertoor-github-action@v1 - with: - ethereum_package_args: '.github/assets/kurtosis_network_params.yaml' - - notify-on-error: - needs: test - if: failure() - runs-on: - group: Reth - steps: - - name: Slack Webhook Action - uses: rtCamp/action-slack-notify@v2 - env: - SLACK_COLOR: ${{ job.status }} - SLACK_MESSAGE: "Failed run: https://github.com/paradigmxyz/reth/actions/runs/${{ github.run_id }}" - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f2999ccdac9f..4e2617ae01eb 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -4,7 +4,7 @@ on: pull_request: merge_group: push: - branches: [main] + branches: [v1.1.0] env: CARGO_TERM_COLOR: always @@ -58,22 +58,6 @@ jobs: env: RUSTFLAGS: -D warnings - wasm: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - target: wasm32-wasip1 - - uses: taiki-e/install-action@cargo-hack - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - uses: dcarbone/install-jq-action@v2 - - name: Run Wasm checks - run: .github/assets/check_wasm.sh - crate-checks: runs-on: ubuntu-latest timeout-minutes: 30 @@ -222,7 +206,6 @@ jobs: needs: - clippy-binaries - clippy - - wasm - crate-checks - docs - fmt diff --git a/.github/workflows/op-sync.yml b/.github/workflows/op-sync.yml deleted file mode 100644 index 2a223391d711..000000000000 --- a/.github/workflows/op-sync.yml +++ /dev/null @@ -1,55 +0,0 @@ -# Runs a base mainnet sync test. - -name: op-sync-test - -on: - pull_request: - merge_group: - push: - branches: [ main ] - -env: - CARGO_TERM_COLOR: always - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -jobs: - sync: - name: op sync / 10k blocks - # Only run sync tests in merge groups - if: github.event_name == 'merge_group' - runs-on: - group: Reth - env: - RUST_LOG: info,sync=error - RUST_BACKTRACE: 1 - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: Build op-reth - run: make install-op - - name: Run sync - # https://basescan.org/block/10000 - run: | - op-reth node \ - --chain base \ - --debug.tip 0xbb9b85352c7ebca6ba8efc63bd66cecd038c92ec8ebd02e153a3e0b197e672b7 \ - --debug.max-block 10000 \ - --debug.terminate - - name: Verify the target block hash - run: | - op-reth db --chain base get static-file headers 10000 \ - | grep 0xbb9b85352c7ebca6ba8efc63bd66cecd038c92ec8ebd02e153a3e0b197e672b7 - - name: Run stage unwind for 100 blocks - run: | - op-reth stage --chain base unwind num-blocks 100 - - name: Run stage unwind to block hash - run: | - op-reth stage --chain base unwind to-block 0x118a6e922a8c6cab221fc5adfe5056d2b72d58c6580e9c5629de55299e2cf8de - diff --git a/.github/workflows/stage.yml b/.github/workflows/stage.yml index 60ffa8f73d72..8a6dc71df910 100644 --- a/.github/workflows/stage.yml +++ b/.github/workflows/stage.yml @@ -6,7 +6,7 @@ on: pull_request: merge_group: push: - branches: [ main ] + branches: [v1.1.0] env: CARGO_TERM_COLOR: always @@ -22,8 +22,7 @@ jobs: name: stage-run-test # Only run stage commands test in merge groups if: github.event_name == 'merge_group' - runs-on: - group: Reth + runs-on: ubuntu-latest env: RUST_LOG: info,sync=error RUST_BACKTRACE: 1 diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index dddf5295ca61..bc916bf3bcd0 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -6,7 +6,7 @@ on: pull_request: merge_group: push: - branches: [main] + branches: [v1.1.0] env: CARGO_TERM_COLOR: always @@ -19,8 +19,7 @@ concurrency: jobs: test: name: test / ${{ matrix.type }} (${{ matrix.partition }}/${{ matrix.total_partitions }}) - runs-on: - group: Reth + runs-on: ubuntu-latest env: RUST_BACKTRACE: 1 strategy: @@ -59,8 +58,7 @@ jobs: state: name: Ethereum state tests - runs-on: - group: Reth + runs-on: ubuntu-latest env: RUST_LOG: info,sync=error RUST_BACKTRACE: 1 @@ -84,8 +82,7 @@ jobs: doc: name: doc tests (${{ matrix.network }}) - runs-on: - group: Reth + runs-on: ubuntu-latest env: RUST_BACKTRACE: 1 timeout-minutes: 30 diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml deleted file mode 100644 index 67d40893e670..000000000000 --- a/.github/workflows/windows.yml +++ /dev/null @@ -1,45 +0,0 @@ -# Windows build - -name: windows - -on: - push: - branches: [main] - pull_request: - branches: [main] - merge_group: - -jobs: - check-reth: - runs-on: ubuntu-20.04 - timeout-minutes: 60 - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - target: x86_64-pc-windows-gnu - - uses: taiki-e/install-action@cross - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: mingw-w64 - run: sudo apt-get install -y mingw-w64 - - name: Check Reth - run: cargo check --target x86_64-pc-windows-gnu - - check-op-reth: - runs-on: ubuntu-20.04 - timeout-minutes: 60 - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - target: x86_64-pc-windows-gnu - - uses: taiki-e/install-action@cross - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: mingw-w64 - run: sudo apt-get install -y mingw-w64 From 645cc4867ecfdad563d0322717d45f346faa6486 Mon Sep 17 00:00:00 2001 From: maskpp Date: Thu, 31 Oct 2024 10:17:12 +0800 Subject: [PATCH 06/24] disble doc and book workflows --- .github/workflows/lint.yml | 49 -------------------------------------- .github/workflows/unit.yml | 24 +------------------ 2 files changed, 1 insertion(+), 72 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4e2617ae01eb..5c4ad1653413 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -91,22 +91,6 @@ jobs: env: RUSTFLAGS: -D warnings - docs: - name: docs - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - run: cargo docs --document-private-items - env: - # Keep in sync with ./book.yml:jobs.build - # This should only add `-D warnings` - RUSTDOCFLAGS: --cfg docsrs --show-type-layout --generate-link-to-definition --enable-index-page -Zunstable-options -D warnings - fmt: name: fmt runs-on: ubuntu-latest @@ -134,26 +118,6 @@ jobs: - uses: taiki-e/install-action@cargo-udeps - run: cargo udeps --workspace --lib --examples --tests --benches --all-features --locked - book: - name: book - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - - uses: dtolnay/rust-toolchain@master - with: - toolchain: "1.81" # MSRV - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - run: cargo build --bin reth --workspace --features ethereum - env: - RUSTFLAGS: -D warnings - - run: ./book/cli/update.sh target/debug/reth - - name: Check book changes - run: git diff --exit-code - codespell: runs-on: ubuntu-latest timeout-minutes: 30 @@ -163,16 +127,6 @@ jobs: with: skip: "*.json" - grafana: - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - name: Check dashboard JSON with jq - uses: sergeysova/jq-action@v2 - with: - cmd: jq empty etc/grafana/dashboards/overview.json - no-test-deps: runs-on: ubuntu-latest timeout-minutes: 30 @@ -207,12 +161,9 @@ jobs: - clippy-binaries - clippy - crate-checks - - docs - fmt - udeps - - book - codespell - - grafana - no-test-deps - features timeout-minutes: 30 diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index bc916bf3bcd0..9acfc98bd2d6 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -33,10 +33,6 @@ jobs: args: --features "asm-keccak ethereum" --locked partition: 2 total_partitions: 2 - - type: book - args: --manifest-path book/sources/Cargo.toml - partition: 1 - total_partitions: 1 timeout-minutes: 30 steps: - uses: actions/checkout@v4 @@ -80,29 +76,11 @@ jobs: cache-on-failure: true - run: cargo nextest run --release -p ef-tests --features "asm-keccak ef-tests" - doc: - name: doc tests (${{ matrix.network }}) - runs-on: ubuntu-latest - env: - RUST_BACKTRACE: 1 - timeout-minutes: 30 - strategy: - matrix: - network: ["ethereum"] - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: Run doctests - run: cargo test --doc --workspace --features "${{ matrix.network }}" - unit-success: name: unit success runs-on: ubuntu-latest if: always() - needs: [test, state, doc] + needs: [test, state] timeout-minutes: 30 steps: - name: Decide whether the needed jobs succeeded or failed From fc3ba9d3d24f1fe1535b4e2f0b19a99037912a74 Mon Sep 17 00:00:00 2001 From: maskpp Date: Thu, 31 Oct 2024 10:21:58 +0800 Subject: [PATCH 07/24] Temporarily disable feature check workflow --- .github/workflows/lint.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5c4ad1653413..4105583072eb 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -165,7 +165,6 @@ jobs: - udeps - codespell - no-test-deps - - features timeout-minutes: 30 steps: - name: Decide whether the needed jobs succeeded or failed From ee0c13253c557e27aa6e4cfc83b00f17abf81239 Mon Sep 17 00:00:00 2001 From: maskpp Date: Thu, 31 Oct 2024 10:28:08 +0800 Subject: [PATCH 08/24] disable feature and msrv check workflow --- .github/workflows/lint.yml | 38 -------------------------------------- 1 file changed, 38 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4105583072eb..582470252d8f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -70,27 +70,6 @@ jobs: cache-on-failure: true - run: cargo hack check --workspace --exclude op-reth - msrv: - name: MSRV / ${{ matrix.network }} - runs-on: ubuntu-latest - timeout-minutes: 30 - strategy: - matrix: - include: - - binary: reth - network: ethereum - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@master - with: - toolchain: "1.81" # MSRV - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - run: cargo build --bin "${{ matrix.binary }}" --workspace --features "${{ matrix.network }}" - env: - RUSTFLAGS: -D warnings - fmt: name: fmt runs-on: ubuntu-latest @@ -136,23 +115,6 @@ jobs: - name: Ensure no arbitrary or proptest dependency on default build run: cargo tree --package reth -e=features,no-dev | grep -Eq "arbitrary|proptest" && exit 1 || exit 0 - # Checks that selected rates can compile with power set of features - features: - name: features - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@clippy - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - name: cargo install cargo-hack - uses: taiki-e/install-action@cargo-hack - - run: make check-features - env: - RUSTFLAGS: -D warnings - lint-success: name: lint success runs-on: ubuntu-latest From 639f4be255eda93f9950d052f6e4b83904817d06 Mon Sep 17 00:00:00 2001 From: maskpp Date: Fri, 1 Nov 2024 09:10:35 +0800 Subject: [PATCH 09/24] update BlockExecutionInput struct --- .../src/commands/debug_cmd/build_block.rs | 2 +- .../commands/debug_cmd/in_memory_merkle.rs | 2 +- bin/reth/src/commands/debug_cmd/merkle.rs | 2 +- crates/blockchain-tree/src/chain.rs | 4 +-- crates/consensus/auto-seal/src/lib.rs | 4 +-- crates/engine/tree/src/tree/mod.rs | 4 +-- crates/ethereum/evm/src/execute.rs | 8 +++--- crates/evm/execution-types/src/execute.rs | 28 +++++++++++++++---- crates/evm/src/execute.rs | 2 +- crates/evm/src/metrics.rs | 12 ++++++-- crates/exex/exex/src/backfill/job.rs | 8 +++--- crates/exex/exex/src/backfill/test_utils.rs | 18 ++++++++---- crates/optimism/evm/src/execute.rs | 8 +++--- crates/rpc/rpc/src/debug.rs | 2 +- crates/stages/stages/src/stages/execution.rs | 4 +-- 15 files changed, 71 insertions(+), 37 deletions(-) diff --git a/bin/reth/src/commands/debug_cmd/build_block.rs b/bin/reth/src/commands/debug_cmd/build_block.rs index 455d8356aff9..20edaf28753b 100644 --- a/bin/reth/src/commands/debug_cmd/build_block.rs +++ b/bin/reth/src/commands/debug_cmd/build_block.rs @@ -261,7 +261,7 @@ impl> Command { EthExecutorProvider::ethereum(provider_factory.chain_spec()).executor(db); let block_execution_output = - executor.execute((&block_with_senders.clone().unseal(), U256::MAX).into())?; + executor.execute((&mut block_with_senders.clone().unseal(), U256::MAX).into())?; let execution_outcome = ExecutionOutcome::from((block_execution_output, block.number)); debug!(target: "reth::cli", ?execution_outcome, "Executed block"); diff --git a/bin/reth/src/commands/debug_cmd/in_memory_merkle.rs b/bin/reth/src/commands/debug_cmd/in_memory_merkle.rs index 51851c0b0ad2..2305868ed147 100644 --- a/bin/reth/src/commands/debug_cmd/in_memory_merkle.rs +++ b/bin/reth/src/commands/debug_cmd/in_memory_merkle.rs @@ -142,7 +142,7 @@ impl> Command { provider.header_td_by_number(merkle_block_number)?.unwrap_or_default(); let block_execution_output = executor.execute( ( - &block + &mut block .clone() .unseal() .with_recovered_senders() diff --git a/bin/reth/src/commands/debug_cmd/merkle.rs b/bin/reth/src/commands/debug_cmd/merkle.rs index 8e02a52eaf07..c1229ec4c3f3 100644 --- a/bin/reth/src/commands/debug_cmd/merkle.rs +++ b/bin/reth/src/commands/debug_cmd/merkle.rs @@ -158,7 +158,7 @@ impl> Command { provider_rw.static_file_provider().clone(), ), )); - executor.execute_and_verify_one((&sealed_block.clone().unseal(), td).into())?; + executor.execute_and_verify_one((&mut sealed_block.clone().unseal(), td).into())?; let execution_outcome = executor.finalize(); let mut storage_writer = UnifiedStorageWriter::from_database(&provider_rw); diff --git a/crates/blockchain-tree/src/chain.rs b/crates/blockchain-tree/src/chain.rs index 393e525d5ae2..f2657f235035 100644 --- a/crates/blockchain-tree/src/chain.rs +++ b/crates/blockchain-tree/src/chain.rs @@ -206,9 +206,9 @@ impl AppendableChain { let db = StateProviderDatabase::new(&provider); let executor = externals.executor_factory.executor(db); let block_hash = block.hash(); - let block = block.unseal(); + let mut block = block.unseal(); - let state = executor.execute((&block, U256::MAX).into())?; + let state = executor.execute((&mut block, U256::MAX).into())?; externals.consensus.validate_block_post_execution( &block, PostExecutionInput::new(&state.receipts, &state.requests), diff --git a/crates/consensus/auto-seal/src/lib.rs b/crates/consensus/auto-seal/src/lib.rs index f1ef64c8c0fa..634762710c99 100644 --- a/crates/consensus/auto-seal/src/lib.rs +++ b/crates/consensus/auto-seal/src/lib.rs @@ -368,7 +368,7 @@ impl StorageInner { &chain_spec, ); - let block = Block { + let mut block = Block { header, body: BlockBody { transactions, @@ -388,7 +388,7 @@ impl StorageInner { // execute the block let block_execution_output = - executor.executor(&mut db).execute((&block, U256::ZERO).into())?; + executor.executor(&mut db).execute((&mut block, U256::ZERO).into())?; let gas_used = block_execution_output.gas_used; let execution_outcome = ExecutionOutcome::from((block_execution_output, block.number)); let hashed_state = HashedPostState::from_bundle_state(&execution_outcome.state().state); diff --git a/crates/engine/tree/src/tree/mod.rs b/crates/engine/tree/src/tree/mod.rs index 3eadbbd522db..9a0c0c7382c1 100644 --- a/crates/engine/tree/src/tree/mod.rs +++ b/crates/engine/tree/src/tree/mod.rs @@ -2174,10 +2174,10 @@ where let block_number = block.number; let block_hash = block.hash(); let sealed_block = Arc::new(block.block.clone()); - let block = block.unseal(); + let mut block = block.unseal(); let exec_time = Instant::now(); - let output = self.metrics.executor.execute_metered(executor, (&block, U256::MAX).into())?; + let output = self.metrics.executor.execute_metered(executor, (&mut block, U256::MAX).into())?; trace!(target: "engine::tree", elapsed=?exec_time.elapsed(), ?block_number, "Executed block"); if let Err(err) = self.consensus.validate_block_post_execution( diff --git a/crates/ethereum/evm/src/execute.rs b/crates/ethereum/evm/src/execute.rs index 6513cf75fad5..31411924364d 100644 --- a/crates/ethereum/evm/src/execute.rs +++ b/crates/ethereum/evm/src/execute.rs @@ -362,7 +362,7 @@ where /// /// Returns an error if the block could not be executed or failed verification. fn execute(mut self, input: Self::Input<'_>) -> Result { - let BlockExecutionInput { block, total_difficulty } = input; + let BlockExecutionInput { block, total_difficulty, .. } = input; let EthExecuteOutput { receipts, requests, gas_used } = self.execute_without_verification(block, total_difficulty)?; @@ -380,7 +380,7 @@ where where F: FnMut(&State), { - let BlockExecutionInput { block, total_difficulty } = input; + let BlockExecutionInput { block, total_difficulty, .. } = input; let EthExecuteOutput { receipts, requests, gas_used } = self.execute_without_verification(block, total_difficulty)?; @@ -398,7 +398,7 @@ where where F: OnStateHook, { - let BlockExecutionInput { block, total_difficulty } = input; + let BlockExecutionInput { block, total_difficulty, .. } = input; let EthExecuteOutput { receipts, requests, gas_used } = self .execute_without_verification_with_state_hook( block, @@ -442,7 +442,7 @@ where type Error = BlockExecutionError; fn execute_and_verify_one(&mut self, input: Self::Input<'_>) -> Result<(), Self::Error> { - let BlockExecutionInput { block, total_difficulty } = input; + let BlockExecutionInput { block, total_difficulty, .. } = input; if self.batch_record.first_block().is_none() { self.batch_record.set_first_block(block.number); diff --git a/crates/evm/execution-types/src/execute.rs b/crates/evm/execution-types/src/execute.rs index 0cf5d7050793..22ee3fd5b581 100644 --- a/crates/evm/execution-types/src/execute.rs +++ b/crates/evm/execution-types/src/execute.rs @@ -6,20 +6,38 @@ use revm::db::BundleState; #[derive(Debug)] pub struct BlockExecutionInput<'a, Block> { /// The block to execute. - pub block: &'a Block, + pub block: &'a mut Block, /// The total difficulty of the block. pub total_difficulty: U256, + /// Enable anchor transaction. + pub enable_anchor: bool, + /// Enable skip invalid transaction. + pub enable_skip: bool, + /// Enable build transaction lists. + pub enable_build: bool, + /// Max compressed bytes. + pub max_bytes_per_tx_list: u64, + /// Max length of transactions list. + pub max_transactions_lists: u64, } impl<'a, Block> BlockExecutionInput<'a, Block> { /// Creates a new input. - pub const fn new(block: &'a Block, total_difficulty: U256) -> Self { - Self { block, total_difficulty } + pub fn new(block: &'a mut Block, total_difficulty: U256) -> Self { + Self { + block, + total_difficulty, + enable_anchor: false, + enable_skip: false, + enable_build: false, + max_bytes_per_tx_list: 0, + max_transactions_lists: 0, + } } } -impl<'a, Block> From<(&'a Block, U256)> for BlockExecutionInput<'a, Block> { - fn from((block, total_difficulty): (&'a Block, U256)) -> Self { +impl<'a, Block> From<(&'a mut Block, U256)> for BlockExecutionInput<'a, Block> { + fn from((block, total_difficulty): (&'a mut Block, U256)) -> Self { Self::new(block, total_difficulty) } } diff --git a/crates/evm/src/execute.rs b/crates/evm/src/execute.rs index 145eca29c92b..28e97bf76d0d 100644 --- a/crates/evm/src/execute.rs +++ b/crates/evm/src/execute.rs @@ -257,6 +257,6 @@ mod tests { let provider = TestExecutorProvider; let db = CacheDB::>::default(); let executor = provider.executor(db); - let _ = executor.execute(BlockExecutionInput::new(&Default::default(), U256::ZERO)); + let _ = executor.execute(BlockExecutionInput::new(&mut Default::default(), U256::ZERO)); } } diff --git a/crates/evm/src/metrics.rs b/crates/evm/src/metrics.rs index fbb2b858b158..7a5be3511d85 100644 --- a/crates/evm/src/metrics.rs +++ b/crates/evm/src/metrics.rs @@ -78,7 +78,7 @@ impl ExecutorMetrics { Error = Error, >, { - let output = self.metered(input.block, || { + let output = self.metered(&input.block.clone(), || { executor.execute_with_state_closure(input, |state: &revm::db::State| { // Update the metrics for the number of accounts, storage slots and bytecodes // loaded @@ -120,6 +120,14 @@ impl ExecutorMetrics { where F: FnOnce(BlockExecutionInput<'_, BlockWithSenders>) -> R, { - self.metered(input.block, || f(input)) + self.metered(input.block, || f(BlockExecutionInput { + block: &mut input.block.clone(), + total_difficulty: Default::default(), + enable_anchor: false, + enable_skip: false, + enable_build: false, + max_bytes_per_tx_list: 0, + max_transactions_lists: 0, + })) } } diff --git a/crates/exex/exex/src/backfill/job.rs b/crates/exex/exex/src/backfill/job.rs index 77a7b50477b0..542ca165a837 100644 --- a/crates/exex/exex/src/backfill/job.rs +++ b/crates/exex/exex/src/backfill/job.rs @@ -111,10 +111,10 @@ where // Unseal the block for execution let (block, senders) = block.into_components(); let (unsealed_header, hash) = block.header.split(); - let block = + let mut block = Block { header: unsealed_header, body: block.body }.with_senders_unchecked(senders); - executor.execute_and_verify_one((&block, td).into())?; + executor.execute_and_verify_one((&mut block, td).into())?; execution_duration += execute_start.elapsed(); // TODO(alexey): report gas metrics using `block.header.gas_used` @@ -196,7 +196,7 @@ where .ok_or_else(|| ProviderError::HeaderNotFound(block_number.into()))?; // Fetch the block with senders for execution. - let block_with_senders = self + let mut block_with_senders = self .provider .block_with_senders(block_number.into(), TransactionVariant::WithHash)? .ok_or_else(|| ProviderError::HeaderNotFound(block_number.into()))?; @@ -208,7 +208,7 @@ where trace!(target: "exex::backfill", number = block_number, txs = block_with_senders.block.body.transactions.len(), "Executing block"); - let block_execution_output = executor.execute((&block_with_senders, td).into())?; + let block_execution_output = executor.execute((&mut block_with_senders, td).into())?; Ok((block_with_senders, block_execution_output)) } diff --git a/crates/exex/exex/src/backfill/test_utils.rs b/crates/exex/exex/src/backfill/test_utils.rs index 1c793975c755..f43ccdc31764 100644 --- a/crates/exex/exex/src/backfill/test_utils.rs +++ b/crates/exex/exex/src/backfill/test_utils.rs @@ -55,7 +55,7 @@ pub(crate) fn chain_spec(address: Address) -> Arc { pub(crate) fn execute_block_and_commit_to_database( provider_factory: &ProviderFactory, chain_spec: Arc, - block: &BlockWithSenders, + block: &mut BlockWithSenders, ) -> eyre::Result> where N: ProviderNodeTypes, @@ -68,7 +68,15 @@ where provider.tx_ref(), provider.static_file_provider(), ))) - .execute(BlockExecutionInput { block, total_difficulty: U256::ZERO })?; + .execute(BlockExecutionInput { + block, + total_difficulty: U256::ZERO, + enable_anchor: false, + enable_skip: false, + enable_build: false, + max_bytes_per_tx_list: 0, + max_transactions_lists: 0, + })?; block_execution_output.state.reverts.sort(); // Convert the block execution output to an execution outcome for committing to the database @@ -167,12 +175,12 @@ pub(crate) fn blocks_and_execution_outputs( where N: ProviderNodeTypes, { - let (block1, block2) = blocks(chain_spec.clone(), key_pair)?; + let (mut block1, mut block2) = blocks(chain_spec.clone(), key_pair)?; let block_output1 = - execute_block_and_commit_to_database(&provider_factory, chain_spec.clone(), &block1)?; + execute_block_and_commit_to_database(&provider_factory, chain_spec.clone(), &mut block1)?; let block_output2 = - execute_block_and_commit_to_database(&provider_factory, chain_spec, &block2)?; + execute_block_and_commit_to_database(&provider_factory, chain_spec, &mut block2)?; let block1 = block1.seal_slow(); let block2 = block2.seal_slow(); diff --git a/crates/optimism/evm/src/execute.rs b/crates/optimism/evm/src/execute.rs index 2491e99b5038..3a66c4cb9133 100644 --- a/crates/optimism/evm/src/execute.rs +++ b/crates/optimism/evm/src/execute.rs @@ -367,7 +367,7 @@ where /// /// State changes are committed to the database. fn execute(mut self, input: Self::Input<'_>) -> Result { - let BlockExecutionInput { block, total_difficulty } = input; + let BlockExecutionInput { block, total_difficulty, .. } = input; let (receipts, gas_used) = self.execute_without_verification(block, total_difficulty)?; // NOTE: we need to merge keep the reverts for the bundle retention @@ -389,7 +389,7 @@ where where F: FnMut(&State), { - let BlockExecutionInput { block, total_difficulty } = input; + let BlockExecutionInput { block, total_difficulty, .. } = input; let (receipts, gas_used) = self.execute_without_verification(block, total_difficulty)?; // NOTE: we need to merge keep the reverts for the bundle retention @@ -412,7 +412,7 @@ where where F: OnStateHook, { - let BlockExecutionInput { block, total_difficulty } = input; + let BlockExecutionInput { block, total_difficulty, .. } = input; let (receipts, gas_used) = self.execute_without_verification_with_state_hook( block, total_difficulty, @@ -464,7 +464,7 @@ where type Error = BlockExecutionError; fn execute_and_verify_one(&mut self, input: Self::Input<'_>) -> Result<(), Self::Error> { - let BlockExecutionInput { block, total_difficulty } = input; + let BlockExecutionInput { block, total_difficulty, .. } = input; if self.batch_record.first_block().is_none() { self.batch_record.set_first_block(block.number); diff --git a/crates/rpc/rpc/src/debug.rs b/crates/rpc/rpc/src/debug.rs index b26459c4f040..6bd73806f2d7 100644 --- a/crates/rpc/rpc/src/debug.rs +++ b/crates/rpc/rpc/src/debug.rs @@ -613,7 +613,7 @@ where let _ = block_executor .execute_with_state_closure( - (&block.clone().unseal(), block.difficulty).into(), + (&mut block.clone().unseal(), block.difficulty).into(), |statedb| { codes = statedb .cache diff --git a/crates/stages/stages/src/stages/execution.rs b/crates/stages/stages/src/stages/execution.rs index 7bb6ebc59e09..e43166cbf1e8 100644 --- a/crates/stages/stages/src/stages/execution.rs +++ b/crates/stages/stages/src/stages/execution.rs @@ -275,8 +275,8 @@ where // Execute the block let execute_start = Instant::now(); - self.metrics.metered_one((&block, td).into(), |input| { - let sealed = block.header.clone().seal_slow(); + self.metrics.metered_one((&mut block.clone(), td).into(), |input| { + let sealed = block.clone().header.clone().seal_slow(); let (header, seal) = sealed.into_parts(); executor.execute_and_verify_one(input).map_err(|error| StageError::Block { From 63fd5322ee60047a6fe82c6632b52448a6a3a4fa Mon Sep 17 00:00:00 2001 From: maskpp Date: Fri, 1 Nov 2024 10:55:45 +0800 Subject: [PATCH 10/24] update BlockExecutionOutput struct --- Cargo.lock | 459 ++++++++++++++-------- crates/ethereum/evm/src/execute.rs | 6 +- crates/evm/execution-types/Cargo.toml | 1 + crates/evm/execution-types/src/execute.rs | 14 + crates/evm/src/test_utils.rs | 1 + crates/optimism/evm/src/execute.rs | 3 + 6 files changed, 312 insertions(+), 172 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 37da7b57510b..88ad5ca0ac0a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -115,10 +115,10 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "705687d5bfd019fee57cf9e206b27b30a9a9617535d5590a02b171e813208f8e" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.4.2", "arbitrary", "auto_impl", "c-kzg", @@ -127,6 +127,22 @@ dependencies = [ "serde_with", ] +[[package]] +name = "alloy-consensus" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ed961a48297c732a5d97ee321aa8bb5009ecadbcb077d8bec90cb54e651629" +dependencies = [ + "alloy-eips 0.5.4", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.5.4", + "auto_impl", + "c-kzg", + "derive_more 1.0.0", + "serde", +] + [[package]] name = "alloy-dyn-abi" version = "0.8.5" @@ -173,6 +189,18 @@ dependencies = [ "serde_with", ] +[[package]] +name = "alloy-eip7702" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ffc577390ce50234e02d841214b3dc0bea6aaaae8e04bbf3cb82e9a45da9eb" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "derive_more 1.0.0", + "serde", +] + [[package]] name = "alloy-eips" version = "0.4.2" @@ -180,10 +208,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ffb906284a1e1f63c4607da2068c8197458a352d0b3e9796e67353d72a9be85" dependencies = [ "alloy-eip2930", - "alloy-eip7702", + "alloy-eip7702 0.1.1", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.4.2", "arbitrary", "c-kzg", "derive_more 1.0.0", @@ -192,6 +220,24 @@ dependencies = [ "sha2 0.10.8", ] +[[package]] +name = "alloy-eips" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b69e06cf9c37be824b9d26d6d101114fdde6af0c87de2828b414c05c4b3daa71" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702 0.3.2", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.5.4", + "c-kzg", + "derive_more 1.0.0", + "once_cell", + "serde", + "sha2 0.10.8", +] + [[package]] name = "alloy-genesis" version = "0.4.2" @@ -199,7 +245,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8429cf4554eed9b40feec7f4451113e76596086447550275e3def933faf47ce3" dependencies = [ "alloy-primitives", - "alloy-serde", + "alloy-serde 0.4.2", "serde", ] @@ -235,13 +281,13 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85fa23a6a9d612b52e402c995f2d582c25165ec03ac6edf64c861a76bc5b87cd" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-json-rpc", - "alloy-network-primitives", + "alloy-network-primitives 0.4.2", "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types-eth 0.4.2", + "alloy-serde 0.4.2", "alloy-signer", "alloy-sol-types", "async-trait", @@ -256,10 +302,23 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "801492711d4392b2ccf5fc0bc69e299fa1aab15167d74dcaa9aab96a54f684bd" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", + "alloy-primitives", + "alloy-serde 0.4.2", + "serde", +] + +[[package]] +name = "alloy-network-primitives" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514f70ee2a953db21631cd817b13a1571474ec77ddc03d47616d5e8203489fde" +dependencies = [ + "alloy-consensus 0.5.4", + "alloy-eips 0.5.4", "alloy-primitives", - "alloy-serde", + "alloy-serde 0.5.4", "serde", ] @@ -319,17 +378,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcfaa4ffec0af04e3555686b8aacbcdf7d13638133a0672749209069750f78a6" dependencies = [ "alloy-chains", - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-json-rpc", "alloy-network", - "alloy-network-primitives", + "alloy-network-primitives 0.4.2", "alloy-primitives", "alloy-pubsub", "alloy-rpc-client", "alloy-rpc-types-admin", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-engine 0.4.2", + "alloy-rpc-types-eth 0.4.2", "alloy-transport", "alloy-transport-http", "alloy-transport-ws", @@ -422,9 +481,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ffc534b7919e18f35e3aa1f507b6f3d9d92ec298463a9f6beaac112809d8d06" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types-engine 0.4.2", + "alloy-rpc-types-eth 0.4.2", + "alloy-serde 0.4.2", + "serde", +] + +[[package]] +name = "alloy-rpc-types" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eea9bf1abdd506f985a53533f5ac01296bcd6102c5e139bbc5d40bc468d2c916" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types-engine 0.5.4", + "alloy-rpc-types-eth 0.5.4", + "alloy-serde 0.5.4", "serde", ] @@ -447,7 +519,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d780adaa5d95b07ad92006b2feb68ecfa7e2015f7d5976ceaac4c906c73ebd07" dependencies = [ "alloy-primitives", - "alloy-serde", + "alloy-serde 0.4.2", "serde", ] @@ -457,9 +529,9 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a8dc5980fe30203d698627cddb5f0cedc57f900c8b5e1229c8b9448e37acb4a" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "serde", "serde_with", "thiserror", @@ -481,11 +553,11 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0285c4c09f838ab830048b780d7f4a4f460f309aa1194bb049843309524c64c" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.4.2", "derive_more 1.0.0", "jsonrpsee-types", "jsonwebtoken", @@ -494,18 +566,36 @@ dependencies = [ "strum", ] +[[package]] +name = "alloy-rpc-types-engine" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "886d22d41992287a235af2f3af4299b5ced2bcafb81eb835572ad35747476946" +dependencies = [ + "alloy-consensus 0.5.4", + "alloy-eips 0.5.4", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.5.4", + "derive_more 1.0.0", + "jsonwebtoken", + "rand 0.8.5", + "serde", + "strum", +] + [[package]] name = "alloy-rpc-types-eth" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413f4aa3ccf2c3e4234a047c5fa4727916d7daf25a89f9b765df0ba09784fd87" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", + "alloy-network-primitives 0.4.2", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.4.2", "alloy-sol-types", "derive_more 1.0.0", "itertools 0.13.0", @@ -514,15 +604,34 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-rpc-types-eth" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b034779a4850b4b03f5be5ea674a1cf7d746b2da762b34d1860ab45e48ca27" +dependencies = [ + "alloy-consensus 0.5.4", + "alloy-eips 0.5.4", + "alloy-network-primitives 0.5.4", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.5.4", + "alloy-sol-types", + "derive_more 1.0.0", + "itertools 0.13.0", + "serde", + "serde_json", +] + [[package]] name = "alloy-rpc-types-mev" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cec23ce56c869eec5f6b6fd6a8a92b5aa0cfaf8d7be3a96502e537554dc7430" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", - "alloy-serde", + "alloy-serde 0.4.2", "serde", "serde_json", ] @@ -534,8 +643,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "017cad3e5793c5613588c1f9732bcbad77e820ba7d0feaba3527749f856fdbc5" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types-eth 0.4.2", + "alloy-serde 0.4.2", "serde", "serde_json", "thiserror", @@ -548,8 +657,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b230e321c416be7f50530159392b4c41a45596d40d97e185575bcd0b545e521" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types-eth 0.4.2", + "alloy-serde 0.4.2", "serde", ] @@ -565,6 +674,17 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-serde" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028e72eaa9703e4882344983cfe7636ce06d8cce104a78ea62fd19b46659efc4" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", +] + [[package]] name = "alloy-signer" version = "0.4.2" @@ -585,7 +705,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "494e0a256f3e99f2426f994bcd1be312c02cb8f88260088dacb33a8b8936475f" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.4.2", "alloy-network", "alloy-primitives", "alloy-signer", @@ -2749,7 +2869,7 @@ version = "0.0.0" dependencies = [ "alloy-genesis", "alloy-primitives", - "alloy-rpc-types", + "alloy-rpc-types 0.4.2", "eyre", "reth", "reth-basic-payload-builder", @@ -2789,7 +2909,7 @@ name = "example-custom-inspector" version = "0.0.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types", + "alloy-rpc-types 0.4.2", "clap", "futures-util", "reth", @@ -2850,7 +2970,7 @@ name = "example-db-access" version = "0.0.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types", + "alloy-rpc-types 0.4.2", "eyre", "reth-chainspec", "reth-db", @@ -5178,11 +5298,11 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ea7162170c6f3cad8f67f4dd7108e3f78349fd553da5b8bebff1e7ef8f38896" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.4.2", "arbitrary", "derive_more 1.0.0", "serde", @@ -5196,8 +5316,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f3d31dfbbd8dd898c7512f8ce7d30103980485416f668566100b0ed0994b958" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-sol-types", "serde", @@ -5210,10 +5330,10 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d113b325527ba7da271a8793f1c14bdf7f035ce9e0611e668c36fc6812568c7f" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.4.2", "alloy-network", "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.4.2", "op-alloy-consensus", "op-alloy-rpc-types", ] @@ -5224,11 +5344,11 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "310873e4fbfc41986716c4fb6000a8b49d025d932d2c261af58271c434b05288" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.4.2", "derive_more 1.0.0", "op-alloy-consensus", "op-alloy-genesis", @@ -5241,12 +5361,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "323c65880e2561aa87f74f8af260fd15b9cc930c448c88a60ae95af86c88c634" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", + "alloy-network-primitives 0.4.2", "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types-eth 0.4.2", + "alloy-serde 0.4.2", "op-alloy-consensus", "serde", "serde_json", @@ -5259,8 +5379,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349e7b420f45d1a00216ec4c65fcf3f0057a841bc39732c405c85ae782b94121" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-serde", + "alloy-rpc-types-engine 0.4.2", + "alloy-serde 0.4.2", "derive_more 1.0.0", "op-alloy-protocol", "serde", @@ -6232,11 +6352,11 @@ dependencies = [ name = "reth" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types", + "alloy-rpc-types 0.4.2", "aquamarine", "backon", "clap", @@ -6306,7 +6426,7 @@ name = "reth-auto-seal-consensus" version = "1.1.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "futures-util", "reth-beacon-consensus", "reth-chainspec", @@ -6360,7 +6480,7 @@ version = "1.1.0" dependencies = [ "alloy-genesis", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "assert_matches", "futures", "itertools 0.13.0", @@ -6409,13 +6529,13 @@ dependencies = [ name = "reth-bench" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-json-rpc", "alloy-primitives", "alloy-provider", "alloy-pubsub", "alloy-rpc-client", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "alloy-transport", "alloy-transport-http", "alloy-transport-ipc", @@ -6444,8 +6564,8 @@ dependencies = [ name = "reth-blockchain-tree" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-primitives", "aquamarine", @@ -6494,8 +6614,8 @@ dependencies = [ name = "reth-chain-state" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-signer", "alloy-signer-local", @@ -6523,7 +6643,7 @@ name = "reth-chainspec" version = "1.1.0" dependencies = [ "alloy-chains", - "alloy-eips", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -6556,7 +6676,7 @@ name = "reth-cli-commands" version = "1.1.0" dependencies = [ "ahash", - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "arbitrary", "backon", @@ -6625,7 +6745,7 @@ dependencies = [ name = "reth-cli-util" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "cfg-if", "eyre", @@ -6642,8 +6762,8 @@ dependencies = [ name = "reth-codecs" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -6702,7 +6822,7 @@ dependencies = [ name = "reth-consensus-common" version = "1.1.0" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.4.2", "alloy-primitives", "mockall", "rand 0.8.5", @@ -6717,12 +6837,12 @@ dependencies = [ name = "reth-consensus-debug-client" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-provider", - "alloy-rpc-types", - "alloy-rpc-types-engine", + "alloy-rpc-types 0.4.2", + "alloy-rpc-types-engine 0.4.2", "auto_impl", "eyre", "futures", @@ -6930,7 +7050,7 @@ dependencies = [ name = "reth-downloaders" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", "assert_matches", @@ -6967,11 +7087,11 @@ dependencies = [ name = "reth-e2e-test-utils" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-network", "alloy-primitives", - "alloy-rpc-types", + "alloy-rpc-types 0.4.2", "alloy-signer", "alloy-signer-local", "eyre", @@ -7036,7 +7156,7 @@ name = "reth-engine-local" version = "1.1.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "eyre", "futures-util", "reth-beacon-consensus", @@ -7105,10 +7225,10 @@ dependencies = [ name = "reth-engine-tree" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "assert_matches", "futures", "metrics", @@ -7153,7 +7273,7 @@ name = "reth-engine-util" version = "1.1.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "eyre", "futures", "itertools 0.13.0", @@ -7194,7 +7314,7 @@ dependencies = [ name = "reth-eth-wire" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", "arbitrary", @@ -7230,8 +7350,8 @@ name = "reth-eth-wire-types" version = "1.1.0" dependencies = [ "alloy-chains", - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -7275,10 +7395,10 @@ dependencies = [ name = "reth-ethereum-engine-primitives" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "reth-chain-state", "reth-chainspec", "reth-engine-primitives", @@ -7347,7 +7467,7 @@ dependencies = [ name = "reth-evm" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "auto_impl", "futures-util", @@ -7369,8 +7489,8 @@ dependencies = [ name = "reth-evm-ethereum" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-primitives", "alloy-sol-types", @@ -7392,7 +7512,7 @@ dependencies = [ name = "reth-execution-errors" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", "derive_more 1.0.0", @@ -7407,8 +7527,9 @@ dependencies = [ name = "reth-execution-types" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", + "alloy-rpc-types 0.5.4", "arbitrary", "bincode", "rand 0.8.5", @@ -7424,8 +7545,8 @@ dependencies = [ name = "reth-exex" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-primitives", "eyre", @@ -7501,7 +7622,7 @@ dependencies = [ name = "reth-exex-types" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "arbitrary", "bincode", @@ -7633,8 +7754,8 @@ dependencies = [ name = "reth-network" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-node-bindings", "alloy-primitives", "alloy-provider", @@ -7715,7 +7836,7 @@ dependencies = [ name = "reth-network-p2p" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "auto_impl", "derive_more 1.0.0", @@ -7800,7 +7921,7 @@ name = "reth-node-builder" version = "1.1.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types", + "alloy-rpc-types 0.4.2", "aquamarine", "eyre", "fdlimit", @@ -7864,7 +7985,7 @@ name = "reth-node-core" version = "1.1.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "clap", "const_format", "derive_more 1.0.0", @@ -7950,7 +8071,7 @@ name = "reth-node-events" version = "1.1.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "futures", "humantime", "pin-project", @@ -8083,8 +8204,8 @@ dependencies = [ name = "reth-optimism-evm" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-primitives", "op-alloy-consensus", @@ -8120,10 +8241,10 @@ dependencies = [ name = "reth-optimism-node" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "async-trait", "clap", "eyre", @@ -8173,10 +8294,10 @@ dependencies = [ name = "reth-optimism-payload-builder" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "op-alloy-rpc-types-engine", "reth-basic-payload-builder", "reth-chain-state", @@ -8215,10 +8336,10 @@ dependencies = [ name = "reth-optimism-rpc" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", - "alloy-rpc-types", - "alloy-rpc-types-eth", + "alloy-rpc-types 0.4.2", + "alloy-rpc-types-eth 0.4.2", "derive_more 1.0.0", "jsonrpsee-types", "op-alloy-consensus", @@ -8266,7 +8387,7 @@ name = "reth-payload-builder" version = "1.1.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types", + "alloy-rpc-types 0.4.2", "async-trait", "futures-util", "metrics", @@ -8287,7 +8408,7 @@ name = "reth-payload-primitives" version = "1.1.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types", + "alloy-rpc-types 0.4.2", "async-trait", "op-alloy-rpc-types-engine", "pin-project", @@ -8307,7 +8428,7 @@ dependencies = [ name = "reth-payload-validator" version = "1.1.0" dependencies = [ - "alloy-rpc-types", + "alloy-rpc-types 0.4.2", "reth-chainspec", "reth-primitives", "reth-rpc-types-compat", @@ -8317,13 +8438,13 @@ dependencies = [ name = "reth-primitives" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types", - "alloy-serde", + "alloy-rpc-types 0.4.2", + "alloy-serde 0.4.2", "arbitrary", "assert_matches", "bincode", @@ -8362,8 +8483,8 @@ dependencies = [ name = "reth-primitives-traits" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -8390,10 +8511,10 @@ dependencies = [ name = "reth-provider" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "assert_matches", "auto_impl", "dashmap 6.1.0", @@ -8506,21 +8627,21 @@ dependencies = [ name = "reth-rpc" version = "1.1.0" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.4.2", "alloy-dyn-abi", - "alloy-eips", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-network", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types", + "alloy-rpc-types 0.4.2", "alloy-rpc-types-admin", "alloy-rpc-types-debug", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.4.2", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde", + "alloy-serde 0.4.2", "alloy-signer", "alloy-signer-local", "async-trait", @@ -8574,20 +8695,20 @@ dependencies = [ name = "reth-rpc-api" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-json-rpc", "alloy-primitives", - "alloy-rpc-types", + "alloy-rpc-types 0.4.2", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", "alloy-rpc-types-beacon", "alloy-rpc-types-debug", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types-engine 0.4.2", + "alloy-rpc-types-eth 0.4.2", "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde", + "alloy-serde 0.4.2", "jsonrpsee", "reth-engine-primitives", "reth-network-peers", @@ -8601,8 +8722,8 @@ name = "reth-rpc-api-testing-util" version = "1.1.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types", - "alloy-rpc-types-eth", + "alloy-rpc-types 0.4.2", + "alloy-rpc-types-eth 0.4.2", "alloy-rpc-types-trace", "futures", "jsonrpsee", @@ -8621,11 +8742,11 @@ version = "1.1.0" dependencies = [ "alloy-network", "alloy-primitives", - "alloy-rpc-types", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", + "alloy-rpc-types 0.4.2", + "alloy-rpc-types-engine 0.4.2", + "alloy-rpc-types-eth 0.4.2", "alloy-rpc-types-trace", - "alloy-serde", + "alloy-serde 0.4.2", "clap", "http", "jsonrpsee", @@ -8671,10 +8792,10 @@ dependencies = [ name = "reth-rpc-engine-api" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "assert_matches", "async-trait", "jsonrpsee-core", @@ -8708,12 +8829,12 @@ name = "reth-rpc-eth-api" version = "1.1.0" dependencies = [ "alloy-dyn-abi", - "alloy-eips", + "alloy-eips 0.4.2", "alloy-json-rpc", "alloy-network", "alloy-primitives", - "alloy-rpc-types", - "alloy-rpc-types-eth", + "alloy-rpc-types 0.4.2", + "alloy-rpc-types-eth 0.4.2", "alloy-rpc-types-mev", "async-trait", "auto_impl", @@ -8747,12 +8868,12 @@ dependencies = [ name = "reth-rpc-eth-types" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-primitives", - "alloy-rpc-types", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types 0.4.2", + "alloy-rpc-types-eth 0.4.2", + "alloy-serde 0.4.2", "alloy-sol-types", "derive_more 1.0.0", "futures", @@ -8790,7 +8911,7 @@ dependencies = [ name = "reth-rpc-layer" version = "1.1.0" dependencies = [ - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "http", "jsonrpsee", "jsonrpsee-http-client", @@ -8806,7 +8927,7 @@ name = "reth-rpc-server-types" version = "1.1.0" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", + "alloy-rpc-types-engine 0.4.2", "jsonrpsee-core", "jsonrpsee-types", "reth-errors", @@ -8820,13 +8941,13 @@ dependencies = [ name = "reth-rpc-types-compat" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types 0.4.2", + "alloy-rpc-types-engine 0.4.2", + "alloy-rpc-types-eth 0.4.2", + "alloy-serde 0.4.2", "reth-primitives", "reth-trie-common", "serde_json", @@ -8967,7 +9088,7 @@ dependencies = [ name = "reth-storage-api" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "auto_impl", "reth-chainspec", @@ -8985,7 +9106,7 @@ dependencies = [ name = "reth-storage-errors" version = "1.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", "derive_more 1.0.0", @@ -9014,8 +9135,8 @@ dependencies = [ name = "reth-testing-utils" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-genesis", "alloy-primitives", "rand 0.8.5", @@ -9050,8 +9171,8 @@ dependencies = [ name = "reth-transaction-pool" version = "1.1.0" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.4.2", + "alloy-eips 0.4.2", "alloy-primitives", "alloy-rlp", "aquamarine", @@ -9126,7 +9247,7 @@ dependencies = [ name = "reth-trie-common" version = "1.1.0" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.4.2", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -9230,7 +9351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43c44af0bf801f48d25f7baf25cf72aff4c02d610f83b428175228162fef0246" dependencies = [ "alloy-primitives", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.4.2", "alloy-rpc-types-trace", "alloy-sol-types", "anstyle", @@ -9279,7 +9400,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f1525851a03aff9a9d6a1d018b414d76252d6802ab54695b27093ecd7e7a101" dependencies = [ "alloy-eip2930", - "alloy-eip7702", + "alloy-eip7702 0.1.1", "alloy-primitives", "auto_impl", "bitflags 2.6.0", diff --git a/crates/ethereum/evm/src/execute.rs b/crates/ethereum/evm/src/execute.rs index 31411924364d..62faa9198a07 100644 --- a/crates/ethereum/evm/src/execute.rs +++ b/crates/ethereum/evm/src/execute.rs @@ -369,7 +369,7 @@ where // NOTE: we need to merge keep the reverts for the bundle retention self.state.merge_transitions(BundleRetention::Reverts); - Ok(BlockExecutionOutput { state: self.state.take_bundle(), receipts, requests, gas_used }) + Ok(BlockExecutionOutput { state: self.state.take_bundle(), receipts, requests, gas_used, target_list: vec![] }) } fn execute_with_state_closure( @@ -387,7 +387,7 @@ where // NOTE: we need to merge keep the reverts for the bundle retention self.state.merge_transitions(BundleRetention::Reverts); witness(&self.state); - Ok(BlockExecutionOutput { state: self.state.take_bundle(), receipts, requests, gas_used }) + Ok(BlockExecutionOutput { state: self.state.take_bundle(), receipts, requests, gas_used, target_list: vec![] }) } fn execute_with_state_hook( @@ -408,7 +408,7 @@ where // NOTE: we need to merge keep the reverts for the bundle retention self.state.merge_transitions(BundleRetention::Reverts); - Ok(BlockExecutionOutput { state: self.state.take_bundle(), receipts, requests, gas_used }) + Ok(BlockExecutionOutput { state: self.state.take_bundle(), receipts, requests, gas_used, target_list: vec![] }) } } /// An executor for a batch of blocks. diff --git a/crates/evm/execution-types/Cargo.toml b/crates/evm/execution-types/Cargo.toml index 9bd6537326b1..4d09a204938e 100644 --- a/crates/evm/execution-types/Cargo.toml +++ b/crates/evm/execution-types/Cargo.toml @@ -23,6 +23,7 @@ alloy-eips.workspace = true serde = { workspace = true, optional = true } serde_with = { workspace = true, optional = true } +alloy-rpc-types = "0.5.4" [dev-dependencies] alloy-eips.workspace = true diff --git a/crates/evm/execution-types/src/execute.rs b/crates/evm/execution-types/src/execute.rs index 22ee3fd5b581..67d1fac9997c 100644 --- a/crates/evm/execution-types/src/execute.rs +++ b/crates/evm/execution-types/src/execute.rs @@ -1,4 +1,5 @@ use alloy_primitives::U256; +use alloy_rpc_types::Transaction; use reth_primitives::Request; use revm::db::BundleState; @@ -42,6 +43,17 @@ impl<'a, Block> From<(&'a mut Block, U256)> for BlockExecutionInput<'a, Block> { } } +/// Result of the trigger +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct TaskResult { + /// Transactions + pub txs: Vec, + /// Estimated gas used + pub estimated_gas_used: u64, + /// Bytes length + pub bytes_length: u64, +} + /// The output of an ethereum block. /// /// Contains the state changes, transaction receipts, and total gas used in the block. @@ -55,4 +67,6 @@ pub struct BlockExecutionOutput { pub requests: Vec, /// The total gas used by the block. pub gas_used: u64, + /// The target list. + pub target_list: Vec, } diff --git a/crates/evm/src/test_utils.rs b/crates/evm/src/test_utils.rs index fc620bb42c33..5116d40ed166 100644 --- a/crates/evm/src/test_utils.rs +++ b/crates/evm/src/test_utils.rs @@ -63,6 +63,7 @@ impl Executor for MockExecutorProvider { receipts: receipts.into_iter().flatten().flatten().collect(), requests: requests.into_iter().flatten().collect(), gas_used: 0, + target_list: vec![], }) } diff --git a/crates/optimism/evm/src/execute.rs b/crates/optimism/evm/src/execute.rs index 3a66c4cb9133..97f518745cb5 100644 --- a/crates/optimism/evm/src/execute.rs +++ b/crates/optimism/evm/src/execute.rs @@ -378,6 +378,7 @@ where receipts, requests: vec![], gas_used, + target_list: vec![], }) } @@ -401,6 +402,7 @@ where receipts, requests: vec![], gas_used, + target_list: vec![], }) } @@ -427,6 +429,7 @@ where receipts, requests: vec![], gas_used, + target_list: vec![], }) } } From 3326347974cefbb1983e7f00dce352e5736f2e8e Mon Sep 17 00:00:00 2001 From: maskpp Date: Fri, 1 Nov 2024 16:47:12 +0800 Subject: [PATCH 11/24] add version and debug params --- .../src/commands/debug_cmd/build_block.rs | 1 + .../src/commands/debug_cmd/replay_engine.rs | 3 +- crates/consensus/auto-seal/src/task.rs | 2 + crates/consensus/beacon/src/engine/handle.rs | 8 +++- crates/consensus/beacon/src/engine/message.rs | 13 +++++-- crates/consensus/beacon/src/engine/mod.rs | 37 +++++++++++++------ .../consensus/beacon/src/engine/test_utils.rs | 10 ++--- crates/engine/tree/Cargo.toml | 1 + crates/engine/tree/src/tree/mod.rs | 21 ++++++++--- crates/engine/util/src/engine_store.rs | 7 +++- crates/engine/util/src/reorg.rs | 6 ++- crates/engine/util/src/skip_fcu.rs | 16 +++++++- .../ethereum/engine-primitives/src/payload.rs | 14 ++++--- crates/ethereum/node/tests/e2e/utils.rs | 2 +- crates/optimism/node/tests/e2e/utils.rs | 2 +- crates/optimism/payload/src/payload.rs | 2 +- crates/payload/primitives/src/lib.rs | 3 +- crates/payload/primitives/src/traits.rs | 3 +- crates/rpc/rpc-engine-api/src/engine_api.rs | 4 +- examples/custom-engine-types/src/main.rs | 4 +- 20 files changed, 110 insertions(+), 49 deletions(-) diff --git a/bin/reth/src/commands/debug_cmd/build_block.rs b/bin/reth/src/commands/debug_cmd/build_block.rs index 20edaf28753b..eb69ec463f0f 100644 --- a/bin/reth/src/commands/debug_cmd/build_block.rs +++ b/bin/reth/src/commands/debug_cmd/build_block.rs @@ -227,6 +227,7 @@ impl> Command { reth_payload_builder::EthPayloadBuilderAttributes::try_new( best_block.hash(), payload_attrs, + Default::default(), )?, ); diff --git a/bin/reth/src/commands/debug_cmd/replay_engine.rs b/bin/reth/src/commands/debug_cmd/replay_engine.rs index cbffa1f0e076..5d8f2eedf7b2 100644 --- a/bin/reth/src/commands/debug_cmd/replay_engine.rs +++ b/bin/reth/src/commands/debug_cmd/replay_engine.rs @@ -30,6 +30,7 @@ use reth_static_file::StaticFileProducer; use reth_tasks::TaskExecutor; use reth_transaction_pool::noop::NoopTransactionPool; use std::{path::PathBuf, sync::Arc, time::Duration}; +use std::default::Default; use tokio::sync::oneshot; use tracing::*; @@ -167,7 +168,7 @@ impl> Command { match message { StoredEngineApiMessage::ForkchoiceUpdated { state, payload_attrs } => { let response = - beacon_engine_handle.fork_choice_updated(state, payload_attrs).await?; + beacon_engine_handle.fork_choice_updated(state, payload_attrs, Default::default()).await?; debug!(target: "reth::cli", ?response, "Received for forkchoice updated"); } StoredEngineApiMessage::NewPayload { payload, cancun_fields } => { diff --git a/crates/consensus/auto-seal/src/task.rs b/crates/consensus/auto-seal/src/task.rs index e4873615f1d0..2a582da6f1ca 100644 --- a/crates/consensus/auto-seal/src/task.rs +++ b/crates/consensus/auto-seal/src/task.rs @@ -161,6 +161,8 @@ where state, payload_attrs: None, tx, + version: Default::default(), + debug: false, }); debug!(target: "consensus::auto", ?state, "Sent fork choice update"); diff --git a/crates/consensus/beacon/src/engine/handle.rs b/crates/consensus/beacon/src/engine/handle.rs index 65b7c38df918..bffad33ed76d 100644 --- a/crates/consensus/beacon/src/engine/handle.rs +++ b/crates/consensus/beacon/src/engine/handle.rs @@ -12,6 +12,7 @@ use reth_engine_primitives::EngineTypes; use reth_errors::RethResult; use reth_tokio_util::{EventSender, EventStream}; use tokio::sync::{mpsc::UnboundedSender, oneshot}; +use reth_payload_primitives::EngineApiMessageVersion; /// A _shareable_ beacon consensus frontend type. Used to interact with the spawned beacon consensus /// engine task. @@ -60,9 +61,10 @@ where &self, state: ForkchoiceState, payload_attrs: Option, + version: EngineApiMessageVersion, ) -> Result { Ok(self - .send_fork_choice_updated(state, payload_attrs) + .send_fork_choice_updated(state, payload_attrs, version, false) .map_err(|_| BeaconForkChoiceUpdateError::EngineUnavailable) .await?? .await?) @@ -74,12 +76,16 @@ where &self, state: ForkchoiceState, payload_attrs: Option, + version: EngineApiMessageVersion, + debug: bool, ) -> oneshot::Receiver> { let (tx, rx) = oneshot::channel(); let _ = self.to_engine.send(BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx, + version, + debug, }); rx } diff --git a/crates/consensus/beacon/src/engine/message.rs b/crates/consensus/beacon/src/engine/message.rs index fdaad0cc4b0d..8c2ecc703686 100644 --- a/crates/consensus/beacon/src/engine/message.rs +++ b/crates/consensus/beacon/src/engine/message.rs @@ -6,7 +6,7 @@ use alloy_rpc_types_engine::{ use futures::{future::Either, FutureExt}; use reth_engine_primitives::EngineTypes; use reth_errors::RethResult; -use reth_payload_primitives::PayloadBuilderError; +use reth_payload_primitives::{EngineApiMessageVersion, PayloadBuilderError}; use std::{ fmt::Display, future::Future, @@ -157,6 +157,10 @@ pub enum BeaconEngineMessage { payload_attrs: Option, /// The sender for returning forkchoice updated result. tx: oneshot::Sender>, + /// The api version. + version: EngineApiMessageVersion, + /// Send from the debug api server. + debug: bool, }, /// Message with exchanged transition configuration. TransitionConfigurationExchanged, @@ -174,13 +178,14 @@ impl Display for BeaconEngineMessage { payload.block_hash() ) } - Self::ForkchoiceUpdated { state, payload_attrs, .. } => { + Self::ForkchoiceUpdated { state, payload_attrs, version, .. } => { // we don't want to print the entire payload attributes, because for OP this // includes all txs write!( f, - "ForkchoiceUpdated {{ state: {state:?}, has_payload_attributes: {} }}", - payload_attrs.is_some() + "ForkchoiceUpdated {{ state: {state:?}, has_payload_attributes: {}, version: {} }}", + payload_attrs.is_some(), + version, ) } Self::TransitionConfigurationExchanged => { diff --git a/crates/consensus/beacon/src/engine/mod.rs b/crates/consensus/beacon/src/engine/mod.rs index 5774d4da26b8..d0587df1e6a1 100644 --- a/crates/consensus/beacon/src/engine/mod.rs +++ b/crates/consensus/beacon/src/engine/mod.rs @@ -17,7 +17,7 @@ use reth_network_p2p::{ }; use reth_node_types::NodeTypesWithEngine; use reth_payload_builder::PayloadBuilderHandle; -use reth_payload_primitives::{PayloadAttributes, PayloadBuilder, PayloadBuilderAttributes}; +use reth_payload_primitives::{EngineApiMessageVersion, PayloadAttributes, PayloadBuilder, PayloadBuilderAttributes}; use reth_payload_validator::ExecutionPayloadValidator; use reth_primitives::{ constants::EPOCH_SLOTS, BlockNumHash, Head, Header, SealedBlock, SealedHeader, @@ -102,7 +102,7 @@ impl EngineNodeTypes for T where T: ProviderNodeTypes + NodeTypesWithEngine { /// - Optional payload attributes specific to the engine type. /// - Sender for the result of an oneshot channel, conveying the outcome of the fork choice update. type PendingForkchoiceUpdate = - (ForkchoiceState, Option, oneshot::Sender>); + (ForkchoiceState, Option, oneshot::Sender>, EngineApiMessageVersion, bool); /// The beacon consensus engine is the driver that switches between historical and live sync. /// @@ -397,6 +397,8 @@ where mut attrs: Option<::PayloadAttributes>, make_canonical_result: Result, elapsed: Duration, + version: EngineApiMessageVersion, + debug: bool, ) -> Result { match make_canonical_result { Ok(outcome) => { @@ -429,7 +431,12 @@ where } else if let Some(attrs) = attrs { // the CL requested to build a new payload on top of this new VALID head let head = outcome.into_header().unseal(); - self.process_payload_attributes(attrs, head, state) + self.process_payload_attributes(attrs, head, state, version) + } else if debug && should_update_head { + OnForkChoiceUpdated::valid(self.on_failed_canonical_forkchoice_update( + &state, + CanonicalError::OptimisticTargetRevert(outcome.header().number), + )?) } else { OnForkChoiceUpdated::valid(PayloadStatus::new( PayloadStatusEnum::Valid, @@ -505,6 +512,8 @@ where state: ForkchoiceState, attrs: Option<::PayloadAttributes>, tx: oneshot::Sender>, + version: EngineApiMessageVersion, + debug: bool, ) { self.metrics.forkchoice_updated_messages.increment(1); self.blockchain.on_forkchoice_update_received(&state); @@ -521,20 +530,20 @@ where // running, since it requires exclusive access to the // database let replaced_pending = - self.pending_forkchoice_update.replace((state, attrs, tx)); + self.pending_forkchoice_update.replace((state, attrs, tx, version, debug)); warn!( target: "consensus::engine", hook = %hook.name(), head_block_hash = ?state.head_block_hash, safe_block_hash = ?state.safe_block_hash, finalized_block_hash = ?state.finalized_block_hash, - replaced_pending = ?replaced_pending.map(|(state, _, _)| state), + replaced_pending = ?replaced_pending.map(|(state, _, _, _, _)| state), "Hook is in progress, delaying forkchoice update. \ This may affect the performance of your node as a validator." ); } else { self.set_blockchain_tree_action( - BlockchainTreeAction::MakeForkchoiceHeadCanonical { state, attrs, tx }, + BlockchainTreeAction::MakeForkchoiceHeadCanonical { state, attrs, tx, version, debug }, ); } } @@ -1165,6 +1174,7 @@ where attrs: ::PayloadAttributes, head: Header, state: ForkchoiceState, + version: EngineApiMessageVersion, ) -> OnForkChoiceUpdated { // 7. Client software MUST ensure that payloadAttributes.timestamp is greater than timestamp // of a block referenced by forkchoiceState.headBlockHash. If this condition isn't held @@ -1182,6 +1192,7 @@ where match <::PayloadBuilderAttributes as PayloadBuilderAttributes>::try_new( state.head_block_hash, attrs, + version, ) { Ok(attributes) => { // send the payload to the builder and return the receiver for the pending payload @@ -1604,12 +1615,12 @@ where action: BlockchainTreeAction, ) -> RethResult { match action { - BlockchainTreeAction::MakeForkchoiceHeadCanonical { state, attrs, tx } => { + BlockchainTreeAction::MakeForkchoiceHeadCanonical { state, attrs, tx, version, debug } => { let start = Instant::now(); let result = self.blockchain.make_canonical(state.head_block_hash); let elapsed = self.record_make_canonical_latency(start, &result); match self - .on_forkchoice_updated_make_canonical_result(state, attrs, result, elapsed) + .on_forkchoice_updated_make_canonical_result(state, attrs, result, elapsed, version, debug) { Ok(on_updated) => { trace!(target: "consensus::engine", status = ?on_updated, ?state, "Returning forkchoice status"); @@ -1845,9 +1856,9 @@ where // If the db write hook is no longer active and we have a pending forkchoice update, // process it first. if this.hooks.active_db_write_hook().is_none() { - if let Some((state, attrs, tx)) = this.pending_forkchoice_update.take() { + if let Some((state, attrs, tx, version, debug)) = this.pending_forkchoice_update.take() { this.set_blockchain_tree_action( - BlockchainTreeAction::MakeForkchoiceHeadCanonical { state, attrs, tx }, + BlockchainTreeAction::MakeForkchoiceHeadCanonical { state, attrs, tx, version, debug}, ); continue } @@ -1860,8 +1871,8 @@ where // sensitive, hence they are polled first. if let Poll::Ready(Some(msg)) = this.engine_message_stream.poll_next_unpin(cx) { match msg { - BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx } => { - this.on_forkchoice_updated(state, payload_attrs, tx); + BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx, version, debug } => { + this.on_forkchoice_updated(state, payload_attrs, tx, version, debug); } BeaconEngineMessage::NewPayload { payload, cancun_fields, tx } => { match this.on_new_payload(payload, cancun_fields) { @@ -1935,6 +1946,8 @@ enum BlockchainTreeAction { state: ForkchoiceState, attrs: Option, tx: oneshot::Sender>, + version: EngineApiMessageVersion, + debug: bool, }, InsertNewPayload { block: SealedBlock, diff --git a/crates/consensus/beacon/src/engine/test_utils.rs b/crates/consensus/beacon/src/engine/test_utils.rs index 633ae03d8ad9..f441aab66e6d 100644 --- a/crates/consensus/beacon/src/engine/test_utils.rs +++ b/crates/consensus/beacon/src/engine/test_utils.rs @@ -84,7 +84,7 @@ impl TestEnv { loop { let result = self.send_new_payload(payload.clone(), cancun_fields.clone()).await?; if !result.is_syncing() { - return Ok(result) + return Ok(result); } } } @@ -93,7 +93,7 @@ impl TestEnv { &self, state: ForkchoiceState, ) -> Result { - self.engine_handle.fork_choice_updated(state, None).await + self.engine_handle.fork_choice_updated(state, None, Default::default()).await } /// Sends the `ForkchoiceUpdated` message to the consensus engine and retries if the engine @@ -103,9 +103,9 @@ impl TestEnv { state: ForkchoiceState, ) -> Result { loop { - let result = self.engine_handle.fork_choice_updated(state, None).await?; + let result = self.engine_handle.fork_choice_updated(state, None, Default::default()).await?; if !result.is_syncing() { - return Ok(result) + return Ok(result); } } } @@ -430,7 +430,7 @@ where self.base_config.pipeline_run_threshold.unwrap_or(MIN_BLOCKS_FOR_PIPELINE_RUN), hooks, ) - .expect("failed to create consensus engine"); + .expect("failed to create consensus engine"); if let Some(max_block) = self.base_config.max_block { engine.sync.set_max_block(max_block) diff --git a/crates/engine/tree/Cargo.toml b/crates/engine/tree/Cargo.toml index 91c9cd5422d0..92bf2d58243e 100644 --- a/crates/engine/tree/Cargo.toml +++ b/crates/engine/tree/Cargo.toml @@ -72,6 +72,7 @@ reth-stages = { workspace = true, features = ["test-utils"] } reth-static-file.workspace = true reth-tracing.workspace = true reth-chainspec.workspace = true +reth-payload-primitives.workspace = true alloy-rlp.workspace = true diff --git a/crates/engine/tree/src/tree/mod.rs b/crates/engine/tree/src/tree/mod.rs index 9a0c0c7382c1..8997b9f72d77 100644 --- a/crates/engine/tree/src/tree/mod.rs +++ b/crates/engine/tree/src/tree/mod.rs @@ -30,7 +30,7 @@ use reth_engine_primitives::EngineTypes; use reth_errors::{ConsensusError, ProviderResult}; use reth_evm::execute::BlockExecutorProvider; use reth_payload_builder::PayloadBuilderHandle; -use reth_payload_primitives::{PayloadAttributes, PayloadBuilder, PayloadBuilderAttributes}; +use reth_payload_primitives::{EngineApiMessageVersion, PayloadAttributes, PayloadBuilder, PayloadBuilderAttributes}; use reth_payload_validator::ExecutionPayloadValidator; use reth_primitives::{ Block, GotExpected, Header, SealedBlock, SealedBlockWithSenders, SealedHeader, @@ -971,6 +971,7 @@ where &mut self, state: ForkchoiceState, attrs: Option, + version: EngineApiMessageVersion, ) -> ProviderResult> { trace!(target: "engine::tree", ?attrs, "invoked forkchoice update"); self.metrics.engine.forkchoice_updated_messages.increment(1); @@ -1020,7 +1021,7 @@ where // to return an error ProviderError::HeaderNotFound(state.head_block_hash.into()) })?; - let updated = self.process_payload_attributes(attr, &tip, state); + let updated = self.process_payload_attributes(attr, &tip, state, version); return Ok(TreeOutcome::new(updated)) } @@ -1040,7 +1041,7 @@ where } if let Some(attr) = attrs { - let updated = self.process_payload_attributes(attr, &tip, state); + let updated = self.process_payload_attributes(attr, &tip, state, version); return Ok(TreeOutcome::new(updated)) } @@ -1056,7 +1057,7 @@ where if self.engine_kind.is_opstack() { if let Some(attr) = attrs { debug!(target: "engine::tree", head = canonical_header.number, "handling payload attributes for canonical head"); - let updated = self.process_payload_attributes(attr, &canonical_header, state); + let updated = self.process_payload_attributes(attr, &canonical_header, state, version); return Ok(TreeOutcome::new(updated)) } } @@ -1207,8 +1208,8 @@ where } EngineApiRequest::Beacon(request) => { match request { - BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx } => { - let mut output = self.on_forkchoice_updated(state, payload_attrs); + BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx, version, .. } => { + let mut output = self.on_forkchoice_updated(state, payload_attrs, version); if let Ok(res) = &mut output { // track last received forkchoice state @@ -2482,6 +2483,7 @@ where attrs: T::PayloadAttributes, head: &Header, state: ForkchoiceState, + version: EngineApiMessageVersion, ) -> OnForkChoiceUpdated { // 7. Client software MUST ensure that payloadAttributes.timestamp is greater than timestamp // of a block referenced by forkchoiceState.headBlockHash. If this condition isn't held @@ -2499,6 +2501,7 @@ where match ::try_new( state.head_block_hash, attrs, + version, ) { Ok(attributes) => { // send the payload to the builder and return the receiver for the pending payload @@ -2584,7 +2587,9 @@ mod tests { str::FromStr, sync::mpsc::{channel, Sender}, }; + use std::default::Default; use tokio::sync::mpsc::unbounded_channel; + use reth_db::mdbx::EnvironmentKind::Default; /// This is a test channel that allows you to `release` any value that is in the channel. /// @@ -2805,6 +2810,8 @@ mod tests { state: fcu_state, payload_attrs: None, tx, + version: Default::default(), + debug: false, } .into(), )) @@ -3094,6 +3101,8 @@ mod tests { }, payload_attrs: None, tx, + version: Default::default(), + debug: false, } .into(), )) diff --git a/crates/engine/util/src/engine_store.rs b/crates/engine/util/src/engine_store.rs index 1f3445199611..788f127cbb79 100644 --- a/crates/engine/util/src/engine_store.rs +++ b/crates/engine/util/src/engine_store.rs @@ -63,7 +63,12 @@ impl EngineMessageStore { fs::create_dir_all(&self.path)?; // ensure that store path had been created let timestamp = received_at.duration_since(SystemTime::UNIX_EPOCH).unwrap().as_millis(); match msg { - BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx: _tx } => { + BeaconEngineMessage::ForkchoiceUpdated { + state, + payload_attrs, + tx: _tx, + .. + } => { let filename = format!("{}-fcu-{}.json", timestamp, state.head_block_hash); fs::write( self.path.join(filename), diff --git a/crates/engine/util/src/reorg.rs b/crates/engine/util/src/reorg.rs index bd7b1b95642a..450131cf1ef0 100644 --- a/crates/engine/util/src/reorg.rs +++ b/crates/engine/util/src/reorg.rs @@ -208,18 +208,20 @@ where state: reorg_forkchoice_state, payload_attrs: None, tx: reorg_fcu_tx, + version: Default::default(), + debug: false, }, ]); *this.state = EngineReorgState::Reorg { queue }; continue } - (Some(BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx }), _) => { + (Some(BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx, version, debug }), _) => { // Record last forkchoice state forwarded to the engine. // We do not care if it's valid since engine should be able to handle // reorgs that rely on invalid forkchoice state. *this.last_forkchoice_state = Some(state); *this.forkchoice_states_forwarded += 1; - Some(BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx }) + Some(BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx , version, debug}) } (item, _) => item, }; diff --git a/crates/engine/util/src/skip_fcu.rs b/crates/engine/util/src/skip_fcu.rs index e110cecedc89..e7c7ded22386 100644 --- a/crates/engine/util/src/skip_fcu.rs +++ b/crates/engine/util/src/skip_fcu.rs @@ -45,7 +45,13 @@ where loop { let next = ready!(this.stream.poll_next_unpin(cx)); let item = match next { - Some(BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx }) => { + Some(BeaconEngineMessage::ForkchoiceUpdated { + state, + payload_attrs, + tx, + version, + debug, + }) => { if this.skipped < this.threshold { *this.skipped += 1; tracing::warn!(target: "engine::stream::skip_fcu", ?state, ?payload_attrs, threshold=this.threshold, skipped=this.skipped, "Skipping FCU"); @@ -53,7 +59,13 @@ where continue } *this.skipped = 0; - Some(BeaconEngineMessage::ForkchoiceUpdated { state, payload_attrs, tx }) + Some(BeaconEngineMessage::ForkchoiceUpdated { + state, + payload_attrs, + tx, + version, + debug, + }) } next => next, }; diff --git a/crates/ethereum/engine-primitives/src/payload.rs b/crates/ethereum/engine-primitives/src/payload.rs index ae370fdb9d7b..95683ea1eadf 100644 --- a/crates/ethereum/engine-primitives/src/payload.rs +++ b/crates/ethereum/engine-primitives/src/payload.rs @@ -8,7 +8,7 @@ use alloy_rpc_types_engine::{ ExecutionPayloadV1, PayloadAttributes, PayloadId, }; use reth_chain_state::ExecutedBlock; -use reth_payload_primitives::{BuiltPayload, PayloadBuilderAttributes}; +use reth_payload_primitives::{BuiltPayload, EngineApiMessageVersion, PayloadBuilderAttributes}; use reth_primitives::{SealedBlock, Withdrawals}; use reth_rpc_types_compat::engine::payload::{ block_to_payload_v1, block_to_payload_v3, block_to_payload_v4, @@ -193,8 +193,8 @@ impl EthPayloadBuilderAttributes { /// Creates a new payload builder for the given parent block and the attributes. /// /// Derives the unique [`PayloadId`] for the given parent and attributes - pub fn new(parent: B256, attributes: PayloadAttributes) -> Self { - let id = payload_id(&parent, &attributes); + pub fn new(parent: B256, attributes: PayloadAttributes, version: EngineApiMessageVersion) -> Self { + let id = payload_id(&parent, &attributes, version); Self { id, @@ -215,8 +215,8 @@ impl PayloadBuilderAttributes for EthPayloadBuilderAttributes { /// Creates a new payload builder for the given parent block and the attributes. /// /// Derives the unique [`PayloadId`] for the given parent and attributes - fn try_new(parent: B256, attributes: PayloadAttributes) -> Result { - Ok(Self::new(parent, attributes)) + fn try_new(parent: B256, attributes: PayloadAttributes, version: EngineApiMessageVersion) -> Result { + Ok(Self::new(parent, attributes, version)) } fn payload_id(&self) -> PayloadId { @@ -251,7 +251,7 @@ impl PayloadBuilderAttributes for EthPayloadBuilderAttributes { /// Generates the payload id for the configured payload from the [`PayloadAttributes`]. /// /// Returns an 8-byte identifier by hashing the payload components with sha256 hash. -pub(crate) fn payload_id(parent: &B256, attributes: &PayloadAttributes) -> PayloadId { +pub(crate) fn payload_id(parent: &B256, attributes: &PayloadAttributes, version: EngineApiMessageVersion) -> PayloadId { use sha2::Digest; let mut hasher = sha2::Sha256::new(); hasher.update(parent.as_slice()); @@ -269,6 +269,8 @@ pub(crate) fn payload_id(parent: &B256, attributes: &PayloadAttributes) -> Paylo } let out = hasher.finalize(); + let mut out_bytes: [u8; 8] = out.as_slice()[..8].try_into().expect("sufficient length"); + out_bytes[0] = version as u8; PayloadId::new(out.as_slice()[..8].try_into().expect("sufficient length")) } diff --git a/crates/ethereum/node/tests/e2e/utils.rs b/crates/ethereum/node/tests/e2e/utils.rs index 5a7950999189..68fadf6aa53a 100644 --- a/crates/ethereum/node/tests/e2e/utils.rs +++ b/crates/ethereum/node/tests/e2e/utils.rs @@ -16,5 +16,5 @@ pub(crate) fn eth_payload_attributes(timestamp: u64) -> EthPayloadBuilderAttribu withdrawals: Some(vec![]), parent_beacon_block_root: Some(B256::ZERO), }; - EthPayloadBuilderAttributes::new(B256::ZERO, attributes) + EthPayloadBuilderAttributes::new(B256::ZERO, attributes, Default::default()) } diff --git a/crates/optimism/node/tests/e2e/utils.rs b/crates/optimism/node/tests/e2e/utils.rs index 1e9ffa652f1c..d8495be309bb 100644 --- a/crates/optimism/node/tests/e2e/utils.rs +++ b/crates/optimism/node/tests/e2e/utils.rs @@ -68,7 +68,7 @@ pub(crate) fn optimism_payload_attributes(timestamp: u64) -> OptimismPayloadBuil }; OptimismPayloadBuilderAttributes { - payload_attributes: EthPayloadBuilderAttributes::new(B256::ZERO, attributes), + payload_attributes: EthPayloadBuilderAttributes::new(B256::ZERO, attributes, Default::default()), transactions: vec![], no_tx_pool: false, gas_limit: Some(30_000_000), diff --git a/crates/optimism/payload/src/payload.rs b/crates/optimism/payload/src/payload.rs index 122c2fde5269..13835d827722 100644 --- a/crates/optimism/payload/src/payload.rs +++ b/crates/optimism/payload/src/payload.rs @@ -13,7 +13,7 @@ use reth_chain_state::ExecutedBlock; use reth_chainspec::EthereumHardforks; use reth_optimism_chainspec::OpChainSpec; use reth_payload_builder::EthPayloadBuilderAttributes; -use reth_payload_primitives::{BuiltPayload, PayloadBuilderAttributes}; +use reth_payload_primitives::{BuiltPayload, EngineApiMessageVersion, PayloadBuilderAttributes}; use reth_primitives::{ transaction::WithEncoded, BlobTransactionSidecar, SealedBlock, TransactionSigned, Withdrawals, }; diff --git a/crates/payload/primitives/src/lib.rs b/crates/payload/primitives/src/lib.rs index 5d1004051350..596b4a8c7309 100644 --- a/crates/payload/primitives/src/lib.rs +++ b/crates/payload/primitives/src/lib.rs @@ -323,9 +323,10 @@ where } /// The version of Engine API message. -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Default)] pub enum EngineApiMessageVersion { /// Version 1 + #[default] V1, /// Version 2 /// diff --git a/crates/payload/primitives/src/traits.rs b/crates/payload/primitives/src/traits.rs index 6ae6361fdb28..db451140e922 100644 --- a/crates/payload/primitives/src/traits.rs +++ b/crates/payload/primitives/src/traits.rs @@ -1,4 +1,4 @@ -use crate::{PayloadBuilderError, PayloadEvents, PayloadTypes}; +use crate::{EngineApiMessageVersion, PayloadBuilderError, PayloadEvents, PayloadTypes}; use alloy_primitives::{Address, B256, U256}; use alloy_rpc_types::{ engine::{PayloadAttributes as EthPayloadAttributes, PayloadId}, @@ -88,6 +88,7 @@ pub trait PayloadBuilderAttributes: Send + Sync + std::fmt::Debug { fn try_new( parent: B256, rpc_payload_attributes: Self::RpcPayloadAttributes, + version: EngineApiMessageVersion, ) -> Result where Self: Sized; diff --git a/crates/rpc/rpc-engine-api/src/engine_api.rs b/crates/rpc/rpc-engine-api/src/engine_api.rs index 252808c14a77..57bd633140cc 100644 --- a/crates/rpc/rpc-engine-api/src/engine_api.rs +++ b/crates/rpc/rpc-engine-api/src/engine_api.rs @@ -614,7 +614,7 @@ where // To do this, we set the payload attrs to `None` if attribute validation failed, but // we still apply the forkchoice update. if let Err(err) = attr_validation_res { - let fcu_res = self.inner.beacon_consensus.fork_choice_updated(state, None).await?; + let fcu_res = self.inner.beacon_consensus.fork_choice_updated(state, None, version).await?; // TODO: decide if we want this branch - the FCU INVALID response might be more // useful than the payload attributes INVALID response if fcu_res.is_invalid() { @@ -624,7 +624,7 @@ where } } - Ok(self.inner.beacon_consensus.fork_choice_updated(state, payload_attrs).await?) + Ok(self.inner.beacon_consensus.fork_choice_updated(state, payload_attrs, version).await?) } } diff --git a/examples/custom-engine-types/src/main.rs b/examples/custom-engine-types/src/main.rs index 34f8186be7f8..e2934a5c8c39 100644 --- a/examples/custom-engine-types/src/main.rs +++ b/examples/custom-engine-types/src/main.rs @@ -106,8 +106,8 @@ impl PayloadBuilderAttributes for CustomPayloadBuilderAttributes { type RpcPayloadAttributes = CustomPayloadAttributes; type Error = Infallible; - fn try_new(parent: B256, attributes: CustomPayloadAttributes) -> Result { - Ok(Self(EthPayloadBuilderAttributes::new(parent, attributes.inner))) + fn try_new(parent: B256, attributes: CustomPayloadAttributes, version: EngineApiMessageVersion) -> Result { + Ok(Self(EthPayloadBuilderAttributes::new(parent, attributes.inner, version))) } fn payload_id(&self) -> PayloadId { From 57f87aae6c3341ef9453c9d10647f1db172fe8ff Mon Sep 17 00:00:00 2001 From: maskpp Date: Fri, 1 Nov 2024 16:49:14 +0800 Subject: [PATCH 12/24] add version and debug params --- crates/consensus/beacon/src/engine/message.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/crates/consensus/beacon/src/engine/message.rs b/crates/consensus/beacon/src/engine/message.rs index 8c2ecc703686..dc3f0b8aaa2d 100644 --- a/crates/consensus/beacon/src/engine/message.rs +++ b/crates/consensus/beacon/src/engine/message.rs @@ -178,14 +178,13 @@ impl Display for BeaconEngineMessage { payload.block_hash() ) } - Self::ForkchoiceUpdated { state, payload_attrs, version, .. } => { + Self::ForkchoiceUpdated { state, payload_attrs, .. } => { // we don't want to print the entire payload attributes, because for OP this // includes all txs write!( f, - "ForkchoiceUpdated {{ state: {state:?}, has_payload_attributes: {}, version: {} }}", + "ForkchoiceUpdated {{ state: {state:?}, has_payload_attributes: {} }}", payload_attrs.is_some(), - version, ) } Self::TransitionConfigurationExchanged => { From f8bbfe3aeba69ee1a709bede10a07e3180fc8f5d Mon Sep 17 00:00:00 2001 From: maskpp Date: Fri, 1 Nov 2024 17:00:54 +0800 Subject: [PATCH 13/24] add version and debug params --- crates/engine/local/src/service.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/engine/local/src/service.rs b/crates/engine/local/src/service.rs index c9794ecfabb0..c2e2d1c5c676 100644 --- a/crates/engine/local/src/service.rs +++ b/crates/engine/local/src/service.rs @@ -127,6 +127,7 @@ where ::PayloadBuilderAttributes::try_new( parent, payload_attributes, + Default::default(), ) .map_err(|_| eyre::eyre!("failed to fetch payload attributes"))?; From 4619768102040f5214bec202cb01cecc2f0457a8 Mon Sep 17 00:00:00 2001 From: maskpp Date: Fri, 1 Nov 2024 22:49:36 +0800 Subject: [PATCH 14/24] add version and debug params --- crates/engine/tree/src/tree/mod.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/engine/tree/src/tree/mod.rs b/crates/engine/tree/src/tree/mod.rs index 8997b9f72d77..ceafd3c05b58 100644 --- a/crates/engine/tree/src/tree/mod.rs +++ b/crates/engine/tree/src/tree/mod.rs @@ -2589,7 +2589,6 @@ mod tests { }; use std::default::Default; use tokio::sync::mpsc::unbounded_channel; - use reth_db::mdbx::EnvironmentKind::Default; /// This is a test channel that allows you to `release` any value that is in the channel. /// From 990e22274bf1564074bb4ccae42bf206b9df5ca8 Mon Sep 17 00:00:00 2001 From: maskpp Date: Sun, 3 Nov 2024 05:29:45 +0800 Subject: [PATCH 15/24] introduce taiko/primitives and taiko/engine-primitives libs --- Cargo.lock | 32 +- Cargo.toml | 6 + crates/taiko/engine-primitives/Cargo.toml | 31 ++ crates/taiko/engine-primitives/src/lib.rs | 86 +++++ crates/taiko/engine-primitives/src/payload.rs | 325 ++++++++++++++++++ crates/taiko/primitives/Cargo.toml | 19 + crates/taiko/primitives/src/l1_origin.rs | 43 +++ crates/taiko/primitives/src/lib.rs | 11 + 8 files changed, 551 insertions(+), 2 deletions(-) create mode 100644 crates/taiko/engine-primitives/Cargo.toml create mode 100644 crates/taiko/engine-primitives/src/lib.rs create mode 100644 crates/taiko/engine-primitives/src/payload.rs create mode 100644 crates/taiko/primitives/Cargo.toml create mode 100644 crates/taiko/primitives/src/l1_origin.rs create mode 100644 crates/taiko/primitives/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 88ad5ca0ac0a..40d887762ebe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -341,9 +341,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.7" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb848c43f6b06ae3de2e4a67496cbbabd78ae87db0f1248934f15d76192c6a" +checksum = "8edae627382349b56cd6a7a2106f4fd69b243a9233e560c55c2e03cabb7e1d3c" dependencies = [ "alloy-rlp", "arbitrary", @@ -10429,6 +10429,34 @@ dependencies = [ "windows 0.57.0", ] +[[package]] +name = "taiko-reth-engine-primitives" +version = "1.1.0" +dependencies = [ + "alloy-eips 0.4.2", + "alloy-primitives", + "alloy-rpc-types 0.4.2", + "alloy-rpc-types-engine 0.4.2", + "reth-chainspec", + "reth-engine-primitives", + "reth-ethereum-engine-primitives", + "reth-payload-primitives", + "reth-primitives", + "reth-rpc-types-compat", + "serde_with", + "sha2 0.10.8", + "taiko-reth-primitives", +] + +[[package]] +name = "taiko-reth-primitives" +version = "1.1.0" +dependencies = [ + "alloy-primitives", + "reth-db-api", + "serde", +] + [[package]] name = "tap" version = "1.0.1" diff --git a/Cargo.toml b/Cargo.toml index db115c89cccd..3edaae098785 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -116,6 +116,8 @@ members = [ "crates/storage/nippy-jar/", "crates/storage/provider/", "crates/storage/storage-api/", + "crates/taiko/primitives", + "crates/taiko/engine-primitives", "crates/tasks/", "crates/tokio-util/", "crates/tracing/", @@ -406,6 +408,10 @@ reth-trie-common = { path = "crates/trie/common" } reth-trie-db = { path = "crates/trie/db" } reth-trie-parallel = { path = "crates/trie/parallel" } +# taiko +taiko-reth-primitives = { path = "crates/taiko/primitives" } +taiko-reth-engine-primitives = { path = "crates/taiko/engine-primitives" } + # revm revm = { version = "14.0.3", features = [ "std", diff --git a/crates/taiko/engine-primitives/Cargo.toml b/crates/taiko/engine-primitives/Cargo.toml new file mode 100644 index 000000000000..1e01a6bdfbfd --- /dev/null +++ b/crates/taiko/engine-primitives/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "taiko-reth-engine-primitives" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true +exclude.workspace = true + +[dependencies] +alloy-eips.workspace = true +alloy-primitives.workspace = true +alloy-rpc-types.workspace = true +alloy-rpc-types-engine.workspace = true +serde_with.workspace = true +sha2.workspace = true + +# reth +reth-payload-primitives.workspace = true +reth-rpc-types-compat.workspace = true +reth-primitives.workspace = true +reth-ethereum-engine-primitives.workspace = true +reth-engine-primitives.workspace = true +reth-chainspec.workspace = true + +# taiko +taiko-reth-primitives.workspace = true + +[lints] +workspace = true diff --git a/crates/taiko/engine-primitives/src/lib.rs b/crates/taiko/engine-primitives/src/lib.rs new file mode 100644 index 000000000000..bfed2b56eaab --- /dev/null +++ b/crates/taiko/engine-primitives/src/lib.rs @@ -0,0 +1,86 @@ +//! Ethereum specific + +#![doc( + html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-docs.png", + html_favicon_url = "https://avatars0.githubusercontent.com/u/97369466?s=256", + issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/" +)] +#![cfg_attr(not(test), warn(unused_crate_dependencies))] +#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] + +mod payload; + +use std::sync::Arc; +use alloy_primitives::private::serde; +use alloy_rpc_types_engine::{ExecutionPayloadEnvelopeV2, ExecutionPayloadEnvelopeV3, ExecutionPayloadEnvelopeV4, ExecutionPayloadV1}; +pub use payload::{ + TaikoBuiltPayload, TaikoExecutionPayload, TaikoExecutionPayloadEnvelopeV2, + TaikoPayloadAttributes, TaikoPayloadBuilderAttributes, +}; +use reth_chainspec::ChainSpec; +use reth_engine_primitives::{EngineTypes, EngineValidator}; +use reth_ethereum_engine_primitives::{EthPayloadAttributes, EthPayloadTypes}; +use reth_payload_primitives::{ + validate_version_specific_fields, EngineApiMessageVersion, EngineObjectValidationError, + PayloadOrAttributes, PayloadTypes, +}; + +/// The types used in the default mainnet ethereum beacon consensus engine. +#[derive(Debug, Default, Clone, serde::Deserialize, serde::Serialize)] +#[non_exhaustive] +pub struct TaikoEngineTypes { + _marker: std::marker::PhantomData, +} + +impl PayloadTypes for TaikoEngineTypes { + type BuiltPayload = T::BuiltPayload; + type PayloadAttributes = T::PayloadAttributes; + type PayloadBuilderAttributes = T::PayloadBuilderAttributes; +} + +impl EngineTypes for TaikoEngineTypes +where + T::BuiltPayload: TryInto + + TryInto + + TryInto + + TryInto, +{ + type ExecutionPayloadV1 = ExecutionPayloadV1; + type ExecutionPayloadV2 = ExecutionPayloadEnvelopeV2; + type ExecutionPayloadV3 = ExecutionPayloadEnvelopeV3; + type ExecutionPayloadV4 = ExecutionPayloadEnvelopeV4; +} + +/// Validator for the ethereum engine API. +#[derive(Debug, Clone)] +pub struct TaikoEngineValidator { + chain_spec: Arc, +} + +impl TaikoEngineValidator { + /// Instantiates a new validator. + pub const fn new(chain_spec: Arc) -> Self { + Self { chain_spec } + } +} + +impl EngineValidator for TaikoEngineValidator +where + Types: EngineTypes, +{ + fn validate_version_specific_fields( + &self, + version: EngineApiMessageVersion, + payload_or_attrs: PayloadOrAttributes<'_, EthPayloadAttributes>, + ) -> Result<(), EngineObjectValidationError> { + validate_version_specific_fields(&self.chain_spec, version, payload_or_attrs) + } + + fn ensure_well_formed_attributes( + &self, + version: EngineApiMessageVersion, + attributes: &EthPayloadAttributes, + ) -> Result<(), EngineObjectValidationError> { + validate_version_specific_fields(&self.chain_spec, version, attributes.into()) + } +} \ No newline at end of file diff --git a/crates/taiko/engine-primitives/src/payload.rs b/crates/taiko/engine-primitives/src/payload.rs new file mode 100644 index 000000000000..f0b368b8befd --- /dev/null +++ b/crates/taiko/engine-primitives/src/payload.rs @@ -0,0 +1,325 @@ +use alloy_eips::eip4844::BlobTransactionSidecar; +use alloy_eips::eip4895::Withdrawal; +use alloy_primitives::{Address, Bytes, B256}; +use alloy_primitives::private::alloy_rlp::{Encodable, RlpDecodable, RlpEncodable}; +use alloy_primitives::private::serde::{Deserialize, Serialize}; +use alloy_primitives::ruint::aliases::U256; +use alloy_rpc_types::engine::{ExecutionPayloadEnvelopeV4, PayloadAttributes, PayloadId}; +use alloy_rpc_types_engine::{ExecutionPayload, ExecutionPayloadEnvelopeV3, ExecutionPayloadV1, ExecutionPayloadV2}; +use serde_with::serde_as; +use reth_ethereum_engine_primitives::EthPayloadBuilderAttributes; +use reth_payload_primitives::{BuiltPayload, EngineApiMessageVersion}; +use reth_primitives::SealedBlock; +use reth_rpc_types_compat::engine::payload::{block_to_payload_v1, block_to_payload_v2, block_to_payload_v3, block_to_payload_v4}; +use taiko_reth_primitives::L1Origin; + +/// Taiko Payload Attributes +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TaikoPayloadAttributes { + /// The payload attributes + #[serde(flatten)] + pub payload_attributes: PayloadAttributes, + /// EIP1559 base fee + pub base_fee_per_gas: U256, + /// Data from l1 contract + pub block_metadata: BlockMetadata, + /// l1 anchor information + pub l1_origin: L1Origin, +} + +impl reth_payload_primitives::PayloadAttributes for TaikoPayloadAttributes { + fn timestamp(&self) -> u64 { + self.payload_attributes.timestamp() + } + + fn withdrawals(&self) -> Option<&Vec> { + self.payload_attributes.withdrawals() + } + + fn parent_beacon_block_root(&self) -> Option { + self.payload_attributes.parent_beacon_block_root() + } +} + +/// This structure contains the information from l1 contract storage +#[serde_as] +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, RlpDecodable, RlpEncodable)] +#[serde(rename_all = "camelCase")] +pub struct BlockMetadata { + /// The Keccak 256-bit hash of the parent + /// block’s header, in its entirety; formally Hp. + pub beneficiary: Address, + /// A scalar value equal to the current limit of gas expenditure per block; formally Hl. + pub gas_limit: u64, + /// Timestamp in l1 + #[serde(with = "alloy_serde::quantity")] + pub timestamp: u64, + /// A 256-bit hash which, combined with the + /// nonce, proves that a sufficient amount of computation has been carried out on this block; + /// formally Hm. + pub mix_hash: B256, + /// The origin transactions data + pub tx_list: Bytes, + /// An arbitrary byte array containing data relevant to this block. This must be 32 bytes or + /// fewer; formally Hx. + #[serde_as(as = "Base64")] + pub extra_data: Vec, +} + +/// Taiko Payload Builder Attributes +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct TaikoPayloadBuilderAttributes { + /// Inner ethereum payload builder attributes + pub payload_attributes: EthPayloadBuilderAttributes, + /// The base layer fee per gas + pub base_fee_per_gas: U256, + /// Taiko specific block metadata + pub block_metadata: BlockMetadata, + /// The L1 origin of the L2 block + pub l1_origin: L1Origin, +} + +/// Contains the built payload. +#[derive(Debug, Clone)] +pub struct TaikoBuiltPayload { + /// Identifier of the payload + pub(crate) id: PayloadId, + /// The built block + pub(crate) block: SealedBlock, + /// The fees of the block + pub(crate) fees: U256, + /// The blobs, proofs, and commitments in the block. If the block is pre-cancun, this will be + /// empty. + pub(crate) sidecars: Vec, +} + +// === impl BuiltPayload === + +impl TaikoBuiltPayload { + /// Initializes the payload with the given initial block. + pub const fn new(id: PayloadId, block: SealedBlock, fees: U256) -> Self { + Self { id, block, fees, sidecars: Vec::new() } + } + + /// Returns the identifier of the payload. + pub const fn id(&self) -> PayloadId { + self.id + } + + /// Returns the built block(sealed) + pub const fn block(&self) -> &SealedBlock { + &self.block + } + + /// Fees of the block + pub const fn fees(&self) -> U256 { + self.fees + } + + /// Adds sidecars to the payload. + pub fn extend_sidecars(&mut self, sidecars: Vec) { + self.sidecars.extend(sidecars) + } +} + +impl BuiltPayload for TaikoBuiltPayload { + fn block(&self) -> &SealedBlock { + &self.block + } + + fn fees(&self) -> U256 { + self.fees + } +} + +impl<'a> BuiltPayload for &'a TaikoBuiltPayload { + fn block(&self) -> &SealedBlock { + (**self).block() + } + + fn fees(&self) -> U256 { + (**self).fees() + } +} + +// V1 engine_getPayloadV1 response +impl From for ExecutionPayloadV1 { + fn from(value: TaikoBuiltPayload) -> Self { + block_to_payload_v1(value.block) + } +} + +impl From for ExecutionPayloadEnvelopeV3 { + fn from(value: TaikoBuiltPayload) -> Self { + let TaikoBuiltPayload { block, fees, sidecars, .. } = value; + + Self { + execution_payload: block_to_payload_v3(block), + block_value: fees, + // From the engine API spec: + // + // > Client software **MAY** use any heuristics to decide whether to set + // `shouldOverrideBuilder` flag or not. If client software does not implement any + // heuristic this flag **SHOULD** be set to `false`. + // + // Spec: + // + should_override_builder: false, + blobs_bundle: sidecars.into_iter().map(Into::into).collect::>().into(), + } + } +} + +impl From for ExecutionPayloadEnvelopeV4 { + fn from(value: TaikoBuiltPayload) -> Self { + let TaikoBuiltPayload { block, fees, sidecars, .. } = value; + + Self { + execution_payload: block_to_payload_v4(block), + block_value: fees, + // From the engine API spec: + // + // > Client software **MAY** use any heuristics to decide whether to set + // `shouldOverrideBuilder` flag or not. If client software does not implement any + // heuristic this flag **SHOULD** be set to `false`. + // + // Spec: + // + should_override_builder: false, + blobs_bundle: sidecars.into_iter().map(Into::into).collect::>().into(), + } + } +} + +/// Taiko Execution Payload +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TaikoExecutionPayloadV2 { + /// Inner V2 payload + #[serde(flatten)] + pub payload_inner: ExecutionPayloadV2, + + /// Allow passing txHash directly instead of transactions list + pub tx_hash: B256, + /// Allow passing withdrawals hash directly instead of withdrawals + pub withdrawals_hash: B256, +} + +impl From for TaikoExecutionPayloadV2 { + fn from(value: ExecutionPayloadV2) -> Self { + Self { payload_inner: value, tx_hash: B256::default(), withdrawals_hash: B256::default() } + } +} + +/// Taiko Execution Payload Envelope +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TaikoExecutionPayloadEnvelopeV2 { + /// Taiko execution payload + pub execution_payload: TaikoExecutionPayloadV2, + /// The expected value to be received by the feeRecipient in wei + pub block_value: U256, +} + +impl From for TaikoExecutionPayloadV2 { + fn from(value: TaikoBuiltPayload) -> Self { + let TaikoBuiltPayload { block, .. } = value; + + Self { + tx_hash: block.header.transactions_root, + withdrawals_hash: block.header.withdrawals_root.unwrap_or_default(), + payload_inner: block_to_payload_v2(block), + } + } +} + +impl From for TaikoExecutionPayloadEnvelopeV2 { + fn from(value: TaikoBuiltPayload) -> Self { + let fees = value.fees; + Self { execution_payload: value.into(), block_value: fees } + } +} + +/// An tiako execution payload +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TaikoExecutionPayload { + /// Inner V3 payload + #[serde(flatten)] + pub payload_inner: ExecutionPayload, + + /// Allow passing txHash directly instead of transactions list + pub tx_hash: B256, + /// Allow passing `WithdrawalsHash` directly instead of withdrawals + pub withdrawals_hash: B256, +} + +impl TaikoExecutionPayload { + /// Returns the block hash + pub const fn block_hash(&self) -> B256 { + self.payload_inner.block_hash() + } + + /// Returns the block number + pub const fn block_number(&self) -> u64 { + self.payload_inner.block_number() + } + + /// Returns the parent hash + pub const fn parent_hash(&self) -> B256 { + self.payload_inner.parent_hash() + } +} + +impl From<(ExecutionPayload, B256, B256)> for TaikoExecutionPayload { + fn from((payload_inner, tx_hash, withdrawals_hash): (ExecutionPayload, B256, B256)) -> Self { + Self { payload_inner, tx_hash, withdrawals_hash } + } +} + +impl From for TaikoExecutionPayload { + fn from(value: ExecutionPayload) -> Self { + Self { payload_inner: value, tx_hash: B256::default(), withdrawals_hash: B256::default() } + } +} + +/// Generates the payload id for the configured payload from the [`PayloadAttributes`]. +/// +/// Returns an 8-byte identifier by hashing the payload components with sha256 hash. +pub(crate) fn payload_id( + parent: &B256, + attributes: &TaikoPayloadAttributes, + version: EngineApiMessageVersion, +) -> PayloadId { + use sha2::Digest; + let mut hasher = sha2::Sha256::new(); + hasher.update(parent.as_slice()); + hasher.update(&attributes.payload_attributes.timestamp.to_be_bytes()[..]); + hasher.update(attributes.payload_attributes.prev_randao.as_slice()); + hasher.update(attributes.payload_attributes.suggested_fee_recipient.as_slice()); + if let Some(withdrawals) = &attributes.payload_attributes.withdrawals { + let mut buf = Vec::new(); + withdrawals.encode(&mut buf); + hasher.update(buf); + } + + if let Some(parent_beacon_block) = attributes.payload_attributes.parent_beacon_block_root { + hasher.update(parent_beacon_block); + } + + hasher.update(attributes.base_fee_per_gas.to_be_bytes_vec()); + + let mut buf = Vec::new(); + attributes.block_metadata.encode(&mut buf); + hasher.update(buf); + + let mut buf = Vec::new(); + attributes.l1_origin.encode(&mut buf); + hasher.update(buf); + + let out = hasher.finalize(); + let mut out_bytes: [u8; 8] = out.as_slice()[..8].try_into().expect("sufficient length"); + out_bytes[0] = version as u8; + PayloadId::new(out_bytes) +} \ No newline at end of file diff --git a/crates/taiko/primitives/Cargo.toml b/crates/taiko/primitives/Cargo.toml new file mode 100644 index 000000000000..834f7408c008 --- /dev/null +++ b/crates/taiko/primitives/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "taiko-reth-primitives" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true +exclude.workspace = true +description = "Taiko primitive types" + +[dependencies] +# reth +reth-db-api.workspace = true +alloy-primitives.workspace = true +serde.workspace = true + +[lints] +workspace = true diff --git a/crates/taiko/primitives/src/l1_origin.rs b/crates/taiko/primitives/src/l1_origin.rs new file mode 100644 index 000000000000..b9012fe0645f --- /dev/null +++ b/crates/taiko/primitives/src/l1_origin.rs @@ -0,0 +1,43 @@ +use alloy_primitives::{B256, U256}; +use serde::{Deserialize, Serialize}; +use reth_db_api::DatabaseError; +use reth_db_api::table::{Decode, Encode}; +// TODO: fix impl_compression_for_compact +// reth_db_api::impl_compression_for_compact!(L1Origin); + +/// The key for the latest l1 origin +#[derive(Debug, Default, Clone, Hash, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize)] +pub struct HeadL1OriginKey; + +impl Encode for HeadL1OriginKey { + type Encoded = [u8; 1]; + + fn encode(self) -> Self::Encoded { + [0] + } +} + +impl Decode for HeadL1OriginKey { + fn decode(value: &[u8]) -> Result { + if value.as_ref() == [0] { + Ok(Self) + } else { + Err(DatabaseError::Decode) + } + } +} + +/// L1Origin represents a L1Origin of a L2 block. +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct L1Origin { + /// The block number of the l2 block + #[serde(rename = "blockID")] + pub block_id: U256, + /// The hash of the l2 block + pub l2_block_hash: B256, + /// The height of the l1 block + pub l1_block_height: U256, + /// The hash of the l1 block + pub l1_block_hash: B256, +} \ No newline at end of file diff --git a/crates/taiko/primitives/src/lib.rs b/crates/taiko/primitives/src/lib.rs new file mode 100644 index 000000000000..d559ec0a45e1 --- /dev/null +++ b/crates/taiko/primitives/src/lib.rs @@ -0,0 +1,11 @@ +//! Standalone crate for Optimism-specific Reth primitive types. + +#![doc( + html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-docs.png", + html_favicon_url = "https://avatars0.githubusercontent.com/u/97369466?s=256", + issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/" +)] +#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] + +pub mod l1_origin; +pub use l1_origin::*; From 79f528f60072068e8e9e071bb0fa1d29a89460ab Mon Sep 17 00:00:00 2001 From: maskpp Date: Sun, 3 Nov 2024 06:05:21 +0800 Subject: [PATCH 16/24] introduce taiko/primitives and taiko/engine-primitives libs --- crates/storage/db/Cargo.toml | 3 +++ crates/storage/db/src/tables/mod.rs | 7 +++++++ crates/taiko/storage/src/l1_origin.rs | 0 3 files changed, 10 insertions(+) create mode 100644 crates/taiko/storage/src/l1_origin.rs diff --git a/crates/storage/db/Cargo.toml b/crates/storage/db/Cargo.toml index a075f7724637..8f329cb3f87c 100644 --- a/crates/storage/db/Cargo.toml +++ b/crates/storage/db/Cargo.toml @@ -64,6 +64,9 @@ tempfile.workspace = true test-fuzz.workspace = true parking_lot.workspace = true +# taiko +taiko-reth-primitives.workspace = true + pprof = { workspace = true, features = [ "flamegraph", "frame-pointer", diff --git a/crates/storage/db/src/tables/mod.rs b/crates/storage/db/src/tables/mod.rs index 83a063903e08..f958f8741e7d 100644 --- a/crates/storage/db/src/tables/mod.rs +++ b/crates/storage/db/src/tables/mod.rs @@ -39,6 +39,7 @@ use reth_stages_types::StageCheckpoint; use reth_trie_common::{BranchNodeCompact, StorageTrieEntry, StoredNibbles, StoredNibblesSubKey}; use serde::{Deserialize, Serialize}; use std::fmt; +use taiko_reth_primitives::{HeadL1OriginKey, L1Origin}; /// Enum for the types of tables present in libmdbx. #[derive(Debug, PartialEq, Eq, Copy, Clone)] @@ -409,6 +410,12 @@ tables! { /// Stores generic chain state info, like the last finalized block. table ChainState; + + /// Stores the l1 origin of the block + table L1Origins; + + /// Stores the latest l1 origin + table HeadL1Origin; } /// Keys for the `ChainState` table. diff --git a/crates/taiko/storage/src/l1_origin.rs b/crates/taiko/storage/src/l1_origin.rs new file mode 100644 index 000000000000..e69de29bb2d1 From efa1ca57d5c5d5fd22cb0a6e0234a0ba465b4c7b Mon Sep 17 00:00:00 2001 From: maskpp Date: Sun, 3 Nov 2024 06:17:09 +0800 Subject: [PATCH 17/24] add l1Origin error enums in ProviderError --- crates/storage/errors/src/provider.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/crates/storage/errors/src/provider.rs b/crates/storage/errors/src/provider.rs index d60a2adb92bb..6ebdb5c4d3dd 100644 --- a/crates/storage/errors/src/provider.rs +++ b/crates/storage/errors/src/provider.rs @@ -146,6 +146,14 @@ pub enum ProviderError { StorageLockError(StorageLockError), /// Storage writer error. UnifiedStorageWriterError(UnifiedStorageWriterError), + + /// L1 origin error + #[error("not found")] + L1OriginNotFound(BlockNumber), + + /// Head L1 origin error + #[error("not found")] + HeadL1OriginNotFound, } impl From for ProviderError { From 7d21a34b8a34644e98e95435d7e23a331714b1f4 Mon Sep 17 00:00:00 2001 From: maskpp Date: Sun, 3 Nov 2024 06:25:16 +0800 Subject: [PATCH 18/24] add l1Origin error enums in ProviderError --- crates/storage/errors/src/provider.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/storage/errors/src/provider.rs b/crates/storage/errors/src/provider.rs index 6ebdb5c4d3dd..96f0bb7d59ac 100644 --- a/crates/storage/errors/src/provider.rs +++ b/crates/storage/errors/src/provider.rs @@ -148,11 +148,11 @@ pub enum ProviderError { UnifiedStorageWriterError(UnifiedStorageWriterError), /// L1 origin error - #[error("not found")] + #[display("l1 origin")] L1OriginNotFound(BlockNumber), /// Head L1 origin error - #[error("not found")] + #[display("l2 origin head")] HeadL1OriginNotFound, } From 137f7c6dae37bfbe34521d3409543bf4f88555bb Mon Sep 17 00:00:00 2001 From: maskpp Date: Sun, 3 Nov 2024 16:53:49 +0800 Subject: [PATCH 19/24] update taiko/primitives and taiko/engine-primitives packages --- Cargo.lock | 127 ++++++++++++++---- Cargo.toml | 2 + crates/taiko/engine-primitives/Cargo.toml | 8 +- crates/taiko/engine-primitives/src/payload.rs | 14 +- crates/taiko/primitives/Cargo.toml | 2 +- crates/taiko/primitives/src/l1_origin.rs | 5 +- crates/taiko/storage/src/l1_origin.rs | 0 7 files changed, 121 insertions(+), 37 deletions(-) delete mode 100644 crates/taiko/storage/src/l1_origin.rs diff --git a/Cargo.lock b/Cargo.lock index 40d887762ebe..e62d4a6a862c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,7 +124,7 @@ dependencies = [ "c-kzg", "derive_more 1.0.0", "serde", - "serde_with", + "serde_with 3.11.0", ] [[package]] @@ -186,7 +186,7 @@ dependencies = [ "k256", "rand 0.8.5", "serde", - "serde_with", + "serde_with 3.11.0", ] [[package]] @@ -430,9 +430,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -441,9 +441,9 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" +checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", @@ -533,7 +533,7 @@ dependencies = [ "alloy-primitives", "alloy-rpc-types-engine 0.4.2", "serde", - "serde_with", + "serde_with 3.11.0", "thiserror", ] @@ -1852,7 +1852,7 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim", + "strsim 0.11.1", ] [[package]] @@ -2318,14 +2318,38 @@ dependencies = [ "syn 2.0.79", ] +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + [[package]] name = "darling" version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.10", + "darling_macro 0.20.10", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] @@ -2338,17 +2362,28 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", + "strsim 0.11.1", "syn 2.0.79", ] +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote", + "syn 1.0.109", +] + [[package]] name = "darling_macro" version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core", + "darling_core 0.20.10", "quote", "syn 2.0.79", ] @@ -5306,7 +5341,7 @@ dependencies = [ "arbitrary", "derive_more 1.0.0", "serde", - "serde_with", + "serde_with 3.11.0", "spin", ] @@ -6892,6 +6927,7 @@ dependencies = [ "serde_json", "strum", "sysinfo", + "taiko-reth-primitives", "tempfile", "test-fuzz", "thiserror", @@ -7038,7 +7074,7 @@ dependencies = [ "schnellru", "secp256k1", "serde", - "serde_with", + "serde_with 3.11.0", "thiserror", "tokio", "tokio-stream", @@ -7538,7 +7574,7 @@ dependencies = [ "reth-trie", "revm", "serde", - "serde_with", + "serde_with 3.11.0", ] [[package]] @@ -7631,7 +7667,7 @@ dependencies = [ "reth-execution-types", "reth-primitives", "serde", - "serde_with", + "serde_with 3.11.0", ] [[package]] @@ -7744,7 +7780,7 @@ dependencies = [ "if-addrs", "reqwest", "reth-tracing", - "serde_with", + "serde_with 3.11.0", "thiserror", "tokio", "tracing", @@ -7862,7 +7898,7 @@ dependencies = [ "rand 0.8.5", "secp256k1", "serde_json", - "serde_with", + "serde_with 3.11.0", "thiserror", "tokio", "url", @@ -8474,7 +8510,7 @@ dependencies = [ "secp256k1", "serde", "serde_json", - "serde_with", + "serde_with 3.11.0", "test-fuzz", "zstd", ] @@ -8503,7 +8539,7 @@ dependencies = [ "roaring", "serde", "serde_json", - "serde_with", + "serde_with 3.11.0", "test-fuzz", ] @@ -9237,7 +9273,7 @@ dependencies = [ "revm", "serde", "serde_json", - "serde_with", + "serde_with 3.11.0", "tokio", "tracing", "triehash", @@ -9972,9 +10008,20 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.10.0" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "base64 0.13.1", + "serde", + "serde_with_macros 1.5.2", +] + +[[package]] +name = "serde_with" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9720086b3357bcb44fce40117d769a4d068c70ecfa190850a980a71755f66fcc" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" dependencies = [ "base64 0.22.1", "chrono", @@ -9984,17 +10031,29 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "serde_with_macros", + "serde_with_macros 3.11.0", "time", ] [[package]] name = "serde_with_macros" -version = "3.10.0" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling 0.13.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_with_macros" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f1abbfe725f27678f4663bcacb75a83e829fd464c25d78dd038a3a29e307cec" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" dependencies = [ - "darling", + "darling 0.20.10", "proc-macro2", "quote", "syn 2.0.79", @@ -10286,6 +10345,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb" +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + [[package]] name = "strsim" version = "0.11.1" @@ -10435,15 +10500,18 @@ version = "1.1.0" dependencies = [ "alloy-eips 0.4.2", "alloy-primitives", + "alloy-rlp", "alloy-rpc-types 0.4.2", "alloy-rpc-types-engine 0.4.2", + "alloy-serde 0.4.2", "reth-chainspec", "reth-engine-primitives", "reth-ethereum-engine-primitives", "reth-payload-primitives", "reth-primitives", "reth-rpc-types-compat", - "serde_with", + "serde", + "serde_with 1.14.0", "sha2 0.10.8", "taiko-reth-primitives", ] @@ -10453,6 +10521,7 @@ name = "taiko-reth-primitives" version = "1.1.0" dependencies = [ "alloy-primitives", + "alloy-rlp", "reth-db-api", "serde", ] @@ -10511,7 +10580,7 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7e6b4c7391a38f0f026972ec2200bcfd1ec45533aa266fdae5858d011afc500" dependencies = [ - "darling", + "darling 0.20.10", "heck", "itertools 0.13.0", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index 3edaae098785..f849863040ff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -148,6 +148,8 @@ members = [ "examples/txpool-tracing/", "testing/ef-tests/", "testing/testing-utils", + "crates/taiko/primitives", + "crates/taiko/engine-primitives", ] default-members = ["bin/reth"] exclude = ["book/sources"] diff --git a/crates/taiko/engine-primitives/Cargo.toml b/crates/taiko/engine-primitives/Cargo.toml index 1e01a6bdfbfd..122e279584bb 100644 --- a/crates/taiko/engine-primitives/Cargo.toml +++ b/crates/taiko/engine-primitives/Cargo.toml @@ -13,8 +13,6 @@ alloy-eips.workspace = true alloy-primitives.workspace = true alloy-rpc-types.workspace = true alloy-rpc-types-engine.workspace = true -serde_with.workspace = true -sha2.workspace = true # reth reth-payload-primitives.workspace = true @@ -26,6 +24,12 @@ reth-chainspec.workspace = true # taiko taiko-reth-primitives.workspace = true +serde.workspace = true +alloy-rlp.workspace = true +alloy-serde.workspace = true + +serde_with = { version = "1.11", features = ["base64"] } +sha2 = "0.10.8" [lints] workspace = true diff --git a/crates/taiko/engine-primitives/src/payload.rs b/crates/taiko/engine-primitives/src/payload.rs index f0b368b8befd..ce7e7ed64838 100644 --- a/crates/taiko/engine-primitives/src/payload.rs +++ b/crates/taiko/engine-primitives/src/payload.rs @@ -1,16 +1,22 @@ use alloy_eips::eip4844::BlobTransactionSidecar; use alloy_eips::eip4895::Withdrawal; use alloy_primitives::{Address, Bytes, B256}; -use alloy_primitives::private::alloy_rlp::{Encodable, RlpDecodable, RlpEncodable}; -use alloy_primitives::private::serde::{Deserialize, Serialize}; +use alloy_primitives::private::alloy_rlp::{Encodable}; use alloy_primitives::ruint::aliases::U256; +use alloy_rlp::{RlpDecodable, RlpEncodable}; use alloy_rpc_types::engine::{ExecutionPayloadEnvelopeV4, PayloadAttributes, PayloadId}; use alloy_rpc_types_engine::{ExecutionPayload, ExecutionPayloadEnvelopeV3, ExecutionPayloadV1, ExecutionPayloadV2}; -use serde_with::serde_as; +use serde::{Serialize, Deserialize}; +use serde_with::{serde_as, base64::Base64}; use reth_ethereum_engine_primitives::EthPayloadBuilderAttributes; use reth_payload_primitives::{BuiltPayload, EngineApiMessageVersion}; use reth_primitives::SealedBlock; -use reth_rpc_types_compat::engine::payload::{block_to_payload_v1, block_to_payload_v2, block_to_payload_v3, block_to_payload_v4}; +use reth_rpc_types_compat::engine::payload::{ + block_to_payload_v1, + block_to_payload_v2, + block_to_payload_v3, + block_to_payload_v4, +}; use taiko_reth_primitives::L1Origin; /// Taiko Payload Attributes diff --git a/crates/taiko/primitives/Cargo.toml b/crates/taiko/primitives/Cargo.toml index 834f7408c008..4904c1fc43cd 100644 --- a/crates/taiko/primitives/Cargo.toml +++ b/crates/taiko/primitives/Cargo.toml @@ -6,7 +6,6 @@ rust-version.workspace = true license.workspace = true homepage.workspace = true repository.workspace = true -exclude.workspace = true description = "Taiko primitive types" [dependencies] @@ -14,6 +13,7 @@ description = "Taiko primitive types" reth-db-api.workspace = true alloy-primitives.workspace = true serde.workspace = true +alloy-rlp.workspace = true [lints] workspace = true diff --git a/crates/taiko/primitives/src/l1_origin.rs b/crates/taiko/primitives/src/l1_origin.rs index b9012fe0645f..474eae51b227 100644 --- a/crates/taiko/primitives/src/l1_origin.rs +++ b/crates/taiko/primitives/src/l1_origin.rs @@ -1,4 +1,5 @@ use alloy_primitives::{B256, U256}; +use alloy_rlp::{RlpDecodable, RlpEncodable}; use serde::{Deserialize, Serialize}; use reth_db_api::DatabaseError; use reth_db_api::table::{Decode, Encode}; @@ -28,10 +29,12 @@ impl Decode for HeadL1OriginKey { } /// L1Origin represents a L1Origin of a L2 block. -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, PartialOrd, Eq, RlpDecodable, RlpEncodable, Serialize, Deserialize)] +#[rlp(rename_all = "camelCase")] #[serde(rename_all = "camelCase")] pub struct L1Origin { /// The block number of the l2 block + #[rlp(rename = "blockID")] #[serde(rename = "blockID")] pub block_id: U256, /// The hash of the l2 block diff --git a/crates/taiko/storage/src/l1_origin.rs b/crates/taiko/storage/src/l1_origin.rs deleted file mode 100644 index e69de29bb2d1..000000000000 From 13aff58615f2332e11134892447cb98671bb3d0f Mon Sep 17 00:00:00 2001 From: maskpp Date: Tue, 5 Nov 2024 14:39:42 +0800 Subject: [PATCH 20/24] use taikoxyz/revm's v45-taiko version --- Cargo.lock | 763 +++++++++++++++++++++-------------------- Cargo.toml | 35 +- crates/revm/Cargo.toml | 1 + 3 files changed, 396 insertions(+), 403 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e62d4a6a862c..161df82e8fc1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] @@ -97,10 +97,11 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy-chains" -version = "0.1.34" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8158b4878c67837e5413721cc44298e6a2d88d39203175ea025e51892a16ba4c" +checksum = "836cf02383d9ebb35502d379bcd1ae803155094077eaab9c29131d888cd5fa3e" dependencies = [ + "alloy-primitives", "alloy-rlp", "arbitrary", "num_enum", @@ -145,9 +146,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.8.5" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b499852e1d0e9b8c6db0f24c48998e647c0d5762a01090f955106a7700e4611" +checksum = "f5228b189b18b85761340dc9eaac0141148a8503657b36f9bc3a869413d987ca" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -251,9 +252,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.5" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a438d4486b5d525df3b3004188f9d5cd1d65cd30ecc41e5a3ccef6f6342e8af9" +checksum = "31a0f0d51db8a1a30a4d98a9f90e090a94c8f44cb4d9eafc7e03aa6d00aae984" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -354,9 +355,9 @@ dependencies = [ "derive_more 1.0.0", "foldhash", "getrandom 0.2.15", - "hashbrown 0.15.0", + "hashbrown 0.15.1", "hex-literal", - "indexmap 2.5.0", + "indexmap 2.6.0", "itoa", "k256", "keccak-asm", @@ -447,7 +448,7 @@ checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -719,56 +720,56 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.5" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68e7f6e8fe5b443f82b3f1e15abfa191128f71569148428e49449d01f6f49e8b" +checksum = "841eabaa4710f719fddbc24c95d386eae313f07e6da4babc25830ee37945be0c" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.5" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b96ce28d2fde09abb6135f410c41fad670a3a770b6776869bd852f1df102e6f" +checksum = "6672337f19d837b9f7073c45853aeb528ed9f7dd6a4154ce683e9e5cb7794014" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck", - "indexmap 2.5.0", + "indexmap 2.6.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.5" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "906746396a8296537745711630d9185746c0b50c033d5e9d18b0a6eba3d53f90" +checksum = "0dff37dd20bfb118b777c96eda83b2067f4226d2644c5cfa00187b3bc01770ba" dependencies = [ "const-hex", "dunce", "heck", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.5" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc85178909a49c8827ffccfc9103a7ce1767ae66a801b69bdc326913870bf8e6" +checksum = "5b853d42292dbb159671a3edae3b2750277ff130f32b726fe07dc2b17aa6f2b5" dependencies = [ "serde", "winnow", @@ -776,9 +777,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.5" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86a533ce22525969661b25dfe296c112d35eb6861f188fd284f8bd4bb3842ae" +checksum = "aa828bb1b9a6dc52208fbb18084fb9ce2c30facc2bfda6a5d922349b4990354f" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -900,9 +901,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -915,43 +916,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" [[package]] name = "aquamarine" @@ -964,14 +965,14 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "775a8770d29db3dadcb858482cc240af7b2ffde4ac4de67d1d4955728103f0e2" dependencies = [ "derive_arbitrary", ] @@ -1137,9 +1138,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.12" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" +checksum = "0cb8f1d480b0ea3783ab015936d2a55c87e219676f0c0b7dec61494043f21857" dependencies = [ "brotli", "flate2", @@ -1184,7 +1185,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1195,7 +1196,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1233,7 +1234,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1324,26 +1325,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bindgen" -version = "0.69.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" -dependencies = [ - "bitflags 2.6.0", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "proc-macro2", - "quote", - "regex", - "rustc-hash 1.1.0", - "shlex", - "syn 2.0.79", -] - [[package]] name = "bindgen" version = "0.70.1" @@ -1359,7 +1340,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1454,7 +1435,7 @@ dependencies = [ "bitflags 2.6.0", "boa_interner", "boa_macros", - "indexmap 2.5.0", + "indexmap 2.6.0", "num-bigint", "rustc-hash 2.0.0", ] @@ -1480,7 +1461,7 @@ dependencies = [ "fast-float", "hashbrown 0.14.5", "icu_normalizer", - "indexmap 2.5.0", + "indexmap 2.6.0", "intrusive-collections", "itertools 0.13.0", "num-bigint", @@ -1526,7 +1507,7 @@ dependencies = [ "boa_gc", "boa_macros", "hashbrown 0.14.5", - "indexmap 2.5.0", + "indexmap 2.6.0", "once_cell", "phf", "rustc-hash 2.0.0", @@ -1541,7 +1522,7 @@ checksum = "240f4126219a83519bad05c9a40bfc0303921eeb571fc2d7e44c17ffac99d3f1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "synstructure", ] @@ -1594,9 +1575,9 @@ dependencies = [ [[package]] name = "brotli" -version = "6.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1637,22 +1618,22 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" +checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" +checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1663,25 +1644,23 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.2" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" dependencies = [ "serde", ] [[package]] name = "c-kzg" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" +version = "1.0.0" +source = "git+https://github.com/brechtpd/c-kzg-4844?branch=for-alpha7#3bf0372e8c7a4ba908aff65da0508fcaaf9d38e6" dependencies = [ "blst", "cc", "glob", "hex", "libc", - "once_cell", "serde", ] @@ -1740,9 +1719,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.24" +version = "1.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812acba72f0a070b003d3697490d2b55b837230ae7c6c6497f05cc2ddbb8d938" +checksum = "67b9470d453346108f93a59222a9a1a5724db32d0a4727b7ab7ace4b4d822dc9" dependencies = [ "jobserver", "libc", @@ -1770,6 +1749,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" version = "0.4.38" @@ -1835,9 +1820,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.19" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7be5744db7978a28d9df86a214130d106a89ce49644cbc4e3f0c22c3fba30615" +checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" dependencies = [ "clap_builder", "clap_derive", @@ -1845,9 +1830,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.19" +version = "4.5.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5fbc17d3ef8278f55b282b2a2e75ae6f6c7d4bb70ed3d0382375104bfafdb4b" +checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" dependencies = [ "anstream", "anstyle", @@ -1864,7 +1849,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -1926,9 +1911,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "combine" @@ -2036,6 +2021,12 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + [[package]] name = "convert_case" version = "0.6.0" @@ -2315,7 +2306,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -2363,7 +2354,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -2385,7 +2376,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -2499,13 +2490,13 @@ dependencies = [ [[package]] name = "derive_arbitrary" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +checksum = "d475dfebcb4854d596b17b09f477616f80f17a550517f2b3615d8c205d5c802b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -2514,9 +2505,11 @@ version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ + "convert_case 0.4.0", "proc-macro2", "quote", - "syn 2.0.79", + "rustc_version 0.4.1", + "syn 2.0.87", ] [[package]] @@ -2534,10 +2527,10 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "convert_case", + "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "unicode-xid", ] @@ -2651,7 +2644,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -2797,7 +2790,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -2808,7 +2801,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -3295,9 +3288,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -3310,9 +3303,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -3320,15 +3313,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -3337,9 +3330,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" @@ -3358,26 +3351,26 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -3391,9 +3384,9 @@ dependencies = [ [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -3473,9 +3466,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.31.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" @@ -3552,7 +3545,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.5.0", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -3599,10 +3592,12 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" dependencies = [ + "allocator-api2", + "equivalent", "foldhash", "serde", ] @@ -3805,9 +3800,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ "bytes", "futures-channel", @@ -3846,9 +3841,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", @@ -3887,7 +3882,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -4037,7 +4032,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -4058,12 +4053,23 @@ dependencies = [ [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -4134,13 +4140,13 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "arbitrary", "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "serde", ] @@ -4157,7 +4163,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "232929e1d75fe899576a3d5c7416ad0d88dbfbb3c3d6aa00873a7408a50ddb88" dependencies = [ "ahash", - "indexmap 2.5.0", + "indexmap 2.6.0", "is-terminal", "itoa", "log", @@ -4205,7 +4211,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b23a0c8dfe501baac4adf6ebbfa6eddf8f0c07f56b058cc1288017e32397846c" dependencies = [ "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -4255,15 +4261,15 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "iri-string" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bd7eced44cfe2cebc674adb2a7124a754a4b5269288d22e9f39f8fada3562d" +checksum = "dc0f0a572e8ffe56e2ff4f769f32ffe919282c3916799f8b68688b6030063bea" dependencies = [ "memchr", "serde", @@ -4295,15 +4301,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.13.0" @@ -4350,18 +4347,18 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpsee" -version = "0.24.5" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126b48a5acc3c52fbd5381a77898cb60e145123179588a29e7ac48f9c06e401b" +checksum = "c5c71d8c1a731cc4227c2f698d377e7848ca12c8a48866fc5e6951c43a4db843" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4377,9 +4374,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.24.5" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf679a8e0e083c77997f7c4bb4ca826577105906027ae462aac70ff348d02c6a" +checksum = "548125b159ba1314104f5bb5f38519e03a41862786aa3925cf349aae9cdd546e" dependencies = [ "base64 0.22.1", "futures-channel", @@ -4402,9 +4399,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.24.5" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0e503369a76e195b65af35058add0e6900b794a4e9a9316900ddd3a87a80477" +checksum = "f2882f6f8acb9fdaec7cefc4fd607119a9bd709831df7d7672a1d3b644628280" dependencies = [ "async-trait", "bytes", @@ -4429,9 +4426,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.24.5" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c0caba4a6a8efbafeec9baa986aa22a75a96c29d3e4b0091b0098d6470efb5" +checksum = "b3638bc4617f96675973253b3a45006933bde93c2fd8a6170b33c777cc389e5b" dependencies = [ "async-trait", "base64 0.22.1", @@ -4454,22 +4451,22 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.24.5" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc660a9389e2748e794a40673a4155d501f32db667757cdb80edeff0306b489b" +checksum = "c06c01ae0007548e73412c08e2285ffe5d723195bf268bce67b1b77c3bb2a14d" dependencies = [ "heck", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "jsonrpsee-server" -version = "0.24.5" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af6e6c9b6d975edcb443565d648b605f3e85a04ec63aa6941811a8894cc9cded" +checksum = "82ad8ddc14be1d4290cd68046e7d1d37acd408efed6d3ca08aefcc3ad6da069c" dependencies = [ "futures-util", "http", @@ -4494,9 +4491,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.24.5" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8fb16314327cbc94fdf7965ef7e4422509cd5597f76d137bd104eb34aeede67" +checksum = "a178c60086f24cc35bb82f57c651d0d25d99c4742b4d335de04e97fa1f08a8a1" dependencies = [ "http", "serde", @@ -4506,9 +4503,9 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.24.5" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0da62b43702bd5640ea305d35df95da30abc878e79a7b4b01feda3beaf35d3c" +checksum = "1a01cd500915d24ab28ca17527e23901ef1be6d659a2322451e1045532516c25" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4517,9 +4514,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.24.5" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39aabf5d6c6f22da8d5b808eea1fab0736059f11fb42f71f141b14f404e5046a" +checksum = "0fe322e0896d0955a3ebdd5bf813571c53fea29edd713bc315b76620b327e86d" dependencies = [ "http", "jsonrpsee-client-transport", @@ -4620,17 +4617,11 @@ dependencies = [ "spin", ] -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "libc" -version = "0.2.159" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "libloading" @@ -4644,9 +4635,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libp2p-identity" @@ -4669,11 +4660,11 @@ dependencies = [ [[package]] name = "libproc" -version = "0.14.8" +version = "0.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae9ea4b75e1a81675429dafe43441df1caea70081e82246a8cccf514884a88bb" +checksum = "e78a09b56be5adbcad5aa1197371688dc6bb249a26da3bca2011ee2fb987ebfb" dependencies = [ - "bindgen 0.69.4", + "bindgen", "errno", "libc", ] @@ -4795,11 +4786,11 @@ dependencies = [ [[package]] name = "lru" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.1", ] [[package]] @@ -4875,6 +4866,16 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "metrics" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae428771d17306715c5091d446327d1cfdedc82185c65ba8423ab404e45bf10" +dependencies = [ + "ahash", + "portable-atomic", +] + [[package]] name = "metrics-derive" version = "0.1.0" @@ -4884,7 +4885,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -4894,8 +4895,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4f0c8427b39666bf970460908b213ec09b3b350f20c0c2eabcbba51704a08e6" dependencies = [ "base64 0.22.1", - "indexmap 2.5.0", - "metrics", + "indexmap 2.6.0", + "metrics 0.23.0", "metrics-util", "quanta", "thiserror", @@ -4903,17 +4904,18 @@ dependencies = [ [[package]] name = "metrics-process" -version = "2.1.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb524e5438255eaa8aa74214d5a62713b77b2c3c6e3c0bbeee65cfd9a58948ba" +checksum = "57ca8ecd85575fbb143b2678cb123bb818779391ec0f745b1c4a9dbabadde407" dependencies = [ + "libc", "libproc", "mach2", - "metrics", + "metrics 0.24.0", "once_cell", - "procfs", + "procfs 0.17.0", "rlimit", - "windows 0.57.0", + "windows 0.58.0", ] [[package]] @@ -4925,7 +4927,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.14.5", - "metrics", + "metrics 0.23.0", "num_cpus", "quanta", "sketches-ddsketch", @@ -5030,7 +5032,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -5075,7 +5077,7 @@ dependencies = [ "percent-encoding", "serde", "static_assertions", - "unsigned-varint 0.8.0", + "unsigned-varint", "url", ] @@ -5092,12 +5094,12 @@ dependencies = [ [[package]] name = "multihash" -version = "0.19.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +checksum = "cc41f430805af9d1cf4adae4ed2149c759b877b01d909a1f40256188d09345d2" dependencies = [ "core2", - "unsigned-varint 0.7.2", + "unsigned-varint", ] [[package]] @@ -5277,7 +5279,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -5305,21 +5307,18 @@ dependencies = [ [[package]] name = "object" -version = "0.36.4" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.20.1" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1" -dependencies = [ - "portable-atomic", -] +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "oorandom" @@ -5602,9 +5601,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.13" +version = "2.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" +checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", "thiserror", @@ -5651,7 +5650,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -5665,29 +5664,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -5847,12 +5846,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.22" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -5927,14 +5926,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] @@ -5950,7 +5949,19 @@ dependencies = [ "flate2", "hex", "lazy_static", - "procfs-core", + "procfs-core 0.16.0", + "rustix", +] + +[[package]] +name = "procfs" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" +dependencies = [ + "bitflags 2.6.0", + "hex", + "procfs-core 0.17.0", "rustix", ] @@ -5965,6 +5976,16 @@ dependencies = [ "hex", ] +[[package]] +name = "procfs-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" +dependencies = [ + "bitflags 2.6.0", + "hex", +] + [[package]] name = "proptest" version = "1.5.0" @@ -6003,7 +6024,7 @@ checksum = "6ff7ff745a347b87471d859a377a9a404361e7efc2a971d73424a6d183c0fc77" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -6082,10 +6103,11 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "e346e016eacfff12233c243718197ca12f148c84e1e84268a896699b41c71780" dependencies = [ + "cfg_aliases", "libc", "once_cell", "socket2 0.5.7", @@ -6212,9 +6234,9 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.1.0" +version = "11.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb9ee317cfe3fbd54b36a511efc1edd42e216903c9cd575e686dd68a2ba90d8d" +checksum = "1ab240315c661615f2ee9f0f2cd32d5a7343a84d5ebcccb99d46e6637565e7b0" dependencies = [ "bitflags 2.6.0", ] @@ -6276,9 +6298,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -6330,9 +6352,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.8" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", "bytes", @@ -6494,7 +6516,7 @@ dependencies = [ "alloy-rlp", "futures-core", "futures-util", - "metrics", + "metrics 0.23.0", "reth-chainspec", "reth-metrics", "reth-payload-builder", @@ -6519,7 +6541,7 @@ dependencies = [ "assert_matches", "futures", "itertools 0.13.0", - "metrics", + "metrics 0.23.0", "reth-blockchain-tree", "reth-blockchain-tree-api", "reth-chainspec", @@ -6606,7 +6628,7 @@ dependencies = [ "aquamarine", "assert_matches", "linked_hash_set", - "metrics", + "metrics 0.23.0", "parking_lot 0.12.3", "reth-blockchain-tree-api", "reth-chainspec", @@ -6656,7 +6678,7 @@ dependencies = [ "alloy-signer-local", "auto_impl", "derive_more 1.0.0", - "metrics", + "metrics 0.23.0", "parking_lot 0.12.3", "pin-project", "rand 0.8.5", @@ -6820,11 +6842,11 @@ dependencies = [ name = "reth-codecs-derive" version = "1.1.0" dependencies = [ - "convert_case", + "convert_case 0.6.0", "proc-macro2", "quote", "similar-asserts", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -6903,7 +6925,7 @@ dependencies = [ "derive_more 1.0.0", "eyre", "iai-callgrind", - "metrics", + "metrics 0.23.0", "page_size", "parking_lot 0.12.3", "paste", @@ -6942,7 +6964,7 @@ dependencies = [ "arbitrary", "bytes", "derive_more 1.0.0", - "metrics", + "metrics 0.23.0", "modular-bitfield", "parity-scale-codec", "proptest", @@ -7041,7 +7063,7 @@ dependencies = [ "enr", "futures", "itertools 0.13.0", - "metrics", + "metrics 0.23.0", "rand 0.8.5", "reth-chainspec", "reth-ethereum-forks", @@ -7093,7 +7115,7 @@ dependencies = [ "futures", "futures-util", "itertools 0.13.0", - "metrics", + "metrics 0.23.0", "pin-project", "rand 0.8.5", "rayon", @@ -7267,7 +7289,7 @@ dependencies = [ "alloy-rpc-types-engine 0.4.2", "assert_matches", "futures", - "metrics", + "metrics 0.23.0", "rand 0.8.5", "reth-beacon-consensus", "reth-blockchain-tree", @@ -7507,7 +7529,7 @@ dependencies = [ "alloy-primitives", "auto_impl", "futures-util", - "metrics", + "metrics 0.23.0", "parking_lot 0.12.3", "reth-chainspec", "reth-execution-errors", @@ -7588,7 +7610,7 @@ dependencies = [ "eyre", "futures", "itertools 0.13.0", - "metrics", + "metrics 0.23.0", "parking_lot 0.12.3", "rand 0.8.5", "reth-blockchain-tree", @@ -7734,7 +7756,7 @@ dependencies = [ "criterion", "dashmap 6.1.0", "derive_more 1.0.0", - "indexmap 2.5.0", + "indexmap 2.6.0", "parking_lot 0.12.3", "pprof", "rand 0.8.5", @@ -7750,7 +7772,7 @@ dependencies = [ name = "reth-mdbx-sys" version = "1.1.0" dependencies = [ - "bindgen 0.70.1", + "bindgen", "cc", ] @@ -7759,7 +7781,7 @@ name = "reth-metrics" version = "1.1.0" dependencies = [ "futures", - "metrics", + "metrics 0.23.0", "metrics-derive", "tokio", "tokio-util", @@ -7804,7 +7826,7 @@ dependencies = [ "enr", "futures", "itertools 0.13.0", - "metrics", + "metrics 0.23.0", "parking_lot 0.12.3", "pin-project", "pprof", @@ -8131,11 +8153,11 @@ dependencies = [ "eyre", "http", "jsonrpsee", - "metrics", + "metrics 0.23.0", "metrics-exporter-prometheus", "metrics-process", "metrics-util", - "procfs", + "procfs 0.16.0", "reqwest", "reth-chainspec", "reth-db-api", @@ -8426,7 +8448,7 @@ dependencies = [ "alloy-rpc-types 0.4.2", "async-trait", "futures-util", - "metrics", + "metrics 0.23.0", "reth-chain-state", "reth-ethereum-engine-primitives", "reth-metrics", @@ -8556,7 +8578,7 @@ dependencies = [ "dashmap 6.1.0", "eyre", "itertools 0.13.0", - "metrics", + "metrics 0.23.0", "notify", "once_cell", "parking_lot 0.12.3", @@ -8600,7 +8622,7 @@ dependencies = [ "alloy-primitives", "assert_matches", "itertools 0.13.0", - "metrics", + "metrics 0.23.0", "rayon", "reth-chainspec", "reth-config", @@ -8786,7 +8808,7 @@ dependencies = [ "clap", "http", "jsonrpsee", - "metrics", + "metrics 0.23.0", "pin-project", "reth-beacon-consensus", "reth-chainspec", @@ -8836,7 +8858,7 @@ dependencies = [ "async-trait", "jsonrpsee-core", "jsonrpsee-types", - "metrics", + "metrics 0.23.0", "reth-beacon-consensus", "reth-chainspec", "reth-engine-primitives", @@ -8915,7 +8937,7 @@ dependencies = [ "futures", "jsonrpsee-core", "jsonrpsee-types", - "metrics", + "metrics 0.23.0", "rand 0.8.5", "reth-chain-state", "reth-chainspec", @@ -9048,7 +9070,7 @@ dependencies = [ "assert_matches", "auto_impl", "futures-util", - "metrics", + "metrics 0.23.0", "reth-consensus", "reth-errors", "reth-metrics", @@ -9157,7 +9179,7 @@ dependencies = [ "auto_impl", "dyn-clone", "futures-util", - "metrics", + "metrics 0.23.0", "pin-project", "rayon", "reth-metrics", @@ -9217,7 +9239,7 @@ dependencies = [ "bitflags 2.6.0", "criterion", "futures-util", - "metrics", + "metrics 0.23.0", "parking_lot 0.12.3", "paste", "pprof", @@ -9259,7 +9281,7 @@ dependencies = [ "criterion", "derive_more 1.0.0", "itertools 0.13.0", - "metrics", + "metrics 0.23.0", "proptest", "proptest-arbitrary-interop", "rayon", @@ -9312,7 +9334,7 @@ dependencies = [ "auto_impl", "derive_more 1.0.0", "itertools 0.13.0", - "metrics", + "metrics 0.23.0", "proptest", "proptest-arbitrary-interop", "rayon", @@ -9347,7 +9369,7 @@ dependencies = [ "criterion", "derive_more 1.0.0", "itertools 0.13.0", - "metrics", + "metrics 0.23.0", "proptest", "proptest-arbitrary-interop", "rand 0.8.5", @@ -9368,8 +9390,7 @@ dependencies = [ [[package]] name = "revm" version = "14.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "641702b12847f9ed418d552f4fcabe536d867a2c980e96b6e7e25d7b992f929f" +source = "git+https://github.com/taikoxyz/revm.git?branch=v45-taiko#8698cb45d1e0f9bf709e0a8959b6f7a838932b8e" dependencies = [ "auto_impl", "cfg-if", @@ -9402,8 +9423,7 @@ dependencies = [ [[package]] name = "revm-interpreter" version = "10.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5e14002afae20b5bf1566f22316122f42f57517000e559c55b25bf7a49cba2" +source = "git+https://github.com/taikoxyz/revm.git?branch=v45-taiko#8698cb45d1e0f9bf709e0a8959b6f7a838932b8e" dependencies = [ "revm-primitives", "serde", @@ -9412,8 +9432,7 @@ dependencies = [ [[package]] name = "revm-precompile" version = "11.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3198c06247e8d4ad0d1312591edf049b0de4ddffa9fecb625c318fd67db8639b" +source = "git+https://github.com/taikoxyz/revm.git?branch=v45-taiko#8698cb45d1e0f9bf709e0a8959b6f7a838932b8e" dependencies = [ "aurora-engine-modexp", "blst", @@ -9432,8 +9451,7 @@ dependencies = [ [[package]] name = "revm-primitives" version = "10.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f1525851a03aff9a9d6a1d018b414d76252d6802ab54695b27093ecd7e7a101" +source = "git+https://github.com/taikoxyz/revm.git?branch=v45-taiko#8698cb45d1e0f9bf709e0a8959b6f7a838932b8e" dependencies = [ "alloy-eip2930", "alloy-eip7702 0.1.1", @@ -9443,9 +9461,11 @@ dependencies = [ "bitvec", "c-kzg", "cfg-if", + "derive_more 0.99.18", "dyn-clone", "enumn", "hex", + "once_cell", "serde", ] @@ -9642,9 +9662,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" dependencies = [ "bitflags 2.6.0", "errno", @@ -9655,9 +9675,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.13" +version = "0.23.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" +checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" dependencies = [ "log", "once_cell", @@ -9705,9 +9725,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" [[package]] name = "rustls-platform-verifier" @@ -9749,9 +9769,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "rusty-fork" @@ -9788,18 +9808,18 @@ dependencies = [ [[package]] name = "scc" -version = "2.2.0" +version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836f1e0f4963ef5288b539b643b35e043e76a32d0f4e47e67febf69576527f50" +checksum = "d8d25269dd3a12467afe2e510f69fb0b46b698e5afb296b59f2145259deaf8e8" dependencies = [ "sdd", ] [[package]] name = "schannel" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" dependencies = [ "windows-sys 0.59.0", ] @@ -9829,9 +9849,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sdd" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a7b59a5d9b0099720b417b6325d91a52cbf5b3dcb5041d864be53eefa58abc" +checksum = "49c1eeaf4b6a87c7479688c6d52b9f1153cedd3c489300564f932b065c6eab95" [[package]] name = "sec1" @@ -9849,9 +9869,8 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" +version = "0.29.0" +source = "git+https://github.com/CeciliaZ030/rust-secp256k1?branch=sp1-patch#26d5313e6fb992a0f393ffcbf9be3c03b23295f1" dependencies = [ "rand 0.8.5", "secp256k1-sys", @@ -9860,9 +9879,8 @@ dependencies = [ [[package]] name = "secp256k1-sys" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" +version = "0.10.0" +source = "git+https://github.com/CeciliaZ030/rust-secp256k1?branch=sp1-patch#26d5313e6fb992a0f393ffcbf9be3c03b23295f1" dependencies = [ "cc", ] @@ -9932,31 +9950,31 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.6.0", "itoa", "memchr", "ryu", @@ -9982,7 +10000,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -10027,7 +10045,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.5.0", + "indexmap 2.6.0", "serde", "serde_derive", "serde_json", @@ -10056,7 +10074,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -10079,7 +10097,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -10376,7 +10394,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -10434,9 +10452,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -10445,14 +10463,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.5" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab661c8148c2261222a4d641ad5477fd4bea79406a99056096a0b41b35617a5" +checksum = "16320d4a2021ba1a32470b3759676114a918885e9800e68ad60f2c67969fba62" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -10478,7 +10496,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -10587,7 +10605,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -10611,22 +10629,22 @@ checksum = "a38c90d48152c236a3ab59271da4f4ae63d678c5d7ad6b7714d7cb9760be5e4b" [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -10779,9 +10797,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" dependencies = [ "backtrace", "bytes", @@ -10803,7 +10821,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -10887,7 +10905,7 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", @@ -11004,7 +11022,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -11227,18 +11245,15 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicase" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" @@ -11294,12 +11309,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "unsigned-varint" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" - [[package]] name = "unsigned-varint" version = "0.8.0" @@ -11314,12 +11323,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna 1.0.3", "percent-encoding", "serde", ] @@ -11350,9 +11359,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom 0.2.15", ] @@ -11431,9 +11440,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", @@ -11442,24 +11451,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -11469,9 +11478,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11479,28 +11488,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-streams" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -11511,9 +11520,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -11627,7 +11636,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -11638,7 +11647,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -11649,7 +11658,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -11660,7 +11669,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -11935,7 +11944,7 @@ checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "synstructure", ] @@ -11957,7 +11966,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -11977,7 +11986,7 @@ checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", "synstructure", ] @@ -11998,7 +12007,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] @@ -12020,7 +12029,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.87", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index f849863040ff..fd53c0ee4077 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -601,29 +601,12 @@ tikv-jemallocator = "0.6" tracy-client = "0.17.3" [patch.crates-io] -#alloy-consensus = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-eips = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-genesis = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-json-rpc = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-network = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-node-bindings = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-provider = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-pubsub = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-rpc-client = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-rpc-types = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-rpc-types-admin = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-rpc-types-anvil = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-rpc-types-beacon = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-rpc-types-debug = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-rpc-types-engine = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-rpc-types-eth = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-rpc-types-mev = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-rpc-types-trace = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-rpc-types-txpool = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-serde = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-signer = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-signer-local = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-transport = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-transport-http = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-transport-ipc = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} -#alloy-transport-ws = { git = "https://github.com/alloy-rs/alloy", rev = "8c499409"} +revm = { git = "https://github.com/taikoxyz/revm.git", branch = "v45-taiko" } +revm-interpreter = { git = "https://github.com/taikoxyz/revm.git", branch = "v45-taiko" } +revm-precompile = { git = "https://github.com/taikoxyz/revm.git", branch = "v45-taiko" } +revm-primitives = { git = "https://github.com/taikoxyz/revm.git", branch = "v45-taiko" } +c-kzg = { git = "https://github.com/brechtpd/c-kzg-4844", branch = "for-alpha7" } +secp256k1 = { git = "https://github.com/CeciliaZ030/rust-secp256k1", branch = "sp1-patch" } + +[patch.'https://github.com/bluealloy/revm.git'] +revm = { git = "https://github.com/taikoxyz/revm.git", branch = "v45-taiko" } diff --git a/crates/revm/Cargo.toml b/crates/revm/Cargo.toml index 9e4501f62770..1187ffee500d 100644 --- a/crates/revm/Cargo.toml +++ b/crates/revm/Cargo.toml @@ -38,3 +38,4 @@ c-kzg = ["revm/c-kzg"] test-utils = ["dep:reth-trie"] optimism = ["revm/optimism"] serde = ["revm/serde"] +taiko = ["revm/taiko"] From 3455496d5fbd48ab4876728137eecf5146969b38 Mon Sep 17 00:00:00 2001 From: maskpp Date: Wed, 20 Nov 2024 15:51:06 +0800 Subject: [PATCH 21/24] introduce taiko/hardforks and complete chainspec --- Cargo.lock | 16 ++ Cargo.toml | 2 + crates/chainspec/Cargo.toml | 6 + crates/chainspec/src/lib.rs | 6 +- crates/chainspec/src/spec.rs | 99 ++++++++++-- crates/chainspec/src/taiko.rs | 204 +++++++++++++++++++++++++ crates/taiko/hardforks/Cargo.toml | 26 ++++ crates/taiko/hardforks/src/hardfork.rs | 136 +++++++++++++++++ crates/taiko/hardforks/src/lib.rs | 12 ++ 9 files changed, 496 insertions(+), 11 deletions(-) create mode 100644 crates/chainspec/src/taiko.rs create mode 100644 crates/taiko/hardforks/Cargo.toml create mode 100644 crates/taiko/hardforks/src/hardfork.rs create mode 100644 crates/taiko/hardforks/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 161df82e8fc1..99a8577f6910 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6707,13 +6707,18 @@ dependencies = [ "alloy-trie", "auto_impl", "derive_more 1.0.0", + "num_enum", "once_cell", "reth-ethereum-forks", "reth-network-peers", "reth-optimism-forks", "reth-primitives-traits", "reth-trie-common", + "revm-primitives", + "serde", "serde_json", + "strum", + "taiko-reth-forks", ] [[package]] @@ -10534,6 +10539,17 @@ dependencies = [ "taiko-reth-primitives", ] +[[package]] +name = "taiko-reth-forks" +version = "1.1.0" +dependencies = [ + "alloy-chains", + "alloy-primitives", + "once_cell", + "reth-ethereum-forks", + "serde", +] + [[package]] name = "taiko-reth-primitives" version = "1.1.0" diff --git a/Cargo.toml b/Cargo.toml index fd53c0ee4077..01f338c21525 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -150,6 +150,7 @@ members = [ "testing/testing-utils", "crates/taiko/primitives", "crates/taiko/engine-primitives", + "crates/taiko/hardforks", ] default-members = ["bin/reth"] exclude = ["book/sources"] @@ -413,6 +414,7 @@ reth-trie-parallel = { path = "crates/trie/parallel" } # taiko taiko-reth-primitives = { path = "crates/taiko/primitives" } taiko-reth-engine-primitives = { path = "crates/taiko/engine-primitives" } +taiko-reth-forks = { path = "crates/taiko/hardforks" } # revm revm = { version = "14.0.3", features = [ diff --git a/crates/chainspec/Cargo.toml b/crates/chainspec/Cargo.toml index 80636d139a1b..dd159c150a9a 100644 --- a/crates/chainspec/Cargo.toml +++ b/crates/chainspec/Cargo.toml @@ -32,6 +32,11 @@ auto_impl.workspace = true once_cell.workspace = true serde_json.workspace = true derive_more.workspace = true +serde = { version = "1.0.214", features = ["derive"] } +strum = "0.26.3" +num_enum = "0.7.3" +revm-primitives.workspace = true +taiko-reth-forks.workspace = true [dev-dependencies] # eth @@ -52,3 +57,4 @@ std = [ ] arbitrary = ["alloy-chains/arbitrary"] test-utils = [] +taiko = [] diff --git a/crates/chainspec/src/lib.rs b/crates/chainspec/src/lib.rs index 424b2b77c28c..322627371006 100644 --- a/crates/chainspec/src/lib.rs +++ b/crates/chainspec/src/lib.rs @@ -5,7 +5,6 @@ html_favicon_url = "https://avatars0.githubusercontent.com/u/97369466?s=256", issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/" )] -#![cfg_attr(not(test), warn(unused_crate_dependencies))] #![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] #![cfg_attr(not(feature = "std"), no_std)] @@ -20,6 +19,11 @@ mod api; mod info; /// The chain spec module. mod spec; +#[cfg(feature = "taiko")] +pub mod taiko; + +#[cfg(feature = "taiko")] +pub use spec::{TAIKO_HEKLA, TAIKO_INTERNAL_L2_A, TAIKO_MAINNET, TAIKO_TESTNET}; pub use alloy_chains::{Chain, ChainKind, NamedChain}; /// Re-export for convenience diff --git a/crates/chainspec/src/spec.rs b/crates/chainspec/src/spec.rs index d6ca92aa24eb..ce2942051ba0 100644 --- a/crates/chainspec/src/spec.rs +++ b/crates/chainspec/src/spec.rs @@ -23,9 +23,12 @@ use reth_primitives_traits::{ Header, SealedHeader, }; use reth_trie_common::root::state_root_ref_unhashed; - +use taiko_reth_forks::hardfork::TaikoHardfork; use crate::{constants::MAINNET_DEPOSIT_CONTRACT, once_cell_set, EthChainSpec}; +#[cfg(feature = "taiko")] +use crate::taiko::{get_taiko_genesis, TaikoNamedChain, HEKLA_ONTAKE_BLOCK, INTERNAL_DEVNET_ONTAKE_BLOCK, MAINNET_ONTAKE_BLOCK}; + /// The Ethereum mainnet spec pub static MAINNET: Lazy> = Lazy::new(|| { let mut spec = ChainSpec { @@ -118,7 +121,59 @@ pub static DEV: Lazy> = Lazy::new(|| { deposit_contract: None, // TODO: do we even have? ..Default::default() } - .into() + .into() +}); + +/// The Taiko internal L2 A spec +#[cfg(feature = "taiko")] +pub static TAIKO_INTERNAL_L2_A: Lazy> = Lazy::new(|| { + ChainSpec { + chain: TaikoNamedChain::TaikoInternalL2a.into(), + genesis: get_taiko_genesis(TaikoNamedChain::TaikoInternalL2a), + hardforks: TaikoHardfork::internal_l2_a(), + base_fee_params: BaseFeeParamsKind::Constant(BaseFeeParams { + max_change_denominator: 8, + elasticity_multiplier: 2, + }), + ..Default::default() + }.into() +}); + +/// The Taiko testnet spec +#[cfg(feature = "taiko")] +pub static TAIKO_TESTNET: Lazy> = Lazy::new(|| { + ChainSpec { + chain: TaikoNamedChain::Katla.into(), + genesis: get_taiko_genesis(TaikoNamedChain::Katla), + hardforks: TaikoHardfork::testnet(), + base_fee_params: BaseFeeParamsKind::Constant(BaseFeeParams { + max_change_denominator: 8, + elasticity_multiplier: 2, + }), + ..Default::default() + }.into() +}); + +/// The Taiko A7 spec +#[cfg(feature = "taiko")] +pub static TAIKO_HEKLA: Lazy> = Lazy::new(|| { + ChainSpec { + chain: TaikoNamedChain::Hekla.into(), + genesis: get_taiko_genesis(TaikoNamedChain::Hekla), + hardforks: TaikoHardfork::hekla(), + ..Default::default() + }.into() +}); + +/// The Taiko Mainnet spec +#[cfg(feature = "taiko")] +pub static TAIKO_MAINNET: Lazy> = Lazy::new(|| { + ChainSpec { + chain: TaikoNamedChain::Mainnet.into(), + genesis: get_taiko_genesis(TaikoNamedChain::Mainnet), + hardforks: TaikoHardfork::mainnet(), + ..Default::default() + }.into() }); /// A wrapper around [`BaseFeeParams`] that allows for specifying constant or dynamic EIP-1559 @@ -254,6 +309,20 @@ impl ChainSpec { self.chain.is_optimism() } + /// Returns `true` if this is a Taiko chain. + #[inline] + #[cfg(not(feature = "taiko"))] + pub const fn is_taiko(&self) -> bool { + let id = self.chain.id(); + id >= 167000 && id <= 168000 + } + + /// Returns `true` if ontake fork is active at the given block number. + #[inline] + pub fn is_ontake_fork(&self, block_number: u64) -> bool { + self.is_fork_active_at_block(TaikoHardfork::Ontake, block_number) + } + /// Returns `true` if this chain is Optimism mainnet. #[inline] pub fn is_optimism_mainnet(&self) -> bool { @@ -347,7 +416,7 @@ impl ChainSpec { // given timestamp. for (fork, params) in bf_params.iter().rev() { if self.hardforks.is_fork_active_at_timestamp(fork.clone(), timestamp) { - return *params + return *params; } } @@ -366,7 +435,7 @@ impl ChainSpec { // given timestamp. for (fork, params) in bf_params.iter().rev() { if self.hardforks.is_fork_active_at_block(fork.clone(), block_number) { - return *params + return *params; } } @@ -481,7 +550,7 @@ impl ChainSpec { } else { // we can return here because this block fork is not active, so we set the // `next` value - return ForkId { hash: forkhash, next: block } + return ForkId { hash: forkhash, next: block }; } } } @@ -502,7 +571,7 @@ impl ChainSpec { // can safely return here because we have already handled all block forks and // have handled all active timestamp forks, and set the next value to the // timestamp that is known but not active yet - return ForkId { hash: forkhash, next: timestamp } + return ForkId { hash: forkhash, next: timestamp }; } } @@ -546,17 +615,17 @@ impl ChainSpec { ForkCondition::TTD { fork_block, .. } => { // handle Sepolia merge netsplit case if fork_block.is_some() { - return *fork_block + return *fork_block; } // ensure curr_cond is indeed ForkCondition::Block and return block_num if let ForkCondition::Block(block_num) = curr_cond { - return Some(block_num) + return Some(block_num); } } ForkCondition::Timestamp(_) => { // ensure curr_cond is indeed ForkCondition::Block and return block_num if let ForkCondition::Block(block_num) = curr_cond { - return Some(block_num) + return Some(block_num); } } ForkCondition::Block(_) | ForkCondition::Never => continue, @@ -590,6 +659,14 @@ impl ChainSpec { impl From for ChainSpec { fn from(genesis: Genesis) -> Self { + #[cfg(feature = "taiko")] + let ontake_block = match TaikoNamedChain::try_from(genesis.config.chain_id) { + Ok(TaikoNamedChain::TaikoInternalL2a) => Some(INTERNAL_DEVNET_ONTAKE_BLOCK), + Ok(TaikoNamedChain::Hekla) => Some(HEKLA_ONTAKE_BLOCK), + Ok(TaikoNamedChain::Mainnet) => Some(MAINNET_ONTAKE_BLOCK), + _ => None, + }; + // Block-based hardforks let hardfork_opts = [ (EthereumHardfork::Homestead.boxed(), genesis.config.homestead_block), @@ -605,6 +682,8 @@ impl From for ChainSpec { (EthereumHardfork::London.boxed(), genesis.config.london_block), (EthereumHardfork::ArrowGlacier.boxed(), genesis.config.arrow_glacier_block), (EthereumHardfork::GrayGlacier.boxed(), genesis.config.gray_glacier_block), + #[cfg(feature = "taiko")] + (TaikoHardfork::Hekla.boxed(), ontake_block), ]; let mut hardforks = hardfork_opts .into_iter() @@ -682,7 +761,7 @@ impl Hardforks for ChainSpec { self.hardforks.fork(fork) } - fn forks_iter(&self) -> impl Iterator { + fn forks_iter(&self) -> impl Iterator { self.hardforks.forks_iter() } diff --git a/crates/chainspec/src/taiko.rs b/crates/chainspec/src/taiko.rs new file mode 100644 index 000000000000..54943facd1b5 --- /dev/null +++ b/crates/chainspec/src/taiko.rs @@ -0,0 +1,204 @@ +//! Taiko Chain Specification +use core::str::FromStr; +use std::collections::BTreeMap; + +use crate::ChainSpec; +use alloy_chains::Chain; +use alloy_genesis::{ChainConfig, Genesis, GenesisAccount}; +use once_cell::sync::Lazy; +use revm_primitives::{Address, Bytes, FixedBytes, B256, U256}; +use serde::{Deserialize, Serialize}; + +/// The internal devnet ontake height. +pub const INTERNAL_DEVNET_ONTAKE_BLOCK: u64 = 2; +/// The hekla ontake height. +pub const HEKLA_ONTAKE_BLOCK: u64 = 840_512; +/// The mainnet ontake height. +pub const MAINNET_ONTAKE_BLOCK: u64 = 9_000_000; + +impl ChainSpec { + /// Returns the treasury address for the chain. + #[inline] + pub fn treasury(&self) -> Address { + const SUFFIX: &str = "10001"; + let prefix = self.chain().id().to_string(); + Address::from_str(&format!( + "{prefix}{}{SUFFIX}", + "0".repeat(Address::len_bytes() * 2 - prefix.len() - SUFFIX.len()) + )) + .unwrap() + } +} + +// Taiko Chain Configuration, sets the chain_id to the internal devnet L2A by default. +static TAIKO_CHAIN_CONFIG: Lazy = Lazy::new(|| ChainConfig { + chain_id: TaikoNamedChain::TaikoInternalL2a as u64, + homestead_block: Some(0), + dao_fork_block: None, + dao_fork_support: false, + eip150_block: Some(0), + eip155_block: Some(0), + eip158_block: Some(0), + byzantium_block: Some(0), + constantinople_block: Some(0), + petersburg_block: Some(0), + istanbul_block: Some(0), + muir_glacier_block: None, + berlin_block: Some(0), + london_block: Some(0), + arrow_glacier_block: None, + gray_glacier_block: None, + merge_netsplit_block: None, + shanghai_time: Some(0), + cancun_time: None, + terminal_total_difficulty: Some(U256::ZERO), + terminal_total_difficulty_passed: true, + ethash: None, + clique: None, + extra_fields: Default::default(), + prague_time: None, + parlia: None, + deposit_contract_address: None, +}); + +/// The named chains for Taiko. +#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, strum::IntoStaticStr)] // Into<&'static str>, AsRef, fmt::Display and serde::Serialize +#[derive(strum::VariantNames)] // NamedChain::VARIANTS +#[derive(strum::VariantArray)] // NamedChain::VARIANTS +#[derive(strum::EnumString)] // FromStr, TryFrom<&str> +#[derive(strum::EnumIter)] // NamedChain::iter +#[derive(strum::EnumCount)] // NamedChain::COUNT +#[derive(num_enum::TryFromPrimitive)] // TryFrom +#[cfg_attr(feature = "serde", derive(serde::Deserialize))] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[strum(serialize_all = "kebab-case")] +#[repr(u64)] +pub enum TaikoNamedChain { + /// The mainnet chain. + #[cfg_attr(feature = "serde", serde(alias = "mainnet"))] + Mainnet = 167000, + /// The internal devnet L2A chain. + #[cfg_attr(feature = "serde", serde(alias = "taiko-internal-l2a"))] + TaikoInternalL2a = 167001, + /// The internal devnet L2B chain. + #[cfg_attr(feature = "serde", serde(alias = "taiko-internal-l2b"))] + TaikoInternalL2b = 167002, + /// The Snaefellsjokull chain. + #[cfg_attr(feature = "serde", serde(alias = "snaefellsjokull"))] + Snaefellsjokull = 167003, + /// The Askja chain. + #[cfg_attr(feature = "serde", serde(alias = "askja"))] + Askja = 167004, + /// The Grimsvotn chain. + #[cfg_attr(feature = "serde", serde(alias = "grimsvotn"))] + Grimsvotn = 167005, + /// The Eldfell chain. + #[cfg_attr(feature = "serde", serde(alias = "eldfell"))] + Eldfell = 167006, + /// The Jolnir chain. + #[cfg_attr(feature = "serde", serde(alias = "jolnir"))] + Jolnir = 167007, + /// The Katla chain. + #[cfg_attr(feature = "serde", serde(alias = "katla"))] + Katla = 167008, + /// The Hekla chain. + #[cfg_attr(feature = "serde", serde(alias = "hekla"))] + Hekla = 167009, +} + +impl From for Chain { + fn from(val: TaikoNamedChain) -> Self { + Self::from_id_unchecked(val as u64) + } +} + +/// Returns the genesis block for the given chain. +pub fn get_taiko_genesis(chain: TaikoNamedChain) -> Genesis { + let alloc_str = match chain { + TaikoNamedChain::Mainnet => { + include_str!("../res/genesis/taiko/mainnet.json") + } + TaikoNamedChain::TaikoInternalL2a => { + include_str!("../res/genesis/taiko/internal_l2a.json") + } + TaikoNamedChain::TaikoInternalL2b => { + include_str!("../res/genesis/taiko/internal_l2b.json") + } + TaikoNamedChain::Snaefellsjokull => { + include_str!("../res/genesis/taiko/snaefellsjokull.json") + } + TaikoNamedChain::Askja => include_str!("../res/genesis/taiko/askja.json"), + TaikoNamedChain::Grimsvotn => include_str!("../res/genesis/taiko/grimsvotn.json"), + TaikoNamedChain::Eldfell => include_str!("../res/genesis/taiko/eldfell.json"), + TaikoNamedChain::Jolnir => include_str!("../res/genesis/taiko/jolnir.json"), + TaikoNamedChain::Katla => include_str!("../res/genesis/taiko/katla.json"), + TaikoNamedChain::Hekla => include_str!("../res/genesis/taiko/hekla.json"), + }; + + let alloc: BTreeMap = + serde_json::from_str(alloc_str).expect("Invalid alloc json"); + let mut config = TAIKO_CHAIN_CONFIG.clone(); + config.chain_id = chain as u64; + + Genesis { + config, + alloc: alloc.into_iter().map(|(k, v)| (k, v.into())).collect(), + nonce: 0, + timestamp: 0, + extra_data: Bytes::new(), + gas_limit: 15_000_000, + difficulty: U256::ZERO, + mix_hash: FixedBytes::ZERO, + coinbase: Address::ZERO, + base_fee_per_gas: Some(10_000_000), + excess_blob_gas: None, + blob_gas_used: None, + number: None, + } +} + +/// An account in the state of the genesis block. +#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] +pub struct TaikoGenesisAccount { + /// The nonce of the account at genesis. + #[serde(skip_serializing_if = "Option::is_none", with = "alloy_serde::quantity::opt", default)] + pub nonce: Option, + /// The balance of the account at genesis. + pub balance: U256, + /// The account's bytecode at genesis. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub code: Option, + /// The account's storage at genesis. + #[serde( + default, + skip_serializing_if = "Option::is_none", + deserialize_with = "alloy_serde::storage::deserialize_storage_map" + )] + pub storage: Option>, + /// The account's private key. Should only be used for testing. + #[serde(rename = "secretKey", default, skip_serializing_if = "Option::is_none")] + pub private_key: Option, +} + +impl From for GenesisAccount { + fn from(account: TaikoGenesisAccount) -> Self { + Self { + nonce: account.nonce, + balance: account.balance, + code: account.code, + storage: account.storage, + private_key: account.private_key, + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn named() { + let name: &str = TaikoNamedChain::TaikoInternalL2a.into(); + assert_eq!(name, "taiko-internal-l2a"); + } +} diff --git a/crates/taiko/hardforks/Cargo.toml b/crates/taiko/hardforks/Cargo.toml new file mode 100644 index 000000000000..748480cd7d18 --- /dev/null +++ b/crates/taiko/hardforks/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "taiko-reth-forks" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true +exclude.workspace = true + +[dependencies] +# reth +reth-ethereum-forks.workspace = true + +# ethereum +alloy-chains.workspace = true +alloy-primitives.workspace = true + +# io +serde = { workspace = true, optional = true } + +# misc +once_cell.workspace = true + +[lints] +workspace = true diff --git a/crates/taiko/hardforks/src/hardfork.rs b/crates/taiko/hardforks/src/hardfork.rs new file mode 100644 index 000000000000..73d078c6ae06 --- /dev/null +++ b/crates/taiko/hardforks/src/hardfork.rs @@ -0,0 +1,136 @@ +use core::{ + fmt::{self, Display, Formatter}, + str::FromStr, +}; +use alloy_primitives::{U256}; +use reth_ethereum_forks::{ + hardfork, + ChainHardforks, + EthereumHardfork, + ForkCondition, + Hardfork, +}; +#[cfg(feature = "serde")] +use serde::{Deserialize, Serialize}; + +hardfork!( + /// The name of a taiko hardfork. + /// + /// When building a list of hardforks for a chain, it's still expected to mix with + /// [`EthereumHardfork`]. + TaikoHardfork { + /// Hekla: the 1st taiko mainnet version: <> + Hekla, + /// Ontake: the 2nd taiko mainnet fork: <> + Ontake, + } +); + +impl TaikoHardfork { + /// Base TAIKO_INTERNAL_L2_A list of hardforks. + pub fn internal_l2_a() -> ChainHardforks { + ChainHardforks::new(vec![ + (EthereumHardfork::Frontier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Homestead.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Tangerine.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::SpuriousDragon.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Byzantium.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Constantinople.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Petersburg.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Istanbul.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::MuirGlacier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Berlin.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::London.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::ArrowGlacier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::GrayGlacier.boxed(), ForkCondition::Block(0)), + ( + EthereumHardfork::Paris.boxed(), + ForkCondition::TTD { fork_block: Some(0), total_difficulty: U256::ZERO }, + ), + (EthereumHardfork::Shanghai.boxed(), ForkCondition::Timestamp(0)), + (EthereumHardfork::Cancun.boxed(), ForkCondition::Timestamp(0)), + (TaikoHardfork::Hekla.boxed(), ForkCondition::Block(0)), + (TaikoHardfork::Ontake.boxed(), ForkCondition::Block(2)), + ]) + } + + /// Base TAIKO_TESTNET list of hardforks. + pub fn testnet() -> ChainHardforks { + ChainHardforks::new(vec![ + (EthereumHardfork::Frontier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Homestead.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Tangerine.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::SpuriousDragon.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Byzantium.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Constantinople.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Petersburg.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Istanbul.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::MuirGlacier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Berlin.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::London.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::ArrowGlacier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::GrayGlacier.boxed(), ForkCondition::Block(0)), + ( + EthereumHardfork::Paris.boxed(), + ForkCondition::TTD { fork_block: Some(0), total_difficulty: U256::ZERO }, + ), + (EthereumHardfork::Shanghai.boxed(), ForkCondition::Timestamp(0)), + (EthereumHardfork::Cancun.boxed(), ForkCondition::Timestamp(0)), + (TaikoHardfork::Hekla.boxed(), ForkCondition::Block(0)), + ]) + } + + /// Base TAIKO_TESTNET list of hardforks. + pub fn hekla() -> ChainHardforks { + ChainHardforks::new(vec![ + (EthereumHardfork::Frontier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Homestead.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Tangerine.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::SpuriousDragon.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Byzantium.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Constantinople.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Petersburg.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Istanbul.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::MuirGlacier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Berlin.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::London.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::ArrowGlacier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::GrayGlacier.boxed(), ForkCondition::Block(0)), + ( + EthereumHardfork::Paris.boxed(), + ForkCondition::TTD { fork_block: Some(0), total_difficulty: U256::ZERO }, + ), + (EthereumHardfork::Shanghai.boxed(), ForkCondition::Timestamp(0)), + (EthereumHardfork::Cancun.boxed(), ForkCondition::Timestamp(0)), + (TaikoHardfork::Hekla.boxed(), ForkCondition::Block(0)), + (TaikoHardfork::Ontake.boxed(), ForkCondition::Block(720_000)), + ]) + } + + /// Base TAIKO_MAINNET list of hardforks. + pub fn mainnet() -> ChainHardforks { + ChainHardforks::new(vec![ + (EthereumHardfork::Frontier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Homestead.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Tangerine.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::SpuriousDragon.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Byzantium.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Constantinople.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Petersburg.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Istanbul.boxed(), ForkCondition::Block(1561651)), + (EthereumHardfork::MuirGlacier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::Berlin.boxed(), ForkCondition::Block(4460644)), + (EthereumHardfork::London.boxed(), ForkCondition::Block(5062605)), + (EthereumHardfork::ArrowGlacier.boxed(), ForkCondition::Block(0)), + (EthereumHardfork::GrayGlacier.boxed(), ForkCondition::Block(0)), + ( + EthereumHardfork::Paris.boxed(), + ForkCondition::TTD { fork_block: Some(0), total_difficulty: U256::ZERO }, + ), + (EthereumHardfork::Shanghai.boxed(), ForkCondition::Timestamp(0)), + (EthereumHardfork::Cancun.boxed(), ForkCondition::Timestamp(0)), + (TaikoHardfork::Hekla.boxed(), ForkCondition::Block(0)), + (TaikoHardfork::Ontake.boxed(), ForkCondition::Block(374_400)), + ]) + } +} \ No newline at end of file diff --git a/crates/taiko/hardforks/src/lib.rs b/crates/taiko/hardforks/src/lib.rs new file mode 100644 index 000000000000..53683006cb6b --- /dev/null +++ b/crates/taiko/hardforks/src/lib.rs @@ -0,0 +1,12 @@ +//! OP-Reth hard forks. + +#![doc( + html_logo_url = "https://raw.githubusercontent.com/paradigmxyz/reth/main/assets/reth-docs.png", + html_favicon_url = "https://avatars0.githubusercontent.com/u/97369466?s=256", + issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/" +)] +#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] + +pub mod hardfork; + +pub use hardfork::TaikoHardfork; \ No newline at end of file From 48e2fe243f7965193bf334a7e6ae146191c8274e Mon Sep 17 00:00:00 2001 From: maskpp Date: Wed, 20 Nov 2024 16:18:51 +0800 Subject: [PATCH 22/24] sync blockchain-tree --- crates/blockchain-tree/Cargo.toml | 1 + crates/blockchain-tree/src/blockchain_tree.rs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/crates/blockchain-tree/Cargo.toml b/crates/blockchain-tree/Cargo.toml index cff117c92b05..b9fc9a0d99ab 100644 --- a/crates/blockchain-tree/Cargo.toml +++ b/crates/blockchain-tree/Cargo.toml @@ -65,3 +65,4 @@ alloy-consensus.workspace = true [features] test-utils = [] optimism = ["reth-primitives/optimism", "reth-provider/optimism"] +taiko = [] diff --git a/crates/blockchain-tree/src/blockchain_tree.rs b/crates/blockchain-tree/src/blockchain_tree.rs index 4bed718aa0a6..20c6ba23c22f 100644 --- a/crates/blockchain-tree/src/blockchain_tree.rs +++ b/crates/blockchain-tree/src/blockchain_tree.rs @@ -195,6 +195,7 @@ where return Ok(Some(BlockStatus::Valid(BlockAttachment::Canonical))); } + #[cfg(not(feature = "taiko"))] return Err(BlockchainTreeError::PendingBlockIsFinalized { last_finalized: last_finalized_block, } @@ -214,6 +215,7 @@ where })) } + #[cfg(feature = "taiko")] Ok(None) } From a3a22b8993f2d1c7b87796c2bb592215ddecaa03 Mon Sep 17 00:00:00 2001 From: maskpp Date: Wed, 20 Nov 2024 19:45:32 +0800 Subject: [PATCH 23/24] update chainspec cargo --- Cargo.lock | 36 ++++++++++++++++++++++++++++++++++++ crates/chainspec/Cargo.toml | 15 +++++++++++---- 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 99a8577f6910..11897977de0c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6715,6 +6715,7 @@ dependencies = [ "reth-primitives-traits", "reth-trie-common", "revm-primitives", + "schemars", "serde", "serde_json", "strum", @@ -9829,6 +9830,30 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.87", +] + [[package]] name = "schnellru" version = "0.2.3" @@ -9973,6 +9998,17 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "serde_json" version = "1.0.132" diff --git a/crates/chainspec/Cargo.toml b/crates/chainspec/Cargo.toml index dd159c150a9a..38e32478be77 100644 --- a/crates/chainspec/Cargo.toml +++ b/crates/chainspec/Cargo.toml @@ -32,9 +32,10 @@ auto_impl.workspace = true once_cell.workspace = true serde_json.workspace = true derive_more.workspace = true -serde = { version = "1.0.214", features = ["derive"] } -strum = "0.26.3" -num_enum = "0.7.3" +serde = { workspace = true, features = ["derive"], optional = true } +schemars = { version = "0.8.21", optional = true } +strum = { workspace = true, optional = true } +num_enum = { version = "0.7.3", optional = true } revm-primitives.workspace = true taiko-reth-forks.workspace = true @@ -55,6 +56,12 @@ std = [ "alloy-primitives/std", "alloy-trie/std", ] +taiko = [ + "dep:strum", + "dep:num_enum", + "serde", +] arbitrary = ["alloy-chains/arbitrary"] +serde = ["dep:serde"] +schema = ["dep:schemars"] test-utils = [] -taiko = [] From 0dc832f14b04a0ff09dc3b80631e70ca41cd8d21 Mon Sep 17 00:00:00 2001 From: maskpp Date: Wed, 20 Nov 2024 19:55:48 +0800 Subject: [PATCH 24/24] sync primitives --- crates/primitives/Cargo.toml | 1 + crates/primitives/src/transaction/mod.rs | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index 8596f8d766c5..71915af3de5c 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -119,6 +119,7 @@ optimism = [ "reth-codecs?/optimism", "revm-primitives/optimism", ] +taiko = ["reth-chainspec/taiko", "revm-primitives/taiko"] alloy-compat = [ "dep:alloy-rpc-types", "dep:alloy-serde", diff --git a/crates/primitives/src/transaction/mod.rs b/crates/primitives/src/transaction/mod.rs index 7ef2c0c1fb76..53980b0e8866 100644 --- a/crates/primitives/src/transaction/mod.rs +++ b/crates/primitives/src/transaction/mod.rs @@ -10,7 +10,7 @@ use alloy_eips::{ eip2930::AccessList, }; use alloy_primitives::{Bytes, TxHash}; -use alloy_rlp::{Decodable, Encodable, Error as RlpError, Header}; +use alloy_rlp::{encode_list, list_length, Decodable, Encodable, Error as RlpError, Header}; use core::mem; use derive_more::{AsRef, Deref}; use once_cell::sync::Lazy; @@ -1453,6 +1453,28 @@ impl<'a> arbitrary::Arbitrary<'a> for TransactionSigned { } } +/// List of signed transactions reference. +#[derive(Debug)] +pub struct TransactionSignedList<'a>(pub &'a [TransactionSigned]); + +impl Encodable for TransactionSignedList<'_> { + /// This encodes the transaction _with_ the signature, and an rlp header. + /// + /// For legacy transactions, it encodes the transaction data: + /// `rlp(tx-data)` + /// + /// For EIP-2718 typed transactions, it encodes the transaction type followed by the rlp of the + /// transaction: + /// `rlp(tx-type || rlp(tx-data))` + fn encode(&self, out: &mut dyn bytes::BufMut) { + encode_list(self.0, out) + } + + fn length(&self) -> usize { + list_length(self.0) + } +} + /// Signed transaction with recovered signer. #[derive(Debug, Clone, PartialEq, Hash, Eq, AsRef, Deref)] pub struct TransactionSignedEcRecovered {